Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- XPathSelectionIterator.cs
- WorkItem.cs
- WindowProviderWrapper.cs
- BaseCollection.cs
- PropertyGrid.cs
- CaseCqlBlock.cs
- NumberFormatter.cs
- RuntimeConfig.cs
- HMAC.cs
- Int16KeyFrameCollection.cs
- sqlinternaltransaction.cs
- TriggerCollection.cs
- SourceElementsCollection.cs
- XPathDocumentBuilder.cs
- MetafileEditor.cs
- TextBoxDesigner.cs
- Int32KeyFrameCollection.cs
- EntityDesignerDataSourceView.cs
- Debug.cs
- StaticSiteMapProvider.cs
- PermissionSetTriple.cs
- ModuleBuilderData.cs
- MembershipPasswordException.cs
- OdbcPermission.cs
- BitmapEffectDrawing.cs
- PasswordBoxAutomationPeer.cs
- ImageInfo.cs
- SQLDateTimeStorage.cs
- KeyValuePair.cs
- DataGridViewSelectedRowCollection.cs
- CacheSection.cs
- Marshal.cs
- DataRow.cs
- ElementsClipboardData.cs
- WebPartRestoreVerb.cs
- XmlObjectSerializerWriteContextComplex.cs
- PriorityQueue.cs
- BooleanKeyFrameCollection.cs
- EventItfInfo.cs
- XpsSerializerFactory.cs
- Permission.cs
- AsymmetricSignatureFormatter.cs
- Parallel.cs
- CodeTypeConstructor.cs
- XPathParser.cs
- MethodToken.cs
- PointLight.cs
- SafeLocalAllocation.cs
- StrokeCollection2.cs
- InputScopeNameConverter.cs
- Internal.cs
- WindowHideOrCloseTracker.cs
- MergeLocalizationDirectives.cs
- IPEndPoint.cs
- QilLiteral.cs
- FixedFlowMap.cs
- AdvancedBindingEditor.cs
- WaitHandle.cs
- WorkflowTransactionOptions.cs
- ApplicationContext.cs
- DictationGrammar.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- PropertyBuilder.cs
- UrlRoutingHandler.cs
- InstanceData.cs
- EncodedStreamFactory.cs
- SmtpDigestAuthenticationModule.cs
- ModelServiceImpl.cs
- EdmToObjectNamespaceMap.cs
- RangeBaseAutomationPeer.cs
- DbConnectionPoolGroupProviderInfo.cs
- _LocalDataStoreMgr.cs
- CompositeFontParser.cs
- ManifestResourceInfo.cs
- SqlConnection.cs
- ResolveCriteria.cs
- HttpHostedTransportConfiguration.cs
- PopupRootAutomationPeer.cs
- DataContract.cs
- MimeObjectFactory.cs
- EffectiveValueEntry.cs
- ProxyOperationRuntime.cs
- XamlClipboardData.cs
- ClusterSafeNativeMethods.cs
- DynamicDataExtensions.cs
- RectAnimationUsingKeyFrames.cs
- TTSEngineTypes.cs
- SafeBuffer.cs
- DivideByZeroException.cs
- GlobalProxySelection.cs
- WorkItem.cs
- ToolboxItemFilterAttribute.cs
- XmlILConstructAnalyzer.cs
- ChtmlTextWriter.cs
- ServerValidateEventArgs.cs
- TreeNodeCollection.cs
- EmptyCollection.cs
- SystemIcmpV6Statistics.cs
- XmlLanguageConverter.cs
- RoleGroup.cs