Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- BitmapData.cs
- AnnotationHelper.cs
- FormsAuthentication.cs
- ProxyGenerationError.cs
- MediaScriptCommandRoutedEventArgs.cs
- ClassDataContract.cs
- SystemResources.cs
- Point3DAnimationUsingKeyFrames.cs
- TdsParserHelperClasses.cs
- Inline.cs
- BrowserInteropHelper.cs
- MouseButton.cs
- StaticTextPointer.cs
- WebServicesSection.cs
- CodeMethodReturnStatement.cs
- QilSortKey.cs
- ServiceInfoCollection.cs
- DataFormats.cs
- DocumentViewer.cs
- FamilyTypefaceCollection.cs
- GroupBox.cs
- CustomErrorsSection.cs
- ConfigUtil.cs
- PathSegment.cs
- SystemException.cs
- RuntimeConfigLKG.cs
- GroupItemAutomationPeer.cs
- OdbcInfoMessageEvent.cs
- ViewStateModeByIdAttribute.cs
- clipboard.cs
- XmlMembersMapping.cs
- PermissionSetEnumerator.cs
- Quaternion.cs
- Invariant.cs
- DocumentScope.cs
- StackSpiller.Bindings.cs
- SignedPkcs7.cs
- CreateUserErrorEventArgs.cs
- RequestResizeEvent.cs
- ValueQuery.cs
- NumberSubstitution.cs
- WrappedOptions.cs
- CodeDelegateInvokeExpression.cs
- WebSysDefaultValueAttribute.cs
- ClosureBinding.cs
- GridViewRow.cs
- BooleanFunctions.cs
- FragmentQueryKB.cs
- BooleanAnimationBase.cs
- RoleGroup.cs
- filewebrequest.cs
- IIS7WorkerRequest.cs
- CustomLineCap.cs
- WebPartConnectionsDisconnectVerb.cs
- HtmlControlPersistable.cs
- CodeMemberField.cs
- HttpProfileBase.cs
- ScrollPatternIdentifiers.cs
- LayoutTableCell.cs
- GrammarBuilderDictation.cs
- XmlSchemaObjectCollection.cs
- SqlRowUpdatedEvent.cs
- SubstitutionList.cs
- StringInfo.cs
- IteratorDescriptor.cs
- StrokeFIndices.cs
- ShaderEffect.cs
- TypeReference.cs
- InvalidCastException.cs
- AssemblyBuilder.cs
- XNameConverter.cs
- PolyQuadraticBezierSegment.cs
- ListBox.cs
- While.cs
- HttpClientChannel.cs
- FormViewAutoFormat.cs
- NotifyCollectionChangedEventArgs.cs
- DeploymentSection.cs
- DataGridColumnCollection.cs
- MediaContext.cs
- TabControlToolboxItem.cs
- RoutedEvent.cs
- EntryPointNotFoundException.cs
- MoveSizeWinEventHandler.cs
- StringReader.cs
- Msec.cs
- PixelShader.cs
- ClientRolePrincipal.cs
- DecoderReplacementFallback.cs
- KnownBoxes.cs
- HttpModuleAction.cs
- IOException.cs
- Accessible.cs
- AtomParser.cs
- CaseInsensitiveOrdinalStringComparer.cs
- CharacterBuffer.cs
- OleDbInfoMessageEvent.cs
- ReplyChannel.cs
- TabRenderer.cs
- RegularExpressionValidator.cs