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
- Deserializer.cs
- ListManagerBindingsCollection.cs
- PaintEvent.cs
- PathFigureCollectionConverter.cs
- HtmlInputControl.cs
- DataBinding.cs
- IisTraceWebEventProvider.cs
- HtmlElementErrorEventArgs.cs
- ContentTextAutomationPeer.cs
- DoubleStorage.cs
- VariableBinder.cs
- MetadataPropertyCollection.cs
- WebPartPersonalization.cs
- CapabilitiesSection.cs
- XamlTypeMapper.cs
- Int32KeyFrameCollection.cs
- EUCJPEncoding.cs
- RoutedEvent.cs
- BitmapMetadataBlob.cs
- MethodToken.cs
- TextBoxBase.cs
- StaticDataManager.cs
- DisplayNameAttribute.cs
- TypeDescriptor.cs
- PageCatalogPart.cs
- HtmlMobileTextWriter.cs
- ScriptManager.cs
- PopupRoot.cs
- HeaderedItemsControl.cs
- SequentialOutput.cs
- TCPListener.cs
- FixedFlowMap.cs
- QuerySettings.cs
- Listbox.cs
- SyndicationSerializer.cs
- Stack.cs
- WindowsListViewScroll.cs
- TemplateApplicationHelper.cs
- WizardDesigner.cs
- VisualBrush.cs
- IItemProperties.cs
- ExpressionBinding.cs
- StartUpEventArgs.cs
- IndexingContentUnit.cs
- RenderData.cs
- PolyBezierSegment.cs
- DesignerSerializationOptionsAttribute.cs
- ApplicationProxyInternal.cs
- ChangeNode.cs
- XslTransform.cs
- ControlsConfig.cs
- Accessible.cs
- MimeWriter.cs
- ApplicationFileCodeDomTreeGenerator.cs
- PermissionSetTriple.cs
- DesignSurfaceEvent.cs
- LocalizationComments.cs
- RectAnimationUsingKeyFrames.cs
- RealizationDrawingContextWalker.cs
- SafeIUnknown.cs
- XmlMapping.cs
- EditorPartCollection.cs
- DelegatingTypeDescriptionProvider.cs
- StructuredType.cs
- HtmlSelectionListAdapter.cs
- SqlBulkCopyColumnMappingCollection.cs
- EventLogTraceListener.cs
- DataPagerField.cs
- Properties.cs
- FileUpload.cs
- DefinitionBase.cs
- DefaultValidator.cs
- PolicyLevel.cs
- WebMessageEncodingBindingElement.cs
- UriScheme.cs
- XmlQueryRuntime.cs
- BrushValueSerializer.cs
- DataTablePropertyDescriptor.cs
- WebEventCodes.cs
- SQLUtility.cs
- CacheHelper.cs
- PerformanceCounterPermission.cs
- LogManagementAsyncResult.cs
- MemberHolder.cs
- Roles.cs
- MessageAction.cs
- DBSqlParserColumn.cs
- XmlLanguage.cs
- StringToken.cs
- QilDataSource.cs
- TextLine.cs
- DataComponentMethodGenerator.cs
- HttpProfileBase.cs
- TextBox.cs
- EnlistmentTraceIdentifier.cs
- ListCollectionView.cs
- ConnectionStringsExpressionBuilder.cs
- MenuItem.cs
- PropertyChangingEventArgs.cs
- CallSiteHelpers.cs