Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / MS / Internal / Ink / Quad.cs / 1305600 / 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
- RowSpanVector.cs
- DetailsViewInsertedEventArgs.cs
- WebPartMovingEventArgs.cs
- SafeReversePInvokeHandle.cs
- RelationshipConverter.cs
- Terminate.cs
- XmlWrappingWriter.cs
- ShaperBuffers.cs
- precedingquery.cs
- MasterPage.cs
- Vars.cs
- SerialReceived.cs
- TableColumnCollectionInternal.cs
- ContainerParaClient.cs
- XmlAnyElementAttributes.cs
- ClipboardProcessor.cs
- QuaternionAnimation.cs
- Stack.cs
- SiteMapDataSourceView.cs
- PassportAuthentication.cs
- SoapAttributeOverrides.cs
- TextPattern.cs
- VectorKeyFrameCollection.cs
- ObjectDataSourceStatusEventArgs.cs
- XPathDocument.cs
- XamlReaderHelper.cs
- SqlDuplicator.cs
- CheckBoxField.cs
- HttpProcessUtility.cs
- FieldNameLookup.cs
- SerializationException.cs
- HttpCachePolicy.cs
- DnsElement.cs
- TemplateGroupCollection.cs
- StandardTransformFactory.cs
- COSERVERINFO.cs
- Panel.cs
- GridViewRow.cs
- PolicyStatement.cs
- SessionPageStateSection.cs
- AnonymousIdentificationModule.cs
- DataGridViewRowCollection.cs
- TokenCreationParameter.cs
- VariantWrapper.cs
- BindingCollection.cs
- EventPropertyMap.cs
- EUCJPEncoding.cs
- LinqDataSourceValidationException.cs
- DoubleKeyFrameCollection.cs
- CompiledELinqQueryState.cs
- LineMetrics.cs
- MediaCommands.cs
- PrintController.cs
- Scheduler.cs
- CheckedPointers.cs
- CommandManager.cs
- ProviderCommandInfoUtils.cs
- StylusEventArgs.cs
- VoiceSynthesis.cs
- MultiPageTextView.cs
- _ContextAwareResult.cs
- RegexMatch.cs
- ResXResourceReader.cs
- DataControlFieldCell.cs
- DriveNotFoundException.cs
- MobileCategoryAttribute.cs
- DefaultValueAttribute.cs
- EventHandlerList.cs
- ExpressionBuilder.cs
- SspiSecurityTokenParameters.cs
- WebPartDescription.cs
- RepeaterCommandEventArgs.cs
- WebChannelFactory.cs
- ExceptionUtil.cs
- BehaviorEditorPart.cs
- XmlIlTypeHelper.cs
- TextContainerChangedEventArgs.cs
- cookiecontainer.cs
- AspNetCacheProfileAttribute.cs
- SHA384Managed.cs
- SecurityResources.cs
- SiteMapNodeItemEventArgs.cs
- CLRBindingWorker.cs
- PatternMatcher.cs
- Subtree.cs
- MailAddress.cs
- MailWriter.cs
- BaseDataListPage.cs
- JavaScriptSerializer.cs
- EncryptedKey.cs
- ChameleonKey.cs
- DetailsViewModeEventArgs.cs
- InputMethodStateTypeInfo.cs
- CustomAttributeBuilder.cs
- UpdateManifestForBrowserApplication.cs
- HtmlInputCheckBox.cs
- FormsAuthenticationConfiguration.cs
- Expander.cs
- EdmPropertyAttribute.cs
- ScrollPatternIdentifiers.cs