Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / MS / Internal / Ink / Quad.cs / 1 / Quad.cs
//------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//-----------------------------------------------------------------------
using System;
using System.Windows;
using System.Windows.Media;
using System.Collections;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using MS.Utility;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace MS.Internal.Ink
{
///
/// A helper structure used in StrokeNode and StrokeNodeOperation implementations
/// to store endpoints of the quad connecting two nodes of a stroke.
/// The vertices of a quad are supposed to be clockwise with points A and D located
/// on the begin node and B and C on the end one.
///
internal struct Quad
{
#region Statics
private static Quad s_empty = new Quad(new Point(0, 0), new Point(0, 0), new Point(0, 0), new Point(0, 0));
#endregion
#region API
/// Returns the static object representing an empty (unitialized) quad
internal static Quad Empty { get { return s_empty; } }
/// Constructor
internal Quad(Point a, Point b, Point c, Point d)
{
_A = a; _B = b; _C = c; _D = d;
}
/// The A vertex of the quad
internal Point A { get { return _A; } set { _A = value; } }
/// The B vertex of the quad
internal Point B { get { return _B; } set { _B = value; } }
/// The C vertex of the quad
internal Point C { get { return _C; } set { _C = value; } }
/// The D vertex of the quad
internal Point D { get { return _D; } set { _D = value; } }
// Returns quad's vertex by index where A is of the index 0, B - is 1, etc
internal Point this[int index]
{
get
{
switch (index)
{
case 0: return _A;
case 1: return _B;
case 2: return _C;
case 3: return _D;
default:
throw new IndexOutOfRangeException("index");
}
}
}
/// Tells whether the quad is invalid (empty)
internal bool IsEmpty
{
get { return (_A == _B) && (_C == _D); }
}
internal void GetPoints(List pointBuffer)
{
pointBuffer.Add(_A);
pointBuffer.Add(_B);
pointBuffer.Add(_C);
pointBuffer.Add(_D);
}
/// Returns the bounds of the quad
internal Rect Bounds
{
get { return IsEmpty ? Rect.Empty : Rect.Union(new Rect(_A, _B), new Rect(_C, _D)); }
}
#endregion
#region Fields
private Point _A;
private Point _B;
private Point _C;
private Point _D;
#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
- StringSource.cs
- NavigatingCancelEventArgs.cs
- ToolStripItem.cs
- UInt64.cs
- ToolStripGrip.cs
- QilInvokeLateBound.cs
- BuildProvider.cs
- CryptoHandle.cs
- TemplateBamlRecordReader.cs
- Window.cs
- EventProvider.cs
- XmlConvert.cs
- ToolStripTextBox.cs
- BidOverLoads.cs
- MessageParameterAttribute.cs
- EmptyControlCollection.cs
- RecipientServiceModelSecurityTokenRequirement.cs
- ResXResourceSet.cs
- ImageMetadata.cs
- FrameworkRichTextComposition.cs
- SystemIcmpV6Statistics.cs
- UnsafeNativeMethods.cs
- DataSet.cs
- GridViewCellAutomationPeer.cs
- Latin1Encoding.cs
- ErrorWrapper.cs
- GridView.cs
- QilPatternVisitor.cs
- ReferenceTypeElement.cs
- RelatedView.cs
- EntityWithChangeTrackerStrategy.cs
- RemoteWebConfigurationHostStream.cs
- CqlParser.cs
- TextRunProperties.cs
- TimeSpanSecondsConverter.cs
- ResetableIterator.cs
- MetricEntry.cs
- TextAdaptor.cs
- CheckBoxField.cs
- HttpContextWrapper.cs
- TimelineClockCollection.cs
- ConfigurationSectionGroupCollection.cs
- X509Chain.cs
- FacetChecker.cs
- WasEndpointConfigContainer.cs
- CodeComment.cs
- RenderDataDrawingContext.cs
- TextServicesContext.cs
- ConfigurationManagerInternalFactory.cs
- X509Extension.cs
- WebBaseEventKeyComparer.cs
- GridPattern.cs
- Timer.cs
- CompoundFileReference.cs
- ETagAttribute.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- TypeKeyValue.cs
- ControlUtil.cs
- DataGridCaption.cs
- VariableExpressionConverter.cs
- HttpDictionary.cs
- EditBehavior.cs
- Compiler.cs
- ComboBoxRenderer.cs
- EpmContentDeSerializer.cs
- ElementHost.cs
- RawTextInputReport.cs
- ProcessInfo.cs
- NamespaceQuery.cs
- Connector.xaml.cs
- Control.cs
- RepeaterItem.cs
- LockCookie.cs
- FormViewDeletedEventArgs.cs
- WebScriptEndpointElement.cs
- EntityDataSourceDesignerHelper.cs
- TransactionManagerProxy.cs
- XmlSchemaType.cs
- RuleElement.cs
- PenCursorManager.cs
- TlsnegoTokenProvider.cs
- FileInfo.cs
- LinkLabelLinkClickedEvent.cs
- ReflectionTypeLoadException.cs
- FeatureSupport.cs
- TypedDataSourceCodeGenerator.cs
- CheckStoreFileValidityRequest.cs
- DeploymentSection.cs
- ButtonBase.cs
- XmlSchemaValidationException.cs
- _UncName.cs
- EventSinkHelperWriter.cs
- PipelineComponent.cs
- AuthStoreRoleProvider.cs
- objectquery_tresulttype.cs
- AutomationEvent.cs
- RectValueSerializer.cs
- PersonalizationState.cs
- DbDeleteCommandTree.cs
- _OverlappedAsyncResult.cs