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
- XLinq.cs
- X509Certificate2.cs
- DescriptionAttribute.cs
- ValidatingPropertiesEventArgs.cs
- DecoderFallback.cs
- XmlElementList.cs
- ProviderCommandInfoUtils.cs
- ListViewPagedDataSource.cs
- UnsafeNativeMethods.cs
- PermissionListSet.cs
- CqlLexer.cs
- XmlDataSourceDesigner.cs
- SequenceDesignerAccessibleObject.cs
- unsafenativemethodsother.cs
- HtmlTableRowCollection.cs
- CheckBoxAutomationPeer.cs
- XmlAttributeOverrides.cs
- CompareValidator.cs
- VisualTreeHelper.cs
- RequestSecurityTokenResponseCollection.cs
- BuildManagerHost.cs
- BooleanSwitch.cs
- ProviderException.cs
- HtmlTitle.cs
- ZipIOCentralDirectoryBlock.cs
- XmlRawWriter.cs
- RootProfilePropertySettingsCollection.cs
- GridViewDeleteEventArgs.cs
- TextRangeEdit.cs
- JapaneseLunisolarCalendar.cs
- FileDialogCustomPlacesCollection.cs
- TextRangeEditTables.cs
- HttpRuntimeSection.cs
- RegionIterator.cs
- OdbcFactory.cs
- HwndAppCommandInputProvider.cs
- FloatMinMaxAggregationOperator.cs
- QualifierSet.cs
- FixedPosition.cs
- EntityType.cs
- UpdateCompiler.cs
- DuplicateWaitObjectException.cs
- TableLayoutStyleCollection.cs
- ByteAnimation.cs
- StoragePropertyMapping.cs
- JpegBitmapDecoder.cs
- ParseChildrenAsPropertiesAttribute.cs
- EDesignUtil.cs
- FormsAuthenticationUserCollection.cs
- BufferedStream.cs
- RenderDataDrawingContext.cs
- AttributeProviderAttribute.cs
- RuntimeHelpers.cs
- BidirectionalDictionary.cs
- RelationshipEndCollection.cs
- BamlRecords.cs
- ResXResourceWriter.cs
- SqlConnectionFactory.cs
- RadioButton.cs
- MetadataPropertyvalue.cs
- ContentFileHelper.cs
- ISO2022Encoding.cs
- ReadOnlyDictionary.cs
- ComplexTypeEmitter.cs
- SystemGatewayIPAddressInformation.cs
- ToolStrip.cs
- RepeatBehavior.cs
- DateTimeValueSerializer.cs
- ObservableCollection.cs
- MetadataSerializer.cs
- SimpleFileLog.cs
- SamlSerializer.cs
- EditorPartCollection.cs
- MdiWindowListStrip.cs
- StrongName.cs
- List.cs
- infer.cs
- BadImageFormatException.cs
- CachedPathData.cs
- MenuItemStyleCollectionEditor.cs
- OperationResponse.cs
- CompensateDesigner.cs
- assemblycache.cs
- TileBrush.cs
- SignatureHelper.cs
- InkPresenter.cs
- AliasExpr.cs
- DataBindingHandlerAttribute.cs
- FragmentNavigationEventArgs.cs
- XmlSchema.cs
- CellNormalizer.cs
- COM2IPerPropertyBrowsingHandler.cs
- XmlSerializationReader.cs
- ArrayListCollectionBase.cs
- Vector3DAnimationUsingKeyFrames.cs
- MarshalByRefObject.cs
- InstanceDataCollection.cs
- WebProxyScriptElement.cs
- EntitySetBase.cs
- CustomExpression.cs