Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DataGridLinkButton.cs
- PropertyConverter.cs
- RegisteredScript.cs
- CopyAction.cs
- ADConnectionHelper.cs
- EntityContainerEntitySetDefiningQuery.cs
- CodeBlockBuilder.cs
- WrappedIUnknown.cs
- DesignerHelpers.cs
- RuntimeCompatibilityAttribute.cs
- ErrorFormatter.cs
- AstTree.cs
- AnimatedTypeHelpers.cs
- ParserHooks.cs
- SafeSystemMetrics.cs
- RequestContextBase.cs
- SupportsEventValidationAttribute.cs
- ResolveResponseInfo.cs
- SqlClientWrapperSmiStreamChars.cs
- XmlDataSourceNodeDescriptor.cs
- SQLConvert.cs
- StringArrayConverter.cs
- TextServicesPropertyRanges.cs
- SystemGatewayIPAddressInformation.cs
- LinkedResource.cs
- StringDictionaryEditor.cs
- SQLGuid.cs
- WindowsScrollBar.cs
- MsmqHostedTransportConfiguration.cs
- SystemFonts.cs
- ListenerSessionConnection.cs
- VarRefManager.cs
- versioninfo.cs
- UserControl.cs
- Helpers.cs
- XdrBuilder.cs
- MdImport.cs
- TimeSpanSecondsConverter.cs
- GridViewSelectEventArgs.cs
- SqlVisitor.cs
- DataBoundControlHelper.cs
- PathSegment.cs
- LinearQuaternionKeyFrame.cs
- AssociationType.cs
- HierarchicalDataSourceControl.cs
- SByteStorage.cs
- ImmutableObjectAttribute.cs
- RegisteredArrayDeclaration.cs
- ItemsPresenter.cs
- httpstaticobjectscollection.cs
- FixedTextPointer.cs
- SourceItem.cs
- localization.cs
- EntityDesignerDataSourceView.cs
- StrongName.cs
- AnimationClock.cs
- SqlNotificationEventArgs.cs
- CompositeFontFamily.cs
- TableItemProviderWrapper.cs
- ViewManager.cs
- SubqueryTrackingVisitor.cs
- RegexMatch.cs
- ErrorRuntimeConfig.cs
- BitmapEffect.cs
- XmlEventCache.cs
- SecurityElement.cs
- ExecutionContext.cs
- PackageStore.cs
- XmlFormatExtensionPointAttribute.cs
- ResourcePermissionBase.cs
- Expression.cs
- XmlQueryStaticData.cs
- MethodBuilder.cs
- XsdValidatingReader.cs
- InvalidWMPVersionException.cs
- InheritanceUI.cs
- Processor.cs
- EncodingFallbackAwareXmlTextWriter.cs
- LayoutUtils.cs
- Itemizer.cs
- VBIdentifierDesigner.xaml.cs
- RuntimeVariableList.cs
- DataTemplateSelector.cs
- DispatcherProcessingDisabled.cs
- ProxyRpc.cs
- printdlgexmarshaler.cs
- DataGridState.cs
- Vector3DAnimationBase.cs
- BufferedReadStream.cs
- DataTemplate.cs
- HostProtectionPermission.cs
- StylusButtonCollection.cs
- SpecularMaterial.cs
- SystemNetHelpers.cs
- InvalidCardException.cs
- StateDesignerConnector.cs
- ControlIdConverter.cs
- MemberCollection.cs
- ConstructorNeedsTagAttribute.cs
- RemoteHelper.cs