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(ListpointBuffer) { 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
- HitTestFilterBehavior.cs
- DataGridCell.cs
- XomlDesignerLoader.cs
- SequentialWorkflowHeaderFooter.cs
- SmtpSection.cs
- MatrixIndependentAnimationStorage.cs
- EditCommandColumn.cs
- ControlCodeDomSerializer.cs
- SqlDuplicator.cs
- Graphics.cs
- PeerObject.cs
- ClientRolePrincipal.cs
- ClrPerspective.cs
- EnumMember.cs
- DefaultBindingPropertyAttribute.cs
- XmlIncludeAttribute.cs
- FormatterConverter.cs
- Security.cs
- MultipleViewProviderWrapper.cs
- MessageDescription.cs
- SqlEnums.cs
- ItemMap.cs
- ElementHost.cs
- ErrorProvider.cs
- RepeatBehavior.cs
- AutoResetEvent.cs
- PathFigureCollection.cs
- SafeNativeMethods.cs
- ResourcePool.cs
- COAUTHINFO.cs
- SoapEnumAttribute.cs
- InvalidWMPVersionException.cs
- ReverseComparer.cs
- MetaDataInfo.cs
- ActiveXSite.cs
- EdmValidator.cs
- IImplicitResourceProvider.cs
- ImageBrush.cs
- RuntimeConfigLKG.cs
- FirstQueryOperator.cs
- SQLChars.cs
- DecimalConstantAttribute.cs
- AccessDataSourceView.cs
- FixedPageProcessor.cs
- DataControlButton.cs
- ImageMetadata.cs
- EntityStoreSchemaGenerator.cs
- InternalSafeNativeMethods.cs
- NotCondition.cs
- SetStoryboardSpeedRatio.cs
- SettingsPropertyIsReadOnlyException.cs
- ClientRuntimeConfig.cs
- RenderingBiasValidation.cs
- RenderContext.cs
- CryptoApi.cs
- TextComposition.cs
- SimplePropertyEntry.cs
- MetadataPropertyvalue.cs
- PropertyChangingEventArgs.cs
- TableLayoutColumnStyleCollection.cs
- SqlDataSourceStatusEventArgs.cs
- TransactionException.cs
- _CookieModule.cs
- HybridDictionary.cs
- MultipartIdentifier.cs
- VariableQuery.cs
- ThicknessConverter.cs
- Evidence.cs
- InputBuffer.cs
- InstalledFontCollection.cs
- CommandManager.cs
- ChangePassword.cs
- TypeSystemHelpers.cs
- DbConnectionOptions.cs
- RC2CryptoServiceProvider.cs
- WindowsTokenRoleProvider.cs
- RankException.cs
- ZipIOCentralDirectoryFileHeader.cs
- SqlAliasesReferenced.cs
- BinaryMessageFormatter.cs
- SuppressIldasmAttribute.cs
- OledbConnectionStringbuilder.cs
- CharacterShapingProperties.cs
- SortedDictionary.cs
- ListViewTableRow.cs
- TraceHandler.cs
- OleDbReferenceCollection.cs
- WebControlToolBoxItem.cs
- WebContext.cs
- Page.cs
- XPathNavigatorKeyComparer.cs
- BindingContext.cs
- ApplicationManager.cs
- EventLogPropertySelector.cs
- DataTableReaderListener.cs
- Point3DAnimation.cs
- ArgIterator.cs
- BindingExpression.cs
- ProcessHostMapPath.cs
- OrderingExpression.cs