Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- SafeArrayTypeMismatchException.cs
- PersonalizationProvider.cs
- ActiveXHost.cs
- InertiaRotationBehavior.cs
- WebPartTransformerCollection.cs
- MsmqTransportElement.cs
- DataControlHelper.cs
- TimersDescriptionAttribute.cs
- PerspectiveCamera.cs
- HandleCollector.cs
- PerformanceCounterPermissionAttribute.cs
- CreateUserWizardStep.cs
- PassportAuthentication.cs
- ApplicationActivator.cs
- VariantWrapper.cs
- LocalValueEnumerator.cs
- CodeRegionDirective.cs
- HebrewCalendar.cs
- SingleSelectRootGridEntry.cs
- StrongNameSignatureInformation.cs
- ChildTable.cs
- Rect.cs
- Compiler.cs
- TransformerTypeCollection.cs
- ComponentChangedEvent.cs
- ReferenceEqualityComparer.cs
- BuildProvider.cs
- EventLogPermissionAttribute.cs
- PreviewPrintController.cs
- Dictionary.cs
- ExpressionContext.cs
- StorageTypeMapping.cs
- ObjectIDGenerator.cs
- ToolStripPanelDesigner.cs
- OleDbInfoMessageEvent.cs
- SendActivityEventArgs.cs
- PointAnimationBase.cs
- RuntimeWrappedException.cs
- FixedSOMElement.cs
- OuterGlowBitmapEffect.cs
- FontDifferentiator.cs
- WaitForChangedResult.cs
- _ProxyChain.cs
- EventToken.cs
- SendParametersContent.cs
- VirtualPathProvider.cs
- DependencyObjectCodeDomSerializer.cs
- SqlCacheDependencySection.cs
- MdiWindowListItemConverter.cs
- KeyValueInternalCollection.cs
- CodeEventReferenceExpression.cs
- AuthenticationConfig.cs
- PageVisual.cs
- StateItem.cs
- login.cs
- SvcMapFileLoader.cs
- PeerResolverBindingElement.cs
- SymmetricKey.cs
- CodeTryCatchFinallyStatement.cs
- WebPermission.cs
- CheckoutException.cs
- ProxyRpc.cs
- SecureStringHasher.cs
- AdornedElementPlaceholder.cs
- FixedElement.cs
- WmlTextViewAdapter.cs
- DataSvcMapFileSerializer.cs
- Point4D.cs
- BackgroundFormatInfo.cs
- TreeViewItemAutomationPeer.cs
- DriveNotFoundException.cs
- XamlVector3DCollectionSerializer.cs
- LocationFactory.cs
- DataObjectEventArgs.cs
- DesignTimeTemplateParser.cs
- shaperfactoryquerycacheentry.cs
- RowVisual.cs
- PhotoPrintingIntent.cs
- EvidenceTypeDescriptor.cs
- OleDbReferenceCollection.cs
- LockedActivityGlyph.cs
- XmlUtil.cs
- AuthStoreRoleProvider.cs
- BooleanFunctions.cs
- TileModeValidation.cs
- PropertyInfoSet.cs
- CompositeScriptReferenceEventArgs.cs
- CodeMemberProperty.cs
- UriScheme.cs
- ComponentChangedEvent.cs
- UserControl.cs
- SystemInformation.cs
- Control.cs
- ControlPropertyNameConverter.cs
- sqlcontext.cs
- XsltArgumentList.cs
- SafePEFileHandle.cs
- WsdlParser.cs
- OpCodes.cs
- TextElement.cs