Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- IDictionary.cs
- DataGridLinkButton.cs
- TextParagraphProperties.cs
- FontUnit.cs
- XmlSchemaObjectTable.cs
- control.ime.cs
- ImageAutomationPeer.cs
- MostlySingletonList.cs
- ReadOnlyCollectionBase.cs
- PenContexts.cs
- TimeSpanConverter.cs
- FormViewUpdatedEventArgs.cs
- HttpListenerResponse.cs
- XslAstAnalyzer.cs
- SqlRecordBuffer.cs
- ZipIOLocalFileHeader.cs
- HttpHeaderCollection.cs
- CollectionAdapters.cs
- ResetableIterator.cs
- Int64Animation.cs
- IndexerReference.cs
- UserPreferenceChangingEventArgs.cs
- BuildManager.cs
- OracleRowUpdatingEventArgs.cs
- PnrpPermission.cs
- XmlSchemaAttribute.cs
- Clock.cs
- SecurityDocument.cs
- SmiRecordBuffer.cs
- BitmapMetadata.cs
- OracleInfoMessageEventArgs.cs
- ToolboxComponentsCreatingEventArgs.cs
- XmlSchemaSimpleTypeRestriction.cs
- EdmItemCollection.cs
- RangeValidator.cs
- ConsoleKeyInfo.cs
- UInt32.cs
- TextFormatterImp.cs
- ICollection.cs
- MediaTimeline.cs
- CompilationUtil.cs
- FormsAuthenticationUser.cs
- FactorySettingsElement.cs
- VectorCollectionConverter.cs
- HttpFormatExtensions.cs
- VersionedStreamOwner.cs
- loginstatus.cs
- ToolboxItemLoader.cs
- SortQueryOperator.cs
- OutputWindow.cs
- RawStylusInputCustomDataList.cs
- WebFormsRootDesigner.cs
- ScriptingJsonSerializationSection.cs
- FixedTextView.cs
- XDRSchema.cs
- StateMachine.cs
- WebExceptionStatus.cs
- Debug.cs
- TemplateLookupAction.cs
- ImageIndexConverter.cs
- TimeZoneInfo.cs
- TransformCryptoHandle.cs
- HandlerFactoryCache.cs
- SQLGuidStorage.cs
- ApplicationDirectory.cs
- GlobalizationSection.cs
- ItemCollection.cs
- RadioButtonDesigner.cs
- ComplexPropertyEntry.cs
- ConsoleTraceListener.cs
- ObjectHelper.cs
- SymbolPair.cs
- MsmqNonTransactedPoisonHandler.cs
- KeyMatchBuilder.cs
- XmlCharacterData.cs
- mactripleDES.cs
- IgnoreFileBuildProvider.cs
- IdnElement.cs
- StylusPointDescription.cs
- BlurEffect.cs
- TrackingServices.cs
- DataGridSortCommandEventArgs.cs
- Help.cs
- SymbolTable.cs
- CodeRegionDirective.cs
- ContainerActivationHelper.cs
- HtmlTableRowCollection.cs
- SaveWorkflowAsyncResult.cs
- IFlowDocumentViewer.cs
- EntityDataSourceMemberPath.cs
- Marshal.cs
- ObfuscateAssemblyAttribute.cs
- KerberosSecurityTokenParameters.cs
- SizeLimitedCache.cs
- DataGridViewTextBoxColumn.cs
- PropertyRef.cs
- WorkerRequest.cs
- NodeLabelEditEvent.cs
- NameValueFileSectionHandler.cs
- ToolStripMenuItemDesigner.cs