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
- InvalidProgramException.cs
- StreamHelper.cs
- ZipIOExtraFieldElement.cs
- BitmapFrame.cs
- ComponentConverter.cs
- DLinqDataModelProvider.cs
- WindowsPrincipal.cs
- ActivityTypeResolver.xaml.cs
- MsmqProcessProtocolHandler.cs
- XmlSchemaGroup.cs
- CustomValidator.cs
- FolderLevelBuildProviderCollection.cs
- TransformationRules.cs
- StringFreezingAttribute.cs
- WebScriptEnablingBehavior.cs
- xmlglyphRunInfo.cs
- PropertyChange.cs
- TextContainerChangedEventArgs.cs
- DeclaredTypeValidator.cs
- NetPipeSection.cs
- _HeaderInfo.cs
- SharedHttpTransportManager.cs
- HttpWriter.cs
- DrawingGroup.cs
- DataGridViewRowEventArgs.cs
- WebPartAuthorizationEventArgs.cs
- AlgoModule.cs
- VectorCollectionValueSerializer.cs
- Script.cs
- thaishape.cs
- LinkedList.cs
- OutputCacheProfile.cs
- PropertyMappingExceptionEventArgs.cs
- SqlConnectionStringBuilder.cs
- TimeIntervalCollection.cs
- EntitySetBaseCollection.cs
- SharedStatics.cs
- SqlErrorCollection.cs
- IdSpace.cs
- ReceiveMessageRecord.cs
- SamlConstants.cs
- MaterialGroup.cs
- List.cs
- WebEncodingValidatorAttribute.cs
- SafeHandles.cs
- cache.cs
- TextEditorCopyPaste.cs
- WorkflowQueuingService.cs
- TraceContextEventArgs.cs
- FrugalList.cs
- GroupBoxDesigner.cs
- DurableOperationContext.cs
- HotCommands.cs
- ControlBuilder.cs
- ColumnMap.cs
- MenuBase.cs
- WebScriptEndpointElement.cs
- CorrelationValidator.cs
- RemotingSurrogateSelector.cs
- UInt16Converter.cs
- NameTable.cs
- XpsPackagingException.cs
- Parser.cs
- SuppressMergeCheckAttribute.cs
- DetailsViewInsertEventArgs.cs
- InkPresenterAutomationPeer.cs
- CloudCollection.cs
- CommandConverter.cs
- UnsignedPublishLicense.cs
- Fonts.cs
- RelatedPropertyManager.cs
- XmlSchemaSet.cs
- DeploymentSection.cs
- BindingCompleteEventArgs.cs
- DataGridViewDataConnection.cs
- WindowsSpinner.cs
- TreeNodeCollection.cs
- HostingEnvironmentException.cs
- LinearGradientBrush.cs
- coordinatorfactory.cs
- WebConfigurationManager.cs
- GenericNameHandler.cs
- WindowsToolbar.cs
- MatrixTransform3D.cs
- DeclarativeExpressionConditionDeclaration.cs
- ColorTypeConverter.cs
- InvalidFilterCriteriaException.cs
- CompareInfo.cs
- AuthenticationServiceManager.cs
- NameValueCollection.cs
- WebResourceUtil.cs
- TypeTypeConverter.cs
- HwndTarget.cs
- EntityClientCacheKey.cs
- TextEffectCollection.cs
- CalculatedColumn.cs
- DeflateEmulationStream.cs
- GroupBox.cs
- SymbolMethod.cs
- WrappedIUnknown.cs