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
- SynchronizationFilter.cs
- FixedSOMElement.cs
- XamlSerializerUtil.cs
- SmtpTransport.cs
- HttpRequestWrapper.cs
- NavigationHelper.cs
- AssemblyAttributesGoHere.cs
- SimpleWorkerRequest.cs
- SchemaSetCompiler.cs
- Encoding.cs
- TrueReadOnlyCollection.cs
- PropertyTabAttribute.cs
- DateTimeFormat.cs
- X500Name.cs
- CursorConverter.cs
- QueryStatement.cs
- FlowDocumentFormatter.cs
- XhtmlConformanceSection.cs
- FlagsAttribute.cs
- WindowsSpinner.cs
- Knowncolors.cs
- MultiSelectRootGridEntry.cs
- XmlSchemaComplexContent.cs
- HtmlInputSubmit.cs
- XmlWriterSettings.cs
- XPathPatternBuilder.cs
- EndpointBehaviorElement.cs
- ModuleConfigurationInfo.cs
- SystemIPAddressInformation.cs
- CryptoProvider.cs
- TextServicesCompartment.cs
- ValueSerializerAttribute.cs
- CssStyleCollection.cs
- EntityViewGenerationAttribute.cs
- DBNull.cs
- SourceFileBuildProvider.cs
- SQLInt16.cs
- FlowDocument.cs
- AddInIpcChannel.cs
- RijndaelCryptoServiceProvider.cs
- ToolStripItemDataObject.cs
- DataGridViewHitTestInfo.cs
- TextRangeBase.cs
- SettingsProviderCollection.cs
- FlowDocumentPage.cs
- CFStream.cs
- EdmFunctions.cs
- NetworkInterface.cs
- CapacityStreamGeometryContext.cs
- ASCIIEncoding.cs
- CompositeActivityTypeDescriptorProvider.cs
- EraserBehavior.cs
- BulletedListEventArgs.cs
- Exceptions.cs
- DropShadowEffect.cs
- TableColumn.cs
- storepermissionattribute.cs
- SiblingIterators.cs
- ItemPager.cs
- OleDbErrorCollection.cs
- SizeConverter.cs
- ResetableIterator.cs
- ClientScriptManager.cs
- WebAdminConfigurationHelper.cs
- CheckableControlBaseAdapter.cs
- DeflateStream.cs
- Symbol.cs
- ButtonChrome.cs
- ToolStripItemClickedEventArgs.cs
- HttpRuntimeSection.cs
- HandlerBase.cs
- NotImplementedException.cs
- ErrorStyle.cs
- WindowsListBox.cs
- HttpListenerContext.cs
- DataKeyArray.cs
- EmptyReadOnlyDictionaryInternal.cs
- WebPartConnectionsCancelEventArgs.cs
- CodeArrayIndexerExpression.cs
- __TransparentProxy.cs
- GridProviderWrapper.cs
- ExceptionUtility.cs
- DiscoveryDocumentLinksPattern.cs
- X509InitiatorCertificateServiceElement.cs
- ByteAnimationBase.cs
- RecognizedAudio.cs
- DataGridViewImageCell.cs
- DecoderFallback.cs
- LocalizationParserHooks.cs
- DispatcherHookEventArgs.cs
- ObjectDataSourceView.cs
- FrameworkRichTextComposition.cs
- PrivilegeNotHeldException.cs
- ImplicitInputBrush.cs
- OrthographicCamera.cs
- IntPtr.cs
- EntityCodeGenerator.cs
- DecoderNLS.cs
- DataTransferEventArgs.cs
- CodePageEncoding.cs