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
- NameValueCollection.cs
- SchemaNames.cs
- NativeMethods.cs
- AnnotationHighlightLayer.cs
- infer.cs
- BaseProcessProtocolHandler.cs
- ActivityExecutionContext.cs
- TextEditorCharacters.cs
- OLEDB_Util.cs
- GeometryCollection.cs
- WebPartPersonalization.cs
- Annotation.cs
- CodeLinePragma.cs
- PageRanges.cs
- HtmlTableRow.cs
- Padding.cs
- SqlInfoMessageEvent.cs
- OleDbFactory.cs
- DocumentScope.cs
- TableLayoutPanel.cs
- FastPropertyAccessor.cs
- TextEditorTyping.cs
- ReadOnlyCollectionBuilder.cs
- DataGridCaption.cs
- TableDetailsRow.cs
- TreeNodeCollectionEditorDialog.cs
- Visitor.cs
- Int16Storage.cs
- CommentEmitter.cs
- SettingsBindableAttribute.cs
- AppearanceEditorPart.cs
- ConsoleCancelEventArgs.cs
- ResXBuildProvider.cs
- TextRunCacheImp.cs
- SchemaSetCompiler.cs
- ExtendedProtectionPolicyTypeConverter.cs
- CreateUserWizard.cs
- SecondaryViewProvider.cs
- Filter.cs
- HeaderedItemsControl.cs
- BindStream.cs
- OutOfProcStateClientManager.cs
- ContainerParagraph.cs
- FloatSumAggregationOperator.cs
- XmlEnumAttribute.cs
- ICollection.cs
- SecurityIdentifierConverter.cs
- ItemAutomationPeer.cs
- WebPartEditorApplyVerb.cs
- StatusBar.cs
- SqlUserDefinedAggregateAttribute.cs
- CapabilitiesState.cs
- sqlstateclientmanager.cs
- SchemaObjectWriter.cs
- NullRuntimeConfig.cs
- MdiWindowListStrip.cs
- OdbcTransaction.cs
- CurrencyWrapper.cs
- LinqDataSourceValidationException.cs
- CachedTypeface.cs
- Debug.cs
- WebPartVerbsEventArgs.cs
- DiagnosticTraceSource.cs
- SupportsEventValidationAttribute.cs
- ServiceOperationUIEditor.cs
- XmlUtf8RawTextWriter.cs
- MetricEntry.cs
- ConditionBrowserDialog.cs
- RectangleF.cs
- BoundColumn.cs
- XmlSerializerNamespaces.cs
- Model3DGroup.cs
- DataRowComparer.cs
- ColumnHeader.cs
- FixedPage.cs
- TextSegment.cs
- WinFormsSecurity.cs
- WebPartCancelEventArgs.cs
- BindingUtils.cs
- HostedTransportConfigurationManager.cs
- DataTable.cs
- HeaderElement.cs
- DatePickerAutomationPeer.cs
- EntityContainerEntitySet.cs
- LocatorPartList.cs
- ToolStripDropDownButton.cs
- MenuEventArgs.cs
- ConfigurationValue.cs
- SequenceQuery.cs
- ForeignConstraint.cs
- DependencyPropertyKind.cs
- Clipboard.cs
- CustomAttribute.cs
- SqlVersion.cs
- AdapterUtil.cs
- TemplatePagerField.cs
- SQLByte.cs
- DefaultDiscoveryServiceExtension.cs
- InternalBase.cs
- TableLayoutRowStyleCollection.cs