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
- InvalidAsynchronousStateException.cs
- WindowsFormsLinkLabel.cs
- DictionaryEntry.cs
- mactripleDES.cs
- TemplateNameScope.cs
- StoragePropertyMapping.cs
- ContextMarshalException.cs
- CustomValidator.cs
- WeakReferenceList.cs
- IndependentAnimationStorage.cs
- PathGeometry.cs
- DocobjHost.cs
- SchemaSetCompiler.cs
- WindowsToolbarItemAsMenuItem.cs
- DataControlField.cs
- ComponentEvent.cs
- StringCollectionEditor.cs
- Form.cs
- GotoExpression.cs
- ToolBar.cs
- DataSource.cs
- QilDataSource.cs
- XmlDeclaration.cs
- ActivityBindForm.cs
- BufferAllocator.cs
- TextOptions.cs
- ControlParser.cs
- KeyEvent.cs
- TreeIterator.cs
- LayoutDump.cs
- LogicalChannel.cs
- HiddenField.cs
- ParameterBuilder.cs
- PeerPresenceInfo.cs
- PerfCounters.cs
- FormViewPagerRow.cs
- ShadowGlyph.cs
- HtmlElementEventArgs.cs
- DefaultEventAttribute.cs
- ConfigurationManagerHelper.cs
- CompilerLocalReference.cs
- ApplicationContext.cs
- MimeFormatExtensions.cs
- PasswordRecovery.cs
- TemplateContainer.cs
- HostingEnvironment.cs
- WindowsClientElement.cs
- TypeConverterMarkupExtension.cs
- RequestUriProcessor.cs
- QueryAccessibilityHelpEvent.cs
- ParserOptions.cs
- ImageMap.cs
- FileVersion.cs
- IndentedWriter.cs
- InvalidTimeZoneException.cs
- WindowsPen.cs
- TemplateXamlParser.cs
- PositiveTimeSpanValidator.cs
- KeyValuePairs.cs
- ResXFileRef.cs
- XmlCharCheckingReader.cs
- DoubleMinMaxAggregationOperator.cs
- DataBoundLiteralControl.cs
- GridProviderWrapper.cs
- EventMappingSettings.cs
- LocationInfo.cs
- SafeBitVector32.cs
- WebPermission.cs
- OperationCanceledException.cs
- ApplicationSettingsBase.cs
- Vector3D.cs
- _WebProxyDataBuilder.cs
- HttpRequestTraceRecord.cs
- ParagraphVisual.cs
- XPathParser.cs
- EntityDataSourceConfigureObjectContext.cs
- TextRange.cs
- TableLayoutSettingsTypeConverter.cs
- ILGenerator.cs
- WorkflowServiceHost.cs
- CroppedBitmap.cs
- OracleBinary.cs
- CapabilitiesSection.cs
- MasterPageCodeDomTreeGenerator.cs
- Crypto.cs
- FrameAutomationPeer.cs
- CfgSemanticTag.cs
- QuaternionAnimationBase.cs
- Control.cs
- NetTcpBinding.cs
- DescendantOverDescendantQuery.cs
- ISFTagAndGuidCache.cs
- ScriptingProfileServiceSection.cs
- ZipIOExtraFieldElement.cs
- BindingEntityInfo.cs
- MappingMetadataHelper.cs
- XmlNamedNodeMap.cs
- BitVector32.cs
- NullableBoolConverter.cs
- DbDataSourceEnumerator.cs