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
- HttpRuntime.cs
- StrokeNodeOperations2.cs
- FrameworkPropertyMetadata.cs
- DocumentXPathNavigator.cs
- EraserBehavior.cs
- CodeNamespace.cs
- XPathNodeIterator.cs
- SweepDirectionValidation.cs
- SpinLock.cs
- WindowsFormsDesignerOptionService.cs
- PageThemeParser.cs
- WebOperationContext.cs
- StringResourceManager.cs
- DynamicPropertyReader.cs
- ElementInit.cs
- ICspAsymmetricAlgorithm.cs
- DateTimeSerializationSection.cs
- StringConcat.cs
- MasterPageCodeDomTreeGenerator.cs
- MatrixCamera.cs
- NameObjectCollectionBase.cs
- Model3DGroup.cs
- DateTimeConverter2.cs
- XmlName.cs
- Activity.cs
- Vector3DCollectionValueSerializer.cs
- ScriptControl.cs
- LinkClickEvent.cs
- HtmlControl.cs
- DomainConstraint.cs
- InvokeMethodActivityDesigner.cs
- ChtmlTextWriter.cs
- ConfigurationManager.cs
- WorkerRequest.cs
- ReadContentAsBinaryHelper.cs
- DetailsViewPageEventArgs.cs
- DataGridViewDataErrorEventArgs.cs
- MD5CryptoServiceProvider.cs
- MessageQueuePermissionAttribute.cs
- HttpModuleActionCollection.cs
- FastEncoder.cs
- WebScriptEndpointElement.cs
- QueueAccessMode.cs
- UnsafeNativeMethods.cs
- ITreeGenerator.cs
- TrackBarRenderer.cs
- DefaultPrintController.cs
- XmlNamedNodeMap.cs
- TaskFileService.cs
- ZoneButton.cs
- SafeCoTaskMem.cs
- StorageInfo.cs
- CallId.cs
- MultilineStringConverter.cs
- ClientUtils.cs
- Vector3D.cs
- DesignerSerializerAttribute.cs
- ScriptingJsonSerializationSection.cs
- DateTimeValueSerializerContext.cs
- GlobalAllocSafeHandle.cs
- ValuePattern.cs
- AsyncStreamReader.cs
- StylusPointPropertyUnit.cs
- ToolStripContentPanel.cs
- TextElementEnumerator.cs
- RawAppCommandInputReport.cs
- TemplateControl.cs
- BatchParser.cs
- TypedDataSetSchemaImporterExtensionFx35.cs
- Label.cs
- PropertyEmitterBase.cs
- GridViewRowEventArgs.cs
- XmlChildEnumerator.cs
- WebPartConnectionsCloseVerb.cs
- TypedTableBaseExtensions.cs
- PriorityQueue.cs
- DocumentReferenceCollection.cs
- AsyncOperationContext.cs
- LinqDataSourceInsertEventArgs.cs
- CodeDomLoader.cs
- Invariant.cs
- EditorResources.cs
- WindowHideOrCloseTracker.cs
- PersistenceTypeAttribute.cs
- CoreSwitches.cs
- ObjectPersistData.cs
- MimeMapping.cs
- __ComObject.cs
- DataSourceCollectionBase.cs
- CachedFontFamily.cs
- PseudoWebRequest.cs
- TrackPointCollection.cs
- Condition.cs
- IPAddress.cs
- PathSegment.cs
- SplayTreeNode.cs
- DragStartedEventArgs.cs
- WebServiceParameterData.cs
- DefaultMemberAttribute.cs
- PhoneCall.cs