Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / wpf / src / Core / CSharp / System / Windows / Media / BezierSegment.cs / 1 / BezierSegment.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2001 // // File: BezierSegment.cs //----------------------------------------------------------------------------- using System; using MS.Internal; using MS.Internal.PresentationCore; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using System.Collections; using System.Text; using System.Globalization; using System.Windows.Media; using System.Windows; using System.Text.RegularExpressions; using System.Windows.Media.Composition; using System.Windows.Media.Animation; using System.Diagnostics; using System.Security; using System.Security.Permissions; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Media { ////// BezierSegment /// public sealed partial class BezierSegment : PathSegment { #region Constructors ////// /// public BezierSegment() : base() { } ////// /// public BezierSegment(Point point1, Point point2, Point point3, bool isStroked) { Point1 = point1; Point2 = point2; Point3 = point3; IsStroked = isStroked; } // Internal constructor supporting smooth joins between segments internal BezierSegment(Point point1, Point point2, Point point3, bool isStroked, bool isSmoothJoin) { Point1 = point1; Point2 = point2; Point3 = point3; IsStroked = isStroked; IsSmoothJoin = isSmoothJoin; } #endregion #region AddToFigure internal override void AddToFigure( Matrix matrix, // The transformation matrid PathFigure figure, // The figure to add to ref Point current) // Out: Segment endpoint, not transformed { current = Point3; if (matrix.IsIdentity) { figure.Segments.Add(this); } else { Point pt1 = Point1; pt1 *= matrix; Point pt2 = Point2; pt2 *= matrix; Point pt3 = current; pt3 *= matrix; figure.Segments.Add(new BezierSegment(pt1, pt2, pt3, IsStroked, IsSmoothJoin)); } } #endregion #region Resource ////// SerializeData - Serialize the contents of this Segment to the provided context. /// internal override void SerializeData(StreamGeometryContext ctx) { ctx.BezierTo(Point1, Point2, Point3, IsStroked, IsSmoothJoin); } internal override bool IsCurved() { return true; } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// internal override string ConvertToString(string format, IFormatProvider provider) { // Helper to get the numeric list separator for a given culture. char separator = MS.Internal.TokenizerHelper.GetNumericListSeparator(provider); return String.Format(provider, "C{1:" + format + "}{0}{2:" + format + "}{0}{3:" + format + "}", separator, Point1, Point2, Point3 ); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2001 // // File: BezierSegment.cs //----------------------------------------------------------------------------- using System; using MS.Internal; using MS.Internal.PresentationCore; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using System.Collections; using System.Text; using System.Globalization; using System.Windows.Media; using System.Windows; using System.Text.RegularExpressions; using System.Windows.Media.Composition; using System.Windows.Media.Animation; using System.Diagnostics; using System.Security; using System.Security.Permissions; using SR=MS.Internal.PresentationCore.SR; using SRID=MS.Internal.PresentationCore.SRID; namespace System.Windows.Media { ////// BezierSegment /// public sealed partial class BezierSegment : PathSegment { #region Constructors ////// /// public BezierSegment() : base() { } ////// /// public BezierSegment(Point point1, Point point2, Point point3, bool isStroked) { Point1 = point1; Point2 = point2; Point3 = point3; IsStroked = isStroked; } // Internal constructor supporting smooth joins between segments internal BezierSegment(Point point1, Point point2, Point point3, bool isStroked, bool isSmoothJoin) { Point1 = point1; Point2 = point2; Point3 = point3; IsStroked = isStroked; IsSmoothJoin = isSmoothJoin; } #endregion #region AddToFigure internal override void AddToFigure( Matrix matrix, // The transformation matrid PathFigure figure, // The figure to add to ref Point current) // Out: Segment endpoint, not transformed { current = Point3; if (matrix.IsIdentity) { figure.Segments.Add(this); } else { Point pt1 = Point1; pt1 *= matrix; Point pt2 = Point2; pt2 *= matrix; Point pt3 = current; pt3 *= matrix; figure.Segments.Add(new BezierSegment(pt1, pt2, pt3, IsStroked, IsSmoothJoin)); } } #endregion #region Resource ////// SerializeData - Serialize the contents of this Segment to the provided context. /// internal override void SerializeData(StreamGeometryContext ctx) { ctx.BezierTo(Point1, Point2, Point3, IsStroked, IsSmoothJoin); } internal override bool IsCurved() { return true; } ////// Creates a string representation of this object based on the format string /// and IFormatProvider passed in. /// If the provider is null, the CurrentCulture is used. /// See the documentation for IFormattable for more information. /// ////// A string representation of this object. /// internal override string ConvertToString(string format, IFormatProvider provider) { // Helper to get the numeric list separator for a given culture. char separator = MS.Internal.TokenizerHelper.GetNumericListSeparator(provider); return String.Format(provider, "C{1:" + format + "}{0}{2:" + format + "}{0}{3:" + format + "}", separator, Point1, Point2, Point3 ); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- EventBookmark.cs
- DocumentPageView.cs
- FlagsAttribute.cs
- WebProxyScriptElement.cs
- DiscriminatorMap.cs
- TagMapCollection.cs
- TemplateColumn.cs
- Regex.cs
- ThousandthOfEmRealDoubles.cs
- MergeFailedEvent.cs
- UpdatePanelControlTrigger.cs
- VirtualPathUtility.cs
- RetrieveVirtualItemEventArgs.cs
- sortedlist.cs
- TextTreeUndoUnit.cs
- RegexTree.cs
- BooleanAnimationBase.cs
- DragDropHelper.cs
- SyntaxCheck.cs
- CodeRegionDirective.cs
- PeerObject.cs
- FrameDimension.cs
- PointLightBase.cs
- StylusDevice.cs
- ComboBox.cs
- TypeHelpers.cs
- EdmProviderManifest.cs
- TrackingMemoryStreamFactory.cs
- ZipIOExtraFieldElement.cs
- SimpleModelProvider.cs
- HuffModule.cs
- TileBrush.cs
- NamespaceQuery.cs
- HttpCookie.cs
- EdmTypeAttribute.cs
- ImageSourceConverter.cs
- TextEditorSpelling.cs
- SerialReceived.cs
- Cell.cs
- RuleSet.cs
- XmlSchemaSimpleContent.cs
- FormClosingEvent.cs
- StorageAssociationTypeMapping.cs
- ColumnMapProcessor.cs
- TemplateControl.cs
- OdbcFactory.cs
- DataList.cs
- MarginsConverter.cs
- ButtonPopupAdapter.cs
- TcpProcessProtocolHandler.cs
- Parser.cs
- BaseEntityWrapper.cs
- WebDescriptionAttribute.cs
- ObservableCollection.cs
- DbUpdateCommandTree.cs
- AbsoluteQuery.cs
- CachedFontFamily.cs
- Ref.cs
- DataReceivedEventArgs.cs
- RSACryptoServiceProvider.cs
- DesignerSelectionListAdapter.cs
- ADRoleFactoryConfiguration.cs
- XPathBuilder.cs
- ResourcePermissionBaseEntry.cs
- PermissionSetTriple.cs
- BrowserDefinition.cs
- Object.cs
- Brush.cs
- Matrix3D.cs
- ConfigurationManager.cs
- GenericRootAutomationPeer.cs
- CombinedGeometry.cs
- SecurityState.cs
- ClientCredentialsSecurityTokenManager.cs
- ReturnType.cs
- DetailsViewInsertedEventArgs.cs
- BinHexDecoder.cs
- Operand.cs
- Style.cs
- RequestQueryParser.cs
- Scene3D.cs
- QueryCacheEntry.cs
- DomainUpDown.cs
- FileDetails.cs
- SafeNativeMethodsCLR.cs
- DataGridHeadersVisibilityToVisibilityConverter.cs
- ModelFactory.cs
- PageRequestManager.cs
- ImageCodecInfoPrivate.cs
- Ipv6Element.cs
- ReadWriteObjectLock.cs
- ReaderWriterLock.cs
- DataRowChangeEvent.cs
- MD5.cs
- RSAPKCS1KeyExchangeDeformatter.cs
- Choices.cs
- TrustLevelCollection.cs
- DBNull.cs
- ReadOnlyHierarchicalDataSource.cs
- DifferencingCollection.cs