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(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
- MenuTracker.cs
- SerializationInfoEnumerator.cs
- FunctionImportElement.cs
- TagMapInfo.cs
- ProxyGenerator.cs
- EndPoint.cs
- AmbientLight.cs
- ToolStripDesignerUtils.cs
- Assembly.cs
- XmlExpressionDumper.cs
- SmiContext.cs
- RowToFieldTransformer.cs
- DataSourceBooleanViewSchemaConverter.cs
- InputGestureCollection.cs
- RuntimeArgumentHandle.cs
- ValidatorCompatibilityHelper.cs
- WebPartDisplayModeCancelEventArgs.cs
- ProfilePropertyNameValidator.cs
- coordinator.cs
- CookieProtection.cs
- CacheEntry.cs
- TransformCollection.cs
- FileDialogPermission.cs
- Trustee.cs
- PageMediaSize.cs
- Queue.cs
- WebPartExportVerb.cs
- DataGridViewRowHeightInfoPushedEventArgs.cs
- PrintPreviewControl.cs
- WebPartHeaderCloseVerb.cs
- StrokeNodeOperations.cs
- ListItemParagraph.cs
- Debug.cs
- XmlValidatingReaderImpl.cs
- WebPartExportVerb.cs
- ScriptReferenceBase.cs
- ClientProxyGenerator.cs
- StreamWriter.cs
- Shape.cs
- DiagnosticsConfiguration.cs
- FormViewUpdatedEventArgs.cs
- HWStack.cs
- TableLayoutSettingsTypeConverter.cs
- IFlowDocumentViewer.cs
- JsonCollectionDataContract.cs
- DataGridViewCellConverter.cs
- WmlLinkAdapter.cs
- DataRecordInternal.cs
- ObjectItemAssemblyLoader.cs
- XpsSerializationManagerAsync.cs
- UTF7Encoding.cs
- PointCollectionConverter.cs
- WsdlInspector.cs
- TimeSpanStorage.cs
- GenericNameHandler.cs
- AssemblyResourceLoader.cs
- ReferentialConstraint.cs
- LOSFormatter.cs
- ImmComposition.cs
- Soap.cs
- versioninfo.cs
- messageonlyhwndwrapper.cs
- RoleManagerSection.cs
- ErrorActivity.cs
- ToolStripSystemRenderer.cs
- PackagePartCollection.cs
- SafeCertificateStore.cs
- XmlExtensionFunction.cs
- NumericUpDownAccelerationCollection.cs
- sqlpipe.cs
- ChtmlTextBoxAdapter.cs
- DirtyTextRange.cs
- Environment.cs
- Terminate.cs
- GridViewUpdatedEventArgs.cs
- HtmlControl.cs
- SchemaObjectWriter.cs
- PieceDirectory.cs
- MessageQueuePermissionEntryCollection.cs
- TcpStreams.cs
- StrokeCollection2.cs
- Container.cs
- DataControlImageButton.cs
- MulticastNotSupportedException.cs
- BuildProvider.cs
- Convert.cs
- XmlDictionaryWriter.cs
- PathSegmentCollection.cs
- Lease.cs
- TransformedBitmap.cs
- DbProviderFactoriesConfigurationHandler.cs
- ToolStripOverflow.cs
- StyleHelper.cs
- GeometryModel3D.cs
- AppSettingsReader.cs
- LOSFormatter.cs
- RoleManagerModule.cs
- XPathNodePointer.cs
- XsdBuildProvider.cs
- TextParagraphProperties.cs