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 / 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
- ApplicationServicesHostFactory.cs
- PageStatePersister.cs
- SupportingTokenSpecification.cs
- OneOfTypeConst.cs
- XmlQualifiedNameTest.cs
- ComboBoxAutomationPeer.cs
- XmlSerializerAssemblyAttribute.cs
- DataFieldCollectionEditor.cs
- AesCryptoServiceProvider.cs
- StylusPointProperty.cs
- SemanticTag.cs
- WindowsHyperlink.cs
- XmlReflectionMember.cs
- Run.cs
- XmlException.cs
- WebPartManagerDesigner.cs
- _NtlmClient.cs
- RIPEMD160.cs
- SourceElementsCollection.cs
- SR.Designer.cs
- MouseBinding.cs
- MessageSmuggler.cs
- _DigestClient.cs
- ArrangedElementCollection.cs
- QuaternionAnimationBase.cs
- SqlNodeAnnotations.cs
- StringResourceManager.cs
- CipherData.cs
- PageCache.cs
- Permission.cs
- TextProperties.cs
- EventSourceCreationData.cs
- Size3DConverter.cs
- CommonDialog.cs
- CompoundFileDeflateTransform.cs
- XmlSchemaFacet.cs
- OledbConnectionStringbuilder.cs
- ApplicationSettingsBase.cs
- DropDownButton.cs
- DesignTimeResourceProviderFactoryAttribute.cs
- CodeSubDirectoriesCollection.cs
- ProcessHostFactoryHelper.cs
- SqlDataReaderSmi.cs
- _ListenerResponseStream.cs
- ContentTextAutomationPeer.cs
- GroupedContextMenuStrip.cs
- NativeRecognizer.cs
- HttpListenerException.cs
- EmbeddedObject.cs
- AsnEncodedData.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ImageButton.cs
- Hex.cs
- BamlBinaryReader.cs
- MappingSource.cs
- CodeTryCatchFinallyStatement.cs
- TreeNodeSelectionProcessor.cs
- DataGridViewAutoSizeColumnsModeEventArgs.cs
- TimeSpanValidatorAttribute.cs
- ScriptControlDescriptor.cs
- ButtonFieldBase.cs
- JsonServiceDocumentSerializer.cs
- SerializableTypeCodeDomSerializer.cs
- FixUp.cs
- StructuredProperty.cs
- ControlCommandSet.cs
- EntityDesignerUtils.cs
- ServiceAppDomainAssociationProvider.cs
- SqlServer2KCompatibilityAnnotation.cs
- CredentialCache.cs
- SqlMethodCallConverter.cs
- SubstitutionDesigner.cs
- PackageRelationship.cs
- ProtocolsConfigurationEntry.cs
- SqlIdentifier.cs
- QualifiedId.cs
- KeyInterop.cs
- PopupRootAutomationPeer.cs
- SystemIPGlobalProperties.cs
- AsyncSerializedWorker.cs
- DebuggerAttributes.cs
- ControlIdConverter.cs
- ConfigurationSectionGroupCollection.cs
- ImageAttributes.cs
- XmlUTF8TextReader.cs
- TcpWorkerProcess.cs
- CheckBox.cs
- CompositeControl.cs
- Typeface.cs
- RuntimeWrappedException.cs
- DBAsyncResult.cs
- ExpandCollapseProviderWrapper.cs
- GZipDecoder.cs
- LightweightCodeGenerator.cs
- Vector3DAnimation.cs
- XmlCharType.cs
- SecurityPermission.cs
- DataTableCollection.cs
- VirtualizingStackPanel.cs
- ToolboxItem.cs