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
- XmlIlVisitor.cs
- RankException.cs
- IriParsingElement.cs
- TreeNodeStyleCollectionEditor.cs
- Vector3D.cs
- SimpleLine.cs
- RoutedPropertyChangedEventArgs.cs
- BooleanToVisibilityConverter.cs
- VisualTarget.cs
- EndpointAddressMessageFilter.cs
- PropertyMapper.cs
- OleCmdHelper.cs
- PatternMatcher.cs
- ExtendedPropertyDescriptor.cs
- Point3DIndependentAnimationStorage.cs
- HtmlTitle.cs
- SortExpressionBuilder.cs
- CounterSetInstanceCounterDataSet.cs
- HttpFileCollection.cs
- DPTypeDescriptorContext.cs
- LogicalTreeHelper.cs
- Int64Animation.cs
- QilUnary.cs
- ProgressBar.cs
- TimeZone.cs
- ProcessHost.cs
- TextEndOfLine.cs
- OpenTypeLayout.cs
- TextBoxDesigner.cs
- CacheMemory.cs
- QueueProcessor.cs
- XPathMessageFilterElementCollection.cs
- MimeMultiPart.cs
- LinqToSqlWrapper.cs
- BinHexDecoder.cs
- LayoutUtils.cs
- Transform3D.cs
- UserControl.cs
- Geometry.cs
- XamlStream.cs
- ShapeTypeface.cs
- TransformDescriptor.cs
- EntityException.cs
- DATA_BLOB.cs
- TaiwanCalendar.cs
- sqlinternaltransaction.cs
- IdentifierCreationService.cs
- QuaternionKeyFrameCollection.cs
- SimpleFileLog.cs
- InputBindingCollection.cs
- RowUpdatedEventArgs.cs
- FilterRepeater.cs
- Pair.cs
- MetadataItemCollectionFactory.cs
- Drawing.cs
- InvalidOperationException.cs
- DirectoryInfo.cs
- WindowHelperService.cs
- ActivationArguments.cs
- FormatterServices.cs
- Freezable.cs
- validationstate.cs
- CodeDomConfigurationHandler.cs
- SafeWaitHandle.cs
- DispatcherObject.cs
- ConstraintStruct.cs
- HMACMD5.cs
- ActiveXSite.cs
- DataRelation.cs
- SqlConnectionString.cs
- SynchronizedInputPattern.cs
- TCPClient.cs
- BinaryNode.cs
- RC2CryptoServiceProvider.cs
- Exceptions.cs
- AutomationIdentifierGuids.cs
- AutomationPeer.cs
- CursorInteropHelper.cs
- clipboard.cs
- FontSource.cs
- CompilerGlobalScopeAttribute.cs
- Parallel.cs
- AutomationElementCollection.cs
- CodeSnippetExpression.cs
- XamlSerializerUtil.cs
- DataGridViewComboBoxColumnDesigner.cs
- util.cs
- Rect3D.cs
- SplitterPanel.cs
- CommandTreeTypeHelper.cs
- SqlTypeConverter.cs
- AttributeCollection.cs
- PassportAuthenticationModule.cs
- NavigatorOutput.cs
- AppPool.cs
- ApplicationFileCodeDomTreeGenerator.cs
- ControlUtil.cs
- DiagnosticTrace.cs
- CustomPopupPlacement.cs
- UnsafeNativeMethods.cs