Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / MS / Internal / Ink / ContourSegment.cs / 1 / ContourSegment.cs
//------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------- using System; using System.Windows; using System.Windows.Media; namespace MS.Internal.Ink { ////// A helper structure representing an edge of a contour, where /// the edge is either a straight segment or an arc of a circle. /// ContourSegment are alwais directed clockwise (i.e with the contour /// inner area being on the right side. /// Used in hit-testing a contour vs another contour. /// internal struct ContourSegment { ////// Constructor for linear segments /// /// segment's begin point /// segment's end point internal ContourSegment(Point begin, Point end) { _begin = begin; _vector = DoubleUtil.AreClose(begin, end) ? new Vector(0, 0) : (end - begin); _radius = new Vector(0, 0); } ////// Constructor for arcs /// /// arc's begin point /// arc's end point /// arc's center internal ContourSegment(Point begin, Point end, Point center) { _begin = begin; _vector = end - begin; _radius = center - begin; } ///Tells whether the segment is arc or straight internal bool IsArc { get { return (_radius.X != 0) || (_radius.Y != 0); } } ///Returns the begin point of the segment internal Point Begin { get { return _begin; } } ///Returns the end point of the segment internal Point End { get { return _begin + _vector; } } ///Returns the vector from Begin to End internal Vector Vector { get { return _vector; } } ///Returns the vector from Begin to the center of the circle /// (zero vector for linear segments internal Vector Radius { get { return _radius; } } #region Fields private Point _begin; private Vector _vector; private Vector _radius; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //------------------------------------------------------------------------ //// Copyright (c) Microsoft Corporation. All rights reserved. // //----------------------------------------------------------------------- using System; using System.Windows; using System.Windows.Media; namespace MS.Internal.Ink { ////// A helper structure representing an edge of a contour, where /// the edge is either a straight segment or an arc of a circle. /// ContourSegment are alwais directed clockwise (i.e with the contour /// inner area being on the right side. /// Used in hit-testing a contour vs another contour. /// internal struct ContourSegment { ////// Constructor for linear segments /// /// segment's begin point /// segment's end point internal ContourSegment(Point begin, Point end) { _begin = begin; _vector = DoubleUtil.AreClose(begin, end) ? new Vector(0, 0) : (end - begin); _radius = new Vector(0, 0); } ////// Constructor for arcs /// /// arc's begin point /// arc's end point /// arc's center internal ContourSegment(Point begin, Point end, Point center) { _begin = begin; _vector = end - begin; _radius = center - begin; } ///Tells whether the segment is arc or straight internal bool IsArc { get { return (_radius.X != 0) || (_radius.Y != 0); } } ///Returns the begin point of the segment internal Point Begin { get { return _begin; } } ///Returns the end point of the segment internal Point End { get { return _begin + _vector; } } ///Returns the vector from Begin to End internal Vector Vector { get { return _vector; } } ///Returns the vector from Begin to the center of the circle /// (zero vector for linear segments internal Vector Radius { get { return _radius; } } #region Fields private Point _begin; private Vector _vector; private Vector _radius; #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- Debug.cs
- BuilderPropertyEntry.cs
- AssemblyAttributes.cs
- InputMethodStateChangeEventArgs.cs
- OpenTypeMethods.cs
- nulltextnavigator.cs
- FormClosingEvent.cs
- TreeViewBindingsEditor.cs
- PriorityItem.cs
- ColumnClickEvent.cs
- DelegatingTypeDescriptionProvider.cs
- PropertyEntry.cs
- SqlDataSourceQueryEditor.cs
- BamlBinaryReader.cs
- SatelliteContractVersionAttribute.cs
- Base64Decoder.cs
- NetNamedPipeSecurityMode.cs
- TagPrefixAttribute.cs
- Claim.cs
- Assembly.cs
- ArgumentOutOfRangeException.cs
- Vector.cs
- SequentialUshortCollection.cs
- OleDbRowUpdatingEvent.cs
- PeerContact.cs
- FusionWrap.cs
- Brush.cs
- DocumentEventArgs.cs
- EmptyStringExpandableObjectConverter.cs
- GenericTextProperties.cs
- UInt64Converter.cs
- WebPartEditorCancelVerb.cs
- Frame.cs
- SafeMILHandle.cs
- SqlDataSourceSelectingEventArgs.cs
- ContentOperations.cs
- EncoderNLS.cs
- Convert.cs
- ScriptDescriptor.cs
- ValuePatternIdentifiers.cs
- WebPartCancelEventArgs.cs
- BezierSegment.cs
- SettingsPropertyIsReadOnlyException.cs
- RenderData.cs
- SizeChangedEventArgs.cs
- EdmTypeAttribute.cs
- AuthenticationModuleElement.cs
- StringAnimationUsingKeyFrames.cs
- PropertyTabAttribute.cs
- DatagridviewDisplayedBandsData.cs
- XmlAggregates.cs
- InvariantComparer.cs
- WebPartUserCapability.cs
- MsmqDiagnostics.cs
- TraceContext.cs
- Message.cs
- BinaryParser.cs
- PaintValueEventArgs.cs
- DelegatingMessage.cs
- VariableBinder.cs
- PackWebResponse.cs
- SizeConverter.cs
- SmiMetaData.cs
- TraceShell.cs
- xmlsaver.cs
- RawStylusInputReport.cs
- SqlDataSourceSelectingEventArgs.cs
- MemberCollection.cs
- ResourceIDHelper.cs
- SpotLight.cs
- WebFaultClientMessageInspector.cs
- MemberProjectionIndex.cs
- WindowCollection.cs
- LocationSectionRecord.cs
- TableLayoutPanelBehavior.cs
- DesignerActionPropertyItem.cs
- TemplatedMailWebEventProvider.cs
- Storyboard.cs
- AtomMaterializer.cs
- MethodBuilderInstantiation.cs
- ContainerFilterService.cs
- PropertyGrid.cs
- EventNotify.cs
- ValueUnavailableException.cs
- TabItemWrapperAutomationPeer.cs
- MatchingStyle.cs
- SecurityUtils.cs
- ImageBrush.cs
- TableParagraph.cs
- TypeDescriptionProvider.cs
- X509Certificate2Collection.cs
- DesignerForm.cs
- DragStartedEventArgs.cs
- ReferenceSchema.cs
- HtmlInputReset.cs
- PassportAuthentication.cs
- XmlSchemaSimpleType.cs
- Assert.cs
- FontCacheUtil.cs
- EventLogPermissionAttribute.cs