Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- RtfToXamlLexer.cs
- DefaultTextStoreTextComposition.cs
- XmlTextEncoder.cs
- SimpleBitVector32.cs
- QilInvokeLateBound.cs
- UnsafeNativeMethods.cs
- HttpInputStream.cs
- LZCodec.cs
- HttpCacheVaryByContentEncodings.cs
- GPRECTF.cs
- ScriptControlDescriptor.cs
- CacheMode.cs
- RichTextBoxConstants.cs
- RegexReplacement.cs
- AssociationSetEnd.cs
- CodeTypeReferenceSerializer.cs
- TextCollapsingProperties.cs
- CorruptingExceptionCommon.cs
- _UriSyntax.cs
- ValidationPropertyAttribute.cs
- OdbcConnectionStringbuilder.cs
- GeneralTransform.cs
- ContextBase.cs
- OleDbParameter.cs
- CalendarDay.cs
- SelectionChangedEventArgs.cs
- CallbackTimeoutsElement.cs
- PersonalizableTypeEntry.cs
- AddressHeaderCollectionElement.cs
- JulianCalendar.cs
- DependencyPropertyDescriptor.cs
- Stylesheet.cs
- ViewBase.cs
- LogicalExpressionTypeConverter.cs
- WorkflowDispatchContext.cs
- RecommendedAsConfigurableAttribute.cs
- PermissionAttributes.cs
- AmbientProperties.cs
- ValueSerializer.cs
- BlurEffect.cs
- EncryptedPackageFilter.cs
- WebResourceUtil.cs
- ButtonFlatAdapter.cs
- StorageRoot.cs
- ColorConvertedBitmapExtension.cs
- NonParentingControl.cs
- NumericExpr.cs
- UInt16.cs
- AppDomainShutdownMonitor.cs
- ZipIOExtraFieldZip64Element.cs
- CoTaskMemHandle.cs
- RangeValueProviderWrapper.cs
- SqlTopReducer.cs
- DbDataAdapter.cs
- Image.cs
- DnsElement.cs
- ContentType.cs
- ReadContentAsBinaryHelper.cs
- OracleConnection.cs
- PropertiesTab.cs
- GenericIdentity.cs
- HashStream.cs
- ItemCollection.cs
- keycontainerpermission.cs
- ConfigXmlCDataSection.cs
- InfoCardRSAPKCS1KeyExchangeDeformatter.cs
- ListViewHitTestInfo.cs
- ArgumentNullException.cs
- CardSpaceException.cs
- Missing.cs
- QueueProcessor.cs
- OleDbReferenceCollection.cs
- _CookieModule.cs
- FlowSwitch.cs
- PenContexts.cs
- ProfilePropertyNameValidator.cs
- PersonalizationAdministration.cs
- CodeEventReferenceExpression.cs
- DispatcherFrame.cs
- ObjectDataSourceSelectingEventArgs.cs
- PrimarySelectionGlyph.cs
- ContainerFilterService.cs
- ListViewEditEventArgs.cs
- PageRanges.cs
- TdsParameterSetter.cs
- GZipUtils.cs
- ObjectDataSource.cs
- LayoutEvent.cs
- TextRangeEdit.cs
- ContextMenuAutomationPeer.cs
- Point3D.cs
- EncryptedKey.cs
- safelinkcollection.cs
- ExpressionDumper.cs
- ContractValidationHelper.cs
- HostingEnvironmentSection.cs
- ExpressionConverter.cs
- HostVisual.cs
- XmlDataContract.cs
- ObjectRef.cs