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
- Pens.cs
- BuildProviderInstallComponent.cs
- WebResponse.cs
- FixUp.cs
- SQLConvert.cs
- VariableValue.cs
- DocumentGridContextMenu.cs
- ChainOfDependencies.cs
- X509CertificateTrustedIssuerElementCollection.cs
- QilStrConcatenator.cs
- EncryptedKeyIdentifierClause.cs
- TargetConverter.cs
- ListBoxItemWrapperAutomationPeer.cs
- CopyOfAction.cs
- DataSourceExpressionCollection.cs
- _Connection.cs
- ParserStreamGeometryContext.cs
- SendParametersContent.cs
- ListItemCollection.cs
- GenericRootAutomationPeer.cs
- SwitchAttribute.cs
- SmtpTransport.cs
- FormatConvertedBitmap.cs
- TypeInfo.cs
- CodeDomSerializer.cs
- ReflectionPermission.cs
- ProxyGenerationError.cs
- AppDomainAttributes.cs
- OledbConnectionStringbuilder.cs
- MapPathBasedVirtualPathProvider.cs
- AccessedThroughPropertyAttribute.cs
- LongCountAggregationOperator.cs
- ExpressionHelper.cs
- InlineCategoriesDocument.cs
- DataSourceControl.cs
- RTTrackingProfile.cs
- QuaternionAnimationUsingKeyFrames.cs
- HtmlInputSubmit.cs
- VisualBrush.cs
- ExtendedTransformFactory.cs
- XPathAncestorQuery.cs
- CheckBoxBaseAdapter.cs
- PrintingPermission.cs
- RuntimeCompatibilityAttribute.cs
- Geometry.cs
- EventSourceCreationData.cs
- TableItemStyle.cs
- CaseExpr.cs
- SqlGatherConsumedAliases.cs
- TypedRowGenerator.cs
- VariableQuery.cs
- CSharpCodeProvider.cs
- TemplateParser.cs
- SHA512Cng.cs
- RIPEMD160Managed.cs
- ExpandCollapsePattern.cs
- DataGridViewComboBoxEditingControl.cs
- ComplexLine.cs
- ClientSettingsProvider.cs
- AppDomainInfo.cs
- DelegateBodyWriter.cs
- LinkUtilities.cs
- PrintPreviewDialog.cs
- SqlSelectStatement.cs
- Size.cs
- FixedSOMPage.cs
- reliableinputsessionchannel.cs
- TextFormatterHost.cs
- ReadOnlyHierarchicalDataSourceView.cs
- CompiledQueryCacheEntry.cs
- LabelLiteral.cs
- CancellationTokenRegistration.cs
- ValidationResult.cs
- Sql8ConformanceChecker.cs
- EditCommandColumn.cs
- ListChangedEventArgs.cs
- EndpointAddress10.cs
- DockingAttribute.cs
- IdnElement.cs
- ByteAnimation.cs
- MissingFieldException.cs
- AsymmetricKeyExchangeFormatter.cs
- EventLogEntryCollection.cs
- ObservableDictionary.cs
- XmlArrayItemAttributes.cs
- GZipDecoder.cs
- ReadOnlyDictionary.cs
- ChannelServices.cs
- PrintPreviewDialog.cs
- DataTableClearEvent.cs
- MimeTypeMapper.cs
- SpeakCompletedEventArgs.cs
- TypedTableBase.cs
- GenericTextProperties.cs
- ControlParameter.cs
- XmlObjectSerializerContext.cs
- RunWorkerCompletedEventArgs.cs
- DocumentPageView.cs
- HostedElements.cs
- HttpHandlerActionCollection.cs