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
- ComponentEditorPage.cs
- HealthMonitoringSectionHelper.cs
- ArrayTypeMismatchException.cs
- VerificationAttribute.cs
- MultiDataTrigger.cs
- EdmComplexTypeAttribute.cs
- ObjectDataSourceMethodEventArgs.cs
- MethodSet.cs
- FixedDocumentPaginator.cs
- TrustLevel.cs
- HttpsHostedTransportConfiguration.cs
- TextEffectResolver.cs
- SoapInteropTypes.cs
- _KerberosClient.cs
- BuildProvider.cs
- Stack.cs
- TextSearch.cs
- StylusPointProperty.cs
- StringCollection.cs
- MaterialGroup.cs
- StreamResourceInfo.cs
- TablePatternIdentifiers.cs
- MailMessage.cs
- WebBrowserNavigatingEventHandler.cs
- ReadOnlyPropertyMetadata.cs
- PrintingPermission.cs
- precedingsibling.cs
- XPathException.cs
- CatalogZoneAutoFormat.cs
- TypeBrowserDialog.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- QueryUtil.cs
- JournalEntry.cs
- DeadCharTextComposition.cs
- ConfigurationValidatorAttribute.cs
- DesignTimeTemplateParser.cs
- SizeChangedInfo.cs
- CodeEntryPointMethod.cs
- TraceShell.cs
- PathFigureCollectionValueSerializer.cs
- CustomAttributeFormatException.cs
- FormattedText.cs
- ColorTranslator.cs
- DropDownList.cs
- QuaternionIndependentAnimationStorage.cs
- XmlArrayItemAttribute.cs
- EntityContainer.cs
- WindowsScrollBar.cs
- _NTAuthentication.cs
- GridViewEditEventArgs.cs
- EtwTrace.cs
- ProgressChangedEventArgs.cs
- LineSegment.cs
- UnconditionalPolicy.cs
- TagPrefixCollection.cs
- SpotLight.cs
- Html32TextWriter.cs
- HwndSubclass.cs
- LinkButton.cs
- BitStack.cs
- NativeMethods.cs
- WindowsListViewGroupSubsetLink.cs
- ByteRangeDownloader.cs
- ConfigurationValidatorBase.cs
- ArgIterator.cs
- MachineKeySection.cs
- PrintDocument.cs
- HealthMonitoringSection.cs
- CanExecuteRoutedEventArgs.cs
- DataAdapter.cs
- AppendHelper.cs
- PrivilegedConfigurationManager.cs
- MouseButtonEventArgs.cs
- TaskFormBase.cs
- ComboBox.cs
- DataGridViewRowPrePaintEventArgs.cs
- WorkflowApplicationCompletedException.cs
- RtfToXamlLexer.cs
- ApplyHostConfigurationBehavior.cs
- ChineseLunisolarCalendar.cs
- UInt16.cs
- RegexRunnerFactory.cs
- OLEDB_Util.cs
- HtmlInputCheckBox.cs
- RegexTypeEditor.cs
- EntityDesignerUtils.cs
- storepermissionattribute.cs
- DeclarativeCatalogPart.cs
- HandleScope.cs
- SqlXml.cs
- VirtualPathUtility.cs
- WpfPayload.cs
- DataGridViewCellParsingEventArgs.cs
- SizeLimitedCache.cs
- MD5.cs
- XmlSchemaNotation.cs
- ComplexBindingPropertiesAttribute.cs
- EventData.cs
- EncodingTable.cs
- TypographyProperties.cs