Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / 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. //------------------------------------------------------------------------ //// 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
- BrushValueSerializer.cs
- AssemblyFilter.cs
- OdbcDataAdapter.cs
- FileUtil.cs
- TripleDESCryptoServiceProvider.cs
- SHA512Managed.cs
- ExceptionUtility.cs
- TypeUtils.cs
- ProgressBarRenderer.cs
- BindingMAnagerBase.cs
- DesignBindingPropertyDescriptor.cs
- ModelVisual3D.cs
- ZipIOCentralDirectoryFileHeader.cs
- DataControlFieldCell.cs
- DbConnectionPoolGroupProviderInfo.cs
- AdornerLayer.cs
- Type.cs
- CopyOfAction.cs
- EventSinkActivity.cs
- ButtonBaseAutomationPeer.cs
- ProfileManager.cs
- TextDecorationLocationValidation.cs
- RequestQueue.cs
- Span.cs
- StrokeCollection.cs
- ConfigurationPropertyCollection.cs
- WindowsUserNameCachingSecurityTokenAuthenticator.cs
- ChildDocumentBlock.cs
- ControlPropertyNameConverter.cs
- OutputCacheSettingsSection.cs
- ContextBase.cs
- RankException.cs
- HandleRef.cs
- StreamWithDictionary.cs
- Component.cs
- MappedMetaModel.cs
- FrameAutomationPeer.cs
- SymLanguageType.cs
- PolyBezierSegmentFigureLogic.cs
- TypeExtension.cs
- Properties.cs
- XsltConvert.cs
- TimeoutHelper.cs
- DataGridViewCellValueEventArgs.cs
- DynamicVirtualDiscoSearcher.cs
- EngineSiteSapi.cs
- arclist.cs
- FixUpCollection.cs
- PageBreakRecord.cs
- AcceptorSessionSymmetricTransportSecurityProtocol.cs
- QilXmlWriter.cs
- ModelUIElement3D.cs
- CqlParser.cs
- XsdBuildProvider.cs
- DefaultAssemblyResolver.cs
- StrokeCollection.cs
- ManifestResourceInfo.cs
- LayoutUtils.cs
- DiscoveryDocumentSerializer.cs
- OutputCacheModule.cs
- HyperLinkField.cs
- TextAutomationPeer.cs
- SqlDependencyListener.cs
- HttpFormatExtensions.cs
- SchemaImporterExtension.cs
- ReadOnlyPropertyMetadata.cs
- TableLayoutColumnStyleCollection.cs
- AnnotationHelper.cs
- XmlCodeExporter.cs
- QilInvokeLateBound.cs
- Transform.cs
- XmlEntity.cs
- DropShadowEffect.cs
- OletxVolatileEnlistment.cs
- DeobfuscatingStream.cs
- SerializationException.cs
- DataBoundControlHelper.cs
- QueueTransferProtocol.cs
- ShapeTypeface.cs
- TraceContextEventArgs.cs
- BuildManager.cs
- SqlIdentifier.cs
- WebPartManagerInternals.cs
- _NativeSSPI.cs
- Converter.cs
- SchemaImporterExtensionElementCollection.cs
- HttpFileCollection.cs
- Update.cs
- FontWeight.cs
- MeasureData.cs
- Matrix.cs
- HtmlInputCheckBox.cs
- ExpressionEvaluator.cs
- ToolbarAUtomationPeer.cs
- SqlExpander.cs
- PartialArray.cs
- SecurityUtils.cs
- FixedDocument.cs
- InProcStateClientManager.cs
- Missing.cs