Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / GeneralTransformGroup.cs / 1 / GeneralTransformGroup.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2001 // // File: GeneralTransformGroup.cs //----------------------------------------------------------------------------- using System; using System.Windows; using System.Windows.Media; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using System.Collections; using System.Collections.Generic; using MS.Internal; using System.Windows.Media.Animation; using System.Globalization; using System.Text; using System.Runtime.InteropServices; using System.Windows.Markup; using System.Windows.Media.Composition; using System.Diagnostics; using MS.Internal.PresentationCore; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media { ////// GeneralTrasnform group /// [ContentProperty("Children")] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public sealed partial class GeneralTransformGroup : GeneralTransform { #region Constructors ////// Default Constructor /// public GeneralTransformGroup() { } #endregion ////// Transform a point /// /// input point /// output point ///True if the point is transformed successfully public override bool TryTransform(Point inPoint, out Point result) { result = inPoint; if ((Children == null) || (Children.Count == 0)) { return false; } Point inP = inPoint; bool fPointTransformed = true; // transform the point through each of the transforms for (int i = 0; i < Children.Count; i++) { if (Children.Internal_GetItem(i).TryTransform(inPoint, out result) == false) { fPointTransformed = false; } inPoint = result; } return fPointTransformed; } ////// Transforms the bounding box to the smallest axis aligned bounding box /// that contains all the points in the original bounding box /// /// Input bounding rect ///Transformed bounding rect public override Rect TransformBounds(Rect rect) { if ((Children == null) || (Children.Count == 0)) { return rect; } Rect result = rect; for (int i = 0; i < Children.Count; i++) { result = Children.Internal_GetItem(i).TransformBounds(result); } return result; } ////// Returns the inverse transform if it has an inverse, null otherwise /// public override GeneralTransform Inverse { get { ReadPreamble(); if ((Children == null) || (Children.Count == 0)) { return null; } GeneralTransformGroup group = new GeneralTransformGroup(); for (int i = Children.Count - 1; i >= 0; i--) { GeneralTransform g = Children.Internal_GetItem(i).Inverse; // if any of the transforms does not have an inverse, // then the entire group does not have one if (g == null) return null; group.Children.Add(g); } return group; } } ////// Returns a best effort affine transform /// internal override Transform AffineTransform { [FriendAccessAllowed] // Built into Core, also used by Framework. get { if ((Children == null) || (Children.Count == 0)) { return null; } Matrix matrix = Matrix.Identity; foreach (GeneralTransform gt in Children) { Transform t = gt.AffineTransform; if (t != null) { matrix *= t.Value; } } return new MatrixTransform(matrix); } } } } // 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: GeneralTransformGroup.cs //----------------------------------------------------------------------------- using System; using System.Windows; using System.Windows.Media; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using System.Collections; using System.Collections.Generic; using MS.Internal; using System.Windows.Media.Animation; using System.Globalization; using System.Text; using System.Runtime.InteropServices; using System.Windows.Markup; using System.Windows.Media.Composition; using System.Diagnostics; using MS.Internal.PresentationCore; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media { ////// GeneralTrasnform group /// [ContentProperty("Children")] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public sealed partial class GeneralTransformGroup : GeneralTransform { #region Constructors ////// Default Constructor /// public GeneralTransformGroup() { } #endregion ////// Transform a point /// /// input point /// output point ///True if the point is transformed successfully public override bool TryTransform(Point inPoint, out Point result) { result = inPoint; if ((Children == null) || (Children.Count == 0)) { return false; } Point inP = inPoint; bool fPointTransformed = true; // transform the point through each of the transforms for (int i = 0; i < Children.Count; i++) { if (Children.Internal_GetItem(i).TryTransform(inPoint, out result) == false) { fPointTransformed = false; } inPoint = result; } return fPointTransformed; } ////// Transforms the bounding box to the smallest axis aligned bounding box /// that contains all the points in the original bounding box /// /// Input bounding rect ///Transformed bounding rect public override Rect TransformBounds(Rect rect) { if ((Children == null) || (Children.Count == 0)) { return rect; } Rect result = rect; for (int i = 0; i < Children.Count; i++) { result = Children.Internal_GetItem(i).TransformBounds(result); } return result; } ////// Returns the inverse transform if it has an inverse, null otherwise /// public override GeneralTransform Inverse { get { ReadPreamble(); if ((Children == null) || (Children.Count == 0)) { return null; } GeneralTransformGroup group = new GeneralTransformGroup(); for (int i = Children.Count - 1; i >= 0; i--) { GeneralTransform g = Children.Internal_GetItem(i).Inverse; // if any of the transforms does not have an inverse, // then the entire group does not have one if (g == null) return null; group.Children.Add(g); } return group; } } ////// Returns a best effort affine transform /// internal override Transform AffineTransform { [FriendAccessAllowed] // Built into Core, also used by Framework. get { if ((Children == null) || (Children.Count == 0)) { return null; } Matrix matrix = Matrix.Identity; foreach (GeneralTransform gt in Children) { Transform t = gt.AffineTransform; if (t != null) { matrix *= t.Value; } } return new MatrixTransform(matrix); } } } } // 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
- EncryptedPackage.cs
- WebPartEventArgs.cs
- Compilation.cs
- ChannelPoolSettings.cs
- ProcessHostFactoryHelper.cs
- XsdDataContractExporter.cs
- SQLDouble.cs
- NameValueConfigurationCollection.cs
- FlowLayoutSettings.cs
- QueryIntervalOp.cs
- ReachDocumentSequenceSerializerAsync.cs
- WebPageTraceListener.cs
- ErrorEventArgs.cs
- ColorConverter.cs
- EventMetadata.cs
- SqlProviderServices.cs
- ScrollChrome.cs
- SqlCacheDependencyDatabaseCollection.cs
- FormsAuthenticationModule.cs
- DefaultMemberAttribute.cs
- BuildProviderAppliesToAttribute.cs
- EnumerableRowCollection.cs
- IsolationInterop.cs
- Padding.cs
- NamespaceInfo.cs
- SqlParameterizer.cs
- CapabilitiesAssignment.cs
- MetadataCollection.cs
- CancelEventArgs.cs
- FillBehavior.cs
- SecureUICommand.cs
- basevalidator.cs
- ConsumerConnectionPoint.cs
- CustomError.cs
- TransferRequestHandler.cs
- XamlToRtfParser.cs
- PropertyEmitter.cs
- OdbcCommandBuilder.cs
- TailPinnedEventArgs.cs
- SubtreeProcessor.cs
- ToolStripControlHost.cs
- ACL.cs
- ServiceCredentials.cs
- HTMLTagNameToTypeMapper.cs
- NamespaceList.cs
- RoutingUtilities.cs
- ConfigXmlText.cs
- Bind.cs
- SiteMapNode.cs
- PersonalizationProviderCollection.cs
- HwndSource.cs
- BuildProvider.cs
- PortCache.cs
- SchemaTableOptionalColumn.cs
- XmlSchemaAttribute.cs
- CuspData.cs
- QuaternionConverter.cs
- TextLine.cs
- IntegerFacetDescriptionElement.cs
- CuspData.cs
- QueryCacheEntry.cs
- ObjectViewQueryResultData.cs
- unsafenativemethodstextservices.cs
- _UriTypeConverter.cs
- SessionEndingCancelEventArgs.cs
- ContractMapping.cs
- TablePatternIdentifiers.cs
- DataGridViewCellCollection.cs
- RtfControls.cs
- TypeGeneratedEventArgs.cs
- DoubleLinkList.cs
- SHA256.cs
- TextElement.cs
- DoubleAnimation.cs
- Int32EqualityComparer.cs
- MembershipUser.cs
- SQLMembershipProvider.cs
- LogRestartAreaEnumerator.cs
- MarkupExtensionReturnTypeAttribute.cs
- TextProviderWrapper.cs
- JavaScriptSerializer.cs
- EntitySetBaseCollection.cs
- InkCollectionBehavior.cs
- log.cs
- JsonMessageEncoderFactory.cs
- ScriptingWebServicesSectionGroup.cs
- MaskedTextBoxDesigner.cs
- LicenseContext.cs
- Unit.cs
- View.cs
- SqlDelegatedTransaction.cs
- HyperLinkStyle.cs
- ControlType.cs
- EntityKeyElement.cs
- SqlComparer.cs
- FontStyles.cs
- CLSCompliantAttribute.cs
- DataGridTable.cs
- PointAnimationBase.cs
- HandleCollector.cs