Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / GeneralTransformGroup.cs / 1305600 / 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
- DataGridViewCellCollection.cs
- HtmlInputButton.cs
- JsonReaderWriterFactory.cs
- InvalidCastException.cs
- DataGridViewCellStyle.cs
- UnknownWrapper.cs
- PackWebResponse.cs
- SyndicationSerializer.cs
- CodeSnippetTypeMember.cs
- DataAdapter.cs
- TextServicesCompartment.cs
- MessageRpc.cs
- ToolStripDropDownButton.cs
- DynamicILGenerator.cs
- ClientScriptManager.cs
- RoleGroupCollection.cs
- CollectionAdapters.cs
- ProviderIncompatibleException.cs
- shaper.cs
- GridViewColumnCollection.cs
- GridViewUpdatedEventArgs.cs
- EmptyEnumerator.cs
- KeyNotFoundException.cs
- FrameworkElementFactoryMarkupObject.cs
- documentation.cs
- HttpResponseBase.cs
- XmlHierarchyData.cs
- EditingCommands.cs
- SystemIPv4InterfaceProperties.cs
- UnmanagedMemoryStreamWrapper.cs
- MetadataUtil.cs
- StylusEventArgs.cs
- TimeSpanConverter.cs
- IfJoinedCondition.cs
- WasHostedComPlusFactory.cs
- MiniAssembly.cs
- StorageAssociationTypeMapping.cs
- ManagedCodeMarkers.cs
- _emptywebproxy.cs
- PreProcessInputEventArgs.cs
- DataGridViewCellMouseEventArgs.cs
- CodeIterationStatement.cs
- DataGridViewButtonColumn.cs
- DrawingContextDrawingContextWalker.cs
- HtmlTable.cs
- CmsUtils.cs
- SHA512.cs
- PointIndependentAnimationStorage.cs
- BCLDebug.cs
- InputLanguageSource.cs
- AudioStateChangedEventArgs.cs
- TrustManager.cs
- SelectionEditor.cs
- DeviceContext2.cs
- FileUpload.cs
- IsolatedStoragePermission.cs
- Accessible.cs
- XmlSchemaSequence.cs
- PublisherMembershipCondition.cs
- Dynamic.cs
- DataGridViewRowsRemovedEventArgs.cs
- TextTreeExtractElementUndoUnit.cs
- GridProviderWrapper.cs
- UpdateDelegates.Generated.cs
- PerformanceCounter.cs
- JsonWriterDelegator.cs
- Calendar.cs
- EntityCollection.cs
- Frame.cs
- SQLMembershipProvider.cs
- MulticastNotSupportedException.cs
- HttpListenerResponse.cs
- TextBlockAutomationPeer.cs
- HttpContextServiceHost.cs
- AspCompat.cs
- AdapterUtil.cs
- ValidatingPropertiesEventArgs.cs
- SystemDiagnosticsSection.cs
- InlineUIContainer.cs
- ItemChangedEventArgs.cs
- RegionInfo.cs
- EpmCustomContentDeSerializer.cs
- XmlQueryContext.cs
- WaitHandleCannotBeOpenedException.cs
- RegistrySecurity.cs
- FormatException.cs
- CompModHelpers.cs
- AuthorizationRule.cs
- WindowsGraphicsWrapper.cs
- ContextInformation.cs
- InvalidOleVariantTypeException.cs
- TraceLog.cs
- ExeContext.cs
- OutKeywords.cs
- CookielessHelper.cs
- BindingContext.cs
- EventHandlers.cs
- SpotLight.cs
- FloatUtil.cs
- HtmlButton.cs