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
- ExportFileRequest.cs
- WebPartConnection.cs
- PointHitTestParameters.cs
- BuildProvidersCompiler.cs
- TypeEnumerableViewSchema.cs
- WSHttpBinding.cs
- ManualResetEvent.cs
- AttachedPropertyBrowsableWhenAttributePresentAttribute.cs
- HelpInfo.cs
- Span.cs
- SessionStateModule.cs
- ToolBarTray.cs
- HyperLinkColumn.cs
- MasterPage.cs
- ImageMapEventArgs.cs
- MessageCredentialType.cs
- QueryOptionExpression.cs
- FontDifferentiator.cs
- ContractComponent.cs
- SBCSCodePageEncoding.cs
- ILGenerator.cs
- ObjectContextServiceProvider.cs
- UriWriter.cs
- RepeaterDataBoundAdapter.cs
- COM2Enum.cs
- SafeEventLogWriteHandle.cs
- NoneExcludedImageIndexConverter.cs
- SystemIPGlobalStatistics.cs
- XmlSchemaValidator.cs
- SqlDataSourceRefreshSchemaForm.cs
- PointLightBase.cs
- GraphicsContainer.cs
- HealthMonitoringSection.cs
- ToolStripRenderer.cs
- SecurityTokenTypes.cs
- CommentEmitter.cs
- glyphs.cs
- CustomError.cs
- ExceptionHandlerDesigner.cs
- MemberInfoSerializationHolder.cs
- ResourceDescriptionAttribute.cs
- Stack.cs
- GridViewCancelEditEventArgs.cs
- GraphicsPath.cs
- CellParagraph.cs
- SqlInternalConnectionTds.cs
- ScrollChrome.cs
- SqlBulkCopyColumnMapping.cs
- DataGridViewCellLinkedList.cs
- NodeFunctions.cs
- FrameSecurityDescriptor.cs
- ReaderWriterLock.cs
- SynchronizedRandom.cs
- ExtensionFile.cs
- Bits.cs
- TextEditor.cs
- MetabaseServerConfig.cs
- ActivityXRefPropertyEditor.cs
- ControlBindingsCollection.cs
- ObjectConverter.cs
- DragEvent.cs
- DependencyProperty.cs
- RuntimeConfig.cs
- SharedHttpTransportManager.cs
- XNodeValidator.cs
- TreeViewAutomationPeer.cs
- SerializerProvider.cs
- PointLightBase.cs
- ZoneMembershipCondition.cs
- Grant.cs
- MultiByteCodec.cs
- sqlpipe.cs
- HttpPostProtocolImporter.cs
- WindowsUpDown.cs
- DataSetMappper.cs
- WithParamAction.cs
- ZipFileInfoCollection.cs
- uribuilder.cs
- QilStrConcat.cs
- NetStream.cs
- Vector3DAnimationUsingKeyFrames.cs
- IdleTimeoutMonitor.cs
- Funcletizer.cs
- InternalBufferOverflowException.cs
- CustomAttributeBuilder.cs
- MetadataPropertyvalue.cs
- AnnotationService.cs
- Run.cs
- ThreadPool.cs
- XmlSchemaAny.cs
- ServiceObjectContainer.cs
- PersonalizationEntry.cs
- FontDifferentiator.cs
- DataGridTable.cs
- SchemaSetCompiler.cs
- Clause.cs
- ChildChangedEventArgs.cs
- XmlMembersMapping.cs
- PropertyCollection.cs
- DataColumnCollection.cs