Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Ink / Quad.cs / 1305600 / 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
- EnterpriseServicesHelper.cs
- HtmlForm.cs
- CodeVariableReferenceExpression.cs
- UInt16Storage.cs
- ECDsa.cs
- XmlSchemaFacet.cs
- ImageBrush.cs
- C14NUtil.cs
- ReferencedAssembly.cs
- Stack.cs
- BitmapScalingModeValidation.cs
- AbstractSvcMapFileLoader.cs
- VideoDrawing.cs
- InvalidOleVariantTypeException.cs
- DispatcherSynchronizationContext.cs
- ToolStripArrowRenderEventArgs.cs
- MessageQueueInstaller.cs
- ActivatedMessageQueue.cs
- DataControlImageButton.cs
- DataGridViewTopLeftHeaderCell.cs
- PrimitiveType.cs
- login.cs
- TimelineGroup.cs
- cache.cs
- ScrollProviderWrapper.cs
- ISCIIEncoding.cs
- WorkItem.cs
- BitmapEffectInput.cs
- PointHitTestResult.cs
- FacetDescription.cs
- AdRotatorDesigner.cs
- Environment.cs
- DeferredSelectedIndexReference.cs
- EnterpriseServicesHelper.cs
- IssuanceLicense.cs
- ClientScriptItemCollection.cs
- ProfileInfo.cs
- ContractBase.cs
- Image.cs
- DataError.cs
- D3DImage.cs
- ItemChangedEventArgs.cs
- XmlSchemaSet.cs
- RangeValuePattern.cs
- GuidTagList.cs
- SchemaMapping.cs
- OutputCacheModule.cs
- ErrorTableItemStyle.cs
- OdbcUtils.cs
- validation.cs
- FilteredAttributeCollection.cs
- FontConverter.cs
- ResourceDescriptionAttribute.cs
- SrgsElementList.cs
- TraceContextEventArgs.cs
- LoginView.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- X509CertificateCollection.cs
- SelectionEditingBehavior.cs
- DefaultValueMapping.cs
- RequestCachePolicy.cs
- ExcludeFromCodeCoverageAttribute.cs
- DesignerTransaction.cs
- VariableQuery.cs
- WebPartZoneBase.cs
- HtmlInputImage.cs
- ObjectDataSourceFilteringEventArgs.cs
- ResXDataNode.cs
- MemoryRecordBuffer.cs
- WindowsStartMenu.cs
- TextModifier.cs
- RuleAttributes.cs
- FigureParagraph.cs
- GenerateTemporaryAssemblyTask.cs
- XmlSchemas.cs
- SafeEventHandle.cs
- ModelItemCollectionImpl.cs
- PeerUnsafeNativeCryptMethods.cs
- OdbcRowUpdatingEvent.cs
- XmlCharacterData.cs
- Accessible.cs
- log.cs
- SQLDouble.cs
- ClassicBorderDecorator.cs
- DataGridViewIntLinkedList.cs
- InputScopeNameConverter.cs
- LayoutTable.cs
- BroadcastEventHelper.cs
- TargetException.cs
- QueryNode.cs
- SqlInfoMessageEvent.cs
- ViewStateModeByIdAttribute.cs
- DataServiceExpressionVisitor.cs
- GlyphInfoList.cs
- XpsFilter.cs
- SqlTypesSchemaImporter.cs
- UnmanagedBitmapWrapper.cs
- PackageDigitalSignatureManager.cs
- ClientProtocol.cs
- FormattedText.cs