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
- base64Transforms.cs
- DbExpressionRules.cs
- BaseParaClient.cs
- Tile.cs
- SqlClientMetaDataCollectionNames.cs
- SqlGatherConsumedAliases.cs
- ClientBase.cs
- GradientSpreadMethodValidation.cs
- FlagsAttribute.cs
- SQLDateTimeStorage.cs
- Int16AnimationUsingKeyFrames.cs
- __Filters.cs
- XmlSortKey.cs
- XPathSingletonIterator.cs
- DynamicScriptObject.cs
- HttpDebugHandler.cs
- FamilyMapCollection.cs
- CngAlgorithmGroup.cs
- DeclaredTypeElementCollection.cs
- DataObjectSettingDataEventArgs.cs
- QueryComponents.cs
- ITreeGenerator.cs
- DrawingAttributesDefaultValueFactory.cs
- AsyncOperationManager.cs
- PolyLineSegment.cs
- XmlDocumentType.cs
- _AcceptOverlappedAsyncResult.cs
- MemberAssignmentAnalysis.cs
- Error.cs
- NameScopePropertyAttribute.cs
- CodeAttributeDeclarationCollection.cs
- StatusBarItemAutomationPeer.cs
- TransformCollection.cs
- GeometryValueSerializer.cs
- ViewBase.cs
- _HTTPDateParse.cs
- XmlSchemaDatatype.cs
- ObfuscateAssemblyAttribute.cs
- CatalogPart.cs
- DurableInstanceContextProvider.cs
- TimeZone.cs
- Activity.cs
- RemotingConfigParser.cs
- DataGridItemAutomationPeer.cs
- GreenMethods.cs
- DeliveryStrategy.cs
- SkinIDTypeConverter.cs
- Path.cs
- XmlToDatasetMap.cs
- FixedSOMImage.cs
- ToolboxCategoryItems.cs
- SoapConverter.cs
- StaticContext.cs
- SqlVisitor.cs
- SQLInt64Storage.cs
- Point3DCollectionValueSerializer.cs
- ContextMenuStripActionList.cs
- SerialStream.cs
- PropertyBuilder.cs
- DPCustomTypeDescriptor.cs
- FrameworkReadOnlyPropertyMetadata.cs
- QilValidationVisitor.cs
- WinFormsUtils.cs
- FieldCollectionEditor.cs
- NamedPipeTransportBindingElement.cs
- DiagnosticTraceSource.cs
- UpdatableGenericsFeature.cs
- PageTheme.cs
- TypeDependencyAttribute.cs
- DropShadowBitmapEffect.cs
- figurelength.cs
- VisualBrush.cs
- UnlockInstanceCommand.cs
- WinFormsUtils.cs
- OdbcEnvironment.cs
- Icon.cs
- Repeater.cs
- ValidationUtility.cs
- SelectionItemPattern.cs
- UseLicense.cs
- Win32MouseDevice.cs
- PathFigure.cs
- GenerateScriptTypeAttribute.cs
- JsonReader.cs
- DataGridViewTextBoxEditingControl.cs
- Polygon.cs
- XmlTextAttribute.cs
- TextEditorTyping.cs
- StringWriter.cs
- CustomDictionarySources.cs
- BasePattern.cs
- Int64AnimationUsingKeyFrames.cs
- CompiledRegexRunnerFactory.cs
- HttpHostedTransportConfiguration.cs
- CTreeGenerator.cs
- HttpListenerContext.cs
- LocalFileSettingsProvider.cs
- DeclarationUpdate.cs
- RectAnimation.cs
- PreDigestedSignedInfo.cs