Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CompositionTarget.cs
- StringFreezingAttribute.cs
- TreeViewDesigner.cs
- DataListItem.cs
- ButtonBase.cs
- arabicshape.cs
- MoveSizeWinEventHandler.cs
- Convert.cs
- SafeThreadHandle.cs
- ListControlDataBindingHandler.cs
- FileRecordSequenceHelper.cs
- PixelShader.cs
- HttpDebugHandler.cs
- LostFocusEventManager.cs
- RecognizedWordUnit.cs
- IgnoreFileBuildProvider.cs
- DragDropHelper.cs
- ScriptHandlerFactory.cs
- ErrorRuntimeConfig.cs
- PriorityQueue.cs
- Aggregates.cs
- ResizeGrip.cs
- TextEditor.cs
- RootBrowserWindowAutomationPeer.cs
- StickyNoteContentControl.cs
- ExceptionUtility.cs
- ComEventsInfo.cs
- WindowsEditBoxRange.cs
- DefaultBindingPropertyAttribute.cs
- WebConfigurationHostFileChange.cs
- HandlerElement.cs
- NullReferenceException.cs
- TextBreakpoint.cs
- _IPv6Address.cs
- ByteStack.cs
- EdmValidator.cs
- CustomCategoryAttribute.cs
- RootDesignerSerializerAttribute.cs
- FormClosingEvent.cs
- ImageResources.Designer.cs
- ProxyWebPartManager.cs
- PasswordRecovery.cs
- EditorZoneBase.cs
- _LocalDataStoreMgr.cs
- CqlWriter.cs
- UInt64.cs
- ReadOnlyCollectionBuilder.cs
- HttpCookie.cs
- HostUtils.cs
- MemoryMappedFile.cs
- CodeChecksumPragma.cs
- HttpPostServerProtocol.cs
- DrawingContextWalker.cs
- LoadedOrUnloadedOperation.cs
- HandlerBase.cs
- XmlStreamNodeWriter.cs
- TrackingMemoryStream.cs
- DataBoundControlAdapter.cs
- SqlDataSourceConfigureSortForm.cs
- WebPartCatalogCloseVerb.cs
- CatalogPartCollection.cs
- HtmlControlPersistable.cs
- SpotLight.cs
- DataRowComparer.cs
- ProxyHwnd.cs
- RuleSettings.cs
- GridViewColumn.cs
- ControlCollection.cs
- PrinterResolution.cs
- hresults.cs
- Size3D.cs
- CodeGenHelper.cs
- AsyncPostBackTrigger.cs
- WebPartEditorCancelVerb.cs
- CategoryEditor.cs
- MemberDomainMap.cs
- SessionStateContainer.cs
- NodeInfo.cs
- FactoryGenerator.cs
- DataGridViewRowsRemovedEventArgs.cs
- ConfigurationCollectionAttribute.cs
- StyleXamlParser.cs
- StringPropertyBuilder.cs
- PrimitiveXmlSerializers.cs
- Object.cs
- LassoSelectionBehavior.cs
- Int32AnimationBase.cs
- SpellerHighlightLayer.cs
- UnsafeNativeMethods.cs
- XmlException.cs
- TransformerInfo.cs
- Matrix3DConverter.cs
- InputElement.cs
- InternalMappingException.cs
- DocumentPageTextView.cs
- TextMarkerSource.cs
- FormsAuthenticationModule.cs
- SafeWaitHandle.cs
- XamlTypeMapperSchemaContext.cs
- FormatVersion.cs