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
- DataObject.cs
- AdornerDecorator.cs
- DbConnectionStringBuilder.cs
- ProviderConnectionPoint.cs
- BindingBase.cs
- ZipArchive.cs
- DefaultEvaluationContext.cs
- RolePrincipal.cs
- Rect3D.cs
- Timer.cs
- BaseResourcesBuildProvider.cs
- EventData.cs
- OleDbPermission.cs
- AsyncPostBackErrorEventArgs.cs
- LineSegment.cs
- SafeNativeMethods.cs
- TaskFormBase.cs
- WinEventTracker.cs
- EncodedStreamFactory.cs
- ResourcesGenerator.cs
- Error.cs
- WinEventTracker.cs
- AtomServiceDocumentSerializer.cs
- FrameworkEventSource.cs
- JobPageOrder.cs
- DateTimeConstantAttribute.cs
- XmlSchemaSequence.cs
- DropSource.cs
- UnknownBitmapDecoder.cs
- SQLConvert.cs
- ElementFactory.cs
- ApplicationCommands.cs
- DataGridViewTextBoxColumn.cs
- XmlSchemaSimpleType.cs
- XamlSerializerUtil.cs
- TextPenaltyModule.cs
- DecimalAnimationUsingKeyFrames.cs
- GestureRecognitionResult.cs
- Deflater.cs
- MSAAWinEventWrap.cs
- PassportIdentity.cs
- TaskExtensions.cs
- ACL.cs
- CircleHotSpot.cs
- FieldNameLookup.cs
- SubMenuStyleCollection.cs
- ListViewTableRow.cs
- ItemsControl.cs
- SimpleWebHandlerParser.cs
- OutputCacheModule.cs
- CompareInfo.cs
- ConfigurationException.cs
- OleDbEnumerator.cs
- RealProxy.cs
- StateManagedCollection.cs
- SafeSystemMetrics.cs
- OdbcError.cs
- DataObjectPastingEventArgs.cs
- TextTreeUndo.cs
- AssemblyInfo.cs
- Parameter.cs
- EnvelopedPkcs7.cs
- GeometryHitTestParameters.cs
- OLEDB_Util.cs
- ToolStripPanelSelectionGlyph.cs
- FormParameter.cs
- CodeNamespace.cs
- ReferencedAssembly.cs
- QuaternionValueSerializer.cs
- CustomTypeDescriptor.cs
- DataGridTableCollection.cs
- TimeZoneInfo.cs
- RSAProtectedConfigurationProvider.cs
- XmlQueryContext.cs
- XmlSchemaSimpleTypeRestriction.cs
- FontNamesConverter.cs
- Point3DConverter.cs
- ReflectionPermission.cs
- BatchStream.cs
- CFGGrammar.cs
- DesignerSerializationOptionsAttribute.cs
- ColorConverter.cs
- XsltException.cs
- SafeCloseHandleCritical.cs
- FileSecurity.cs
- QueryOutputWriter.cs
- precedingsibling.cs
- Journaling.cs
- ReferencedCollectionType.cs
- StringTraceRecord.cs
- TableRow.cs
- Utils.cs
- SplitContainer.cs
- Drawing.cs
- DependencyObjectValidator.cs
- ReliabilityContractAttribute.cs
- GradientStopCollection.cs
- ClonableStack.cs
- Properties.cs
- SoapClientMessage.cs