Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- MetadataItemEmitter.cs
- SamlAssertion.cs
- IdentitySection.cs
- WebExceptionStatus.cs
- TreeNodeCollection.cs
- Grid.cs
- DataColumnCollection.cs
- ObjectDataSourceFilteringEventArgs.cs
- ReadWriteSpinLock.cs
- ExpressionVisitor.cs
- __ConsoleStream.cs
- OverflowException.cs
- ResourceReferenceKeyNotFoundException.cs
- TextureBrush.cs
- BufferedGraphicsContext.cs
- XmlSchemaProviderAttribute.cs
- AtomicFile.cs
- ZipIOModeEnforcingStream.cs
- DataSpaceManager.cs
- TemplateParser.cs
- WeakReferenceEnumerator.cs
- DataServiceQueryProvider.cs
- Wrapper.cs
- WindowsSysHeader.cs
- VScrollProperties.cs
- OptimalTextSource.cs
- TypedCompletedAsyncResult.cs
- DSACryptoServiceProvider.cs
- FontStyles.cs
- OneOfScalarConst.cs
- HandleRef.cs
- TrayIconDesigner.cs
- ResourceReader.cs
- ThousandthOfEmRealPoints.cs
- BreakSafeBase.cs
- CustomValidator.cs
- DesignerActionVerbList.cs
- XmlLanguage.cs
- SmuggledIUnknown.cs
- COM2ICategorizePropertiesHandler.cs
- TrackBar.cs
- FlowLayoutPanel.cs
- MDIClient.cs
- InternalBase.cs
- EdmSchemaError.cs
- RegexCharClass.cs
- NativeCompoundFileAPIs.cs
- InvalidCastException.cs
- CompilerParameters.cs
- PathNode.cs
- PrimitiveCodeDomSerializer.cs
- AstTree.cs
- XmlSecureResolver.cs
- DSASignatureDeformatter.cs
- DisplayInformation.cs
- Rect.cs
- TableProvider.cs
- IImplicitResourceProvider.cs
- TagNameToTypeMapper.cs
- ReferenceSchema.cs
- PeerCollaborationPermission.cs
- OciHandle.cs
- ManipulationDevice.cs
- StaticTextPointer.cs
- TextSegment.cs
- GlobalizationSection.cs
- ScriptBehaviorDescriptor.cs
- ColumnWidthChangedEvent.cs
- ZipIOCentralDirectoryBlock.cs
- TextParagraphView.cs
- DataGridViewTopRowAccessibleObject.cs
- ErrorRuntimeConfig.cs
- XmlSchemaObjectCollection.cs
- TextTreeDeleteContentUndoUnit.cs
- Win32MouseDevice.cs
- ClientScriptManager.cs
- DetailsViewPagerRow.cs
- SettingsBindableAttribute.cs
- SafeCryptoHandles.cs
- WeakEventManager.cs
- Label.cs
- TableLayoutCellPaintEventArgs.cs
- RoleManagerModule.cs
- SrgsSemanticInterpretationTag.cs
- DbConnectionStringBuilder.cs
- PbrsForward.cs
- DescendantOverDescendantQuery.cs
- PointHitTestParameters.cs
- SecurityTokenAuthenticator.cs
- NetSectionGroup.cs
- PnrpPeerResolverBindingElement.cs
- GridItem.cs
- GridViewDeleteEventArgs.cs
- MinMaxParagraphWidth.cs
- BrowserCapabilitiesFactory.cs
- Property.cs
- PropertyPathConverter.cs
- TreeIterators.cs
- DetectEofStream.cs
- ScrollContentPresenter.cs