Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EventMetadata.cs
- AssemblySettingAttributes.cs
- ControlParameter.cs
- DescendantOverDescendantQuery.cs
- OutputScopeManager.cs
- InteropEnvironment.cs
- TreeNodeStyle.cs
- NodeInfo.cs
- XPathBinder.cs
- HttpInputStream.cs
- RsaSecurityTokenAuthenticator.cs
- SqlEnums.cs
- PolicyStatement.cs
- Vector3DConverter.cs
- StrokeFIndices.cs
- NegationPusher.cs
- AuthenticationConfig.cs
- ComboBoxAutomationPeer.cs
- ToggleProviderWrapper.cs
- QilList.cs
- FormViewRow.cs
- IApplicationTrustManager.cs
- RegistryKey.cs
- Point3DConverter.cs
- configsystem.cs
- ListContractAdapter.cs
- InstanceDataCollectionCollection.cs
- LingerOption.cs
- D3DImage.cs
- AffineTransform3D.cs
- SimpleHandlerBuildProvider.cs
- EntityContainerAssociationSet.cs
- TerminatorSinks.cs
- HostingEnvironment.cs
- PeerNearMe.cs
- QilParameter.cs
- SchemaMerger.cs
- GuidConverter.cs
- XPathNavigatorKeyComparer.cs
- TextContainerChangeEventArgs.cs
- MouseGesture.cs
- ComponentCommands.cs
- _RequestCacheProtocol.cs
- XDeferredAxisSource.cs
- CodeMemberEvent.cs
- CommandValueSerializer.cs
- List.cs
- ASCIIEncoding.cs
- PagedDataSource.cs
- PowerStatus.cs
- SmtpClient.cs
- OneOfScalarConst.cs
- RecordBuilder.cs
- RenderingEventArgs.cs
- StateWorkerRequest.cs
- ComPlusServiceHost.cs
- ClientEventManager.cs
- base64Transforms.cs
- UniformGrid.cs
- CodeChecksumPragma.cs
- SafeFileHandle.cs
- WindowCollection.cs
- XPathItem.cs
- MiniParameterInfo.cs
- DurableErrorHandler.cs
- VectorValueSerializer.cs
- FlagsAttribute.cs
- HttpStreams.cs
- ExceptionHandler.cs
- SessionMode.cs
- SystemUnicastIPAddressInformation.cs
- WebPartMenu.cs
- SingleObjectCollection.cs
- VirtualPathProvider.cs
- DbProviderFactories.cs
- PropertyGridView.cs
- XmlNullResolver.cs
- SectionXmlInfo.cs
- CTreeGenerator.cs
- CodeMemberEvent.cs
- XmlNullResolver.cs
- InputLanguageManager.cs
- OracleConnectionStringBuilder.cs
- DataServiceQueryContinuation.cs
- CodeTypeDeclaration.cs
- XsdBuilder.cs
- Odbc32.cs
- DataGridCellsPresenter.cs
- KeySplineConverter.cs
- PersonalizationProvider.cs
- Assembly.cs
- MemberProjectedSlot.cs
- TextBoxLine.cs
- TextSimpleMarkerProperties.cs
- ConfigXmlElement.cs
- DotExpr.cs
- RegexRunnerFactory.cs
- HandlerWithFactory.cs
- ColumnMapVisitor.cs
- InvalidTimeZoneException.cs