Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Ink / ContourSegment.cs / 1305600 / 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
- Debugger.cs
- Listen.cs
- ZipIORawDataFileBlock.cs
- IISUnsafeMethods.cs
- QilInvoke.cs
- TextModifierScope.cs
- PropertyDescriptor.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- AutomationPatternInfo.cs
- NameValueConfigurationCollection.cs
- DateTimeValueSerializerContext.cs
- Assert.cs
- FunctionNode.cs
- XmlStreamNodeWriter.cs
- FilteredReadOnlyMetadataCollection.cs
- BmpBitmapDecoder.cs
- BitStream.cs
- UInt64Storage.cs
- SimpleMailWebEventProvider.cs
- Tablet.cs
- DragStartedEventArgs.cs
- TypeConverter.cs
- NamedPipeTransportSecurityElement.cs
- AlternationConverter.cs
- SymmetricKeyWrap.cs
- PerformanceCounterCategory.cs
- PagePropertiesChangingEventArgs.cs
- AmbientLight.cs
- XamlTypeMapper.cs
- VariableModifiersHelper.cs
- DecimalAverageAggregationOperator.cs
- SafeMemoryMappedViewHandle.cs
- WindowsRegion.cs
- BufferedConnection.cs
- ContainerVisual.cs
- ComponentResourceManager.cs
- ListItem.cs
- ShaderEffect.cs
- RuntimeVariableList.cs
- MDIControlStrip.cs
- DispatcherHooks.cs
- FunctionQuery.cs
- TypeLibConverter.cs
- WhitespaceSignificantCollectionAttribute.cs
- SqlReorderer.cs
- ConversionValidationRule.cs
- Span.cs
- WebBrowserProgressChangedEventHandler.cs
- DataBoundLiteralControl.cs
- FixedSOMTable.cs
- SingleKeyFrameCollection.cs
- Label.cs
- EventItfInfo.cs
- HttpClientCertificate.cs
- SortedDictionary.cs
- ValidatingReaderNodeData.cs
- SupportingTokenProviderSpecification.cs
- MinimizableAttributeTypeConverter.cs
- RequestCacheValidator.cs
- ListBindingHelper.cs
- QueryAccessibilityHelpEvent.cs
- MSG.cs
- PasswordBoxAutomationPeer.cs
- DiscreteKeyFrames.cs
- SafePointer.cs
- SystemException.cs
- HeaderElement.cs
- HandledEventArgs.cs
- HMACSHA1.cs
- WindowsTooltip.cs
- TagPrefixAttribute.cs
- DeclarativeCatalogPart.cs
- SelectorItemAutomationPeer.cs
- SystemUdpStatistics.cs
- ResourceDictionaryCollection.cs
- HttpResponseHeader.cs
- SwitchCase.cs
- SystemColors.cs
- SHA1Cng.cs
- PartialTrustVisibleAssemblyCollection.cs
- XmlSchemaSimpleType.cs
- DesignerSerializationVisibilityAttribute.cs
- SecuritySessionClientSettings.cs
- CoTaskMemHandle.cs
- BamlVersionHeader.cs
- SortableBindingList.cs
- InvokeGenerator.cs
- SafeRightsManagementSessionHandle.cs
- DynamicMethod.cs
- ToolStripGrip.cs
- Stack.cs
- WebControl.cs
- PasswordBoxAutomationPeer.cs
- LinearQuaternionKeyFrame.cs
- WebResourceAttribute.cs
- DbFunctionCommandTree.cs
- SmiSettersStream.cs
- NextPreviousPagerField.cs
- SessionStateUtil.cs
- BitmapFrameEncode.cs