Code:
/ 4.0 / 4.0 / 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(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. //------------------------------------------------------------------------ //// 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
- MatrixTransform.cs
- CommandBindingCollection.cs
- XmlMtomReader.cs
- HttpResponseInternalBase.cs
- CornerRadiusConverter.cs
- KeyPressEvent.cs
- WinInetCache.cs
- XmlQueryTypeFactory.cs
- ArrangedElement.cs
- ProfileGroupSettingsCollection.cs
- ResourceDictionaryCollection.cs
- TableRowCollection.cs
- ApplicationFileParser.cs
- isolationinterop.cs
- hwndwrapper.cs
- PrintDocument.cs
- PageHandlerFactory.cs
- ListChangedEventArgs.cs
- DBDataPermission.cs
- SessionStateModule.cs
- SafeSecurityHelper.cs
- RegexCapture.cs
- RC2CryptoServiceProvider.cs
- ScrollItemProviderWrapper.cs
- TypeLibConverter.cs
- QuaternionAnimationUsingKeyFrames.cs
- CachedCompositeFamily.cs
- SurrogateSelector.cs
- GifBitmapDecoder.cs
- SolidBrush.cs
- MgmtConfigurationRecord.cs
- NegotiateStream.cs
- RelationshipType.cs
- DefaultValueAttribute.cs
- XamlToRtfWriter.cs
- FunctionDetailsReader.cs
- SubclassTypeValidator.cs
- OutputCacheEntry.cs
- TextFormatterHost.cs
- SendAgentStatusRequest.cs
- FontNamesConverter.cs
- HitTestDrawingContextWalker.cs
- CachingHintValidation.cs
- NavigationFailedEventArgs.cs
- RoleManagerModule.cs
- SapiRecoContext.cs
- __ConsoleStream.cs
- XmlnsCompatibleWithAttribute.cs
- QuaternionRotation3D.cs
- SymLanguageType.cs
- LineGeometry.cs
- PassportIdentity.cs
- exports.cs
- SystemWebSectionGroup.cs
- HttpConfigurationSystem.cs
- RegexWorker.cs
- ToolStripPanelRow.cs
- SafeArrayRankMismatchException.cs
- HTMLTextWriter.cs
- SqlDataSourceFilteringEventArgs.cs
- PointIndependentAnimationStorage.cs
- ServiceMetadataContractBehavior.cs
- TypeValidationEventArgs.cs
- MetadataSet.cs
- CharacterBufferReference.cs
- InheritanceUI.cs
- PrintingPermissionAttribute.cs
- MarshalByRefObject.cs
- TypeContext.cs
- NullPackagingPolicy.cs
- ComplexObject.cs
- LostFocusEventManager.cs
- VBIdentifierNameEditor.cs
- IgnoreSection.cs
- IERequestCache.cs
- Material.cs
- FixedPageAutomationPeer.cs
- DataObjectMethodAttribute.cs
- Win32.cs
- ObjectDataProvider.cs
- IndexingContentUnit.cs
- SyndicationLink.cs
- ConstantProjectedSlot.cs
- WebBrowserContainer.cs
- _RequestCacheProtocol.cs
- AttachedPropertyMethodSelector.cs
- ChannelCacheDefaults.cs
- ZipIOExtraFieldZip64Element.cs
- _ProxyChain.cs
- PasswordDeriveBytes.cs
- EntityTypeEmitter.cs
- XpsFontSubsetter.cs
- coordinatorfactory.cs
- Event.cs
- RTLAwareMessageBox.cs
- XmlValueConverter.cs
- InvalidComObjectException.cs
- GuidelineSet.cs
- SiteMapNode.cs
- COAUTHIDENTITY.cs