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
- ConvertersCollection.cs
- TextElement.cs
- MasterPage.cs
- RectangleHotSpot.cs
- CustomTypeDescriptor.cs
- ContactManager.cs
- TagPrefixInfo.cs
- XmlSchemaInferenceException.cs
- FunctionCommandText.cs
- SafeRightsManagementEnvironmentHandle.cs
- BitmapSizeOptions.cs
- Stackframe.cs
- InfoCardRequestException.cs
- LabelLiteral.cs
- SimpleFileLog.cs
- Buffer.cs
- HostingMessageProperty.cs
- ListViewInsertEventArgs.cs
- DataColumnMapping.cs
- Point3DKeyFrameCollection.cs
- SoapCodeExporter.cs
- XmlMembersMapping.cs
- COMException.cs
- DateTimeParse.cs
- Rect.cs
- BrowserPolicyValidator.cs
- DataSourceHelper.cs
- CompiledQueryCacheKey.cs
- AttributeProviderAttribute.cs
- StatusCommandUI.cs
- TextEditorMouse.cs
- SystemColorTracker.cs
- ConcatQueryOperator.cs
- CompoundFileStorageReference.cs
- EdmError.cs
- StorageTypeMapping.cs
- SizeF.cs
- SQLInt64.cs
- SynchronizedRandom.cs
- HostingEnvironmentException.cs
- HtmlElementErrorEventArgs.cs
- StrongNameSignatureInformation.cs
- BitSet.cs
- AppDomainManager.cs
- Brush.cs
- MatrixTransform3D.cs
- ProfilePropertyMetadata.cs
- IRCollection.cs
- SetIterators.cs
- SecurityContextCookieSerializer.cs
- WinFormsSecurity.cs
- EntityEntry.cs
- ForeignKeyConstraint.cs
- RtfControlWordInfo.cs
- SchemaTypeEmitter.cs
- Span.cs
- PathStreamGeometryContext.cs
- TableLayoutSettings.cs
- ZoneLinkButton.cs
- ThreadPool.cs
- TextTreeUndo.cs
- FormsAuthenticationEventArgs.cs
- BamlTreeNode.cs
- SystemIPInterfaceProperties.cs
- UnicastIPAddressInformationCollection.cs
- _FtpControlStream.cs
- DocumentSequence.cs
- GeneralTransform3D.cs
- IList.cs
- RectangleGeometry.cs
- ToolStripSeparatorRenderEventArgs.cs
- OdbcConnectionHandle.cs
- SmtpNtlmAuthenticationModule.cs
- WindowsStatic.cs
- Queue.cs
- FastPropertyAccessor.cs
- ColumnHeaderCollectionEditor.cs
- ClientApiGenerator.cs
- IDispatchConstantAttribute.cs
- BamlMapTable.cs
- LoginUtil.cs
- GeometryModel3D.cs
- DependencyPropertyDescriptor.cs
- RepeatButton.cs
- EllipseGeometry.cs
- SqlDataSourceSelectingEventArgs.cs
- FileLevelControlBuilderAttribute.cs
- SqlProvider.cs
- ActivationServices.cs
- QilXmlWriter.cs
- HTTPNotFoundHandler.cs
- EdmType.cs
- OdbcUtils.cs
- HttpResponse.cs
- SmiEventSink_Default.cs
- TableAdapterManagerNameHandler.cs
- TextStore.cs
- FlowLayoutPanel.cs
- EventKeyword.cs
- XmlElementAttributes.cs