Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MsmqIntegrationBinding.cs
- UIntPtr.cs
- ListViewDataItem.cs
- ChannelPoolSettingsElement.cs
- SharingService.cs
- PcmConverter.cs
- PageAdapter.cs
- SqlProvider.cs
- ArrayList.cs
- _ChunkParse.cs
- SafeMarshalContext.cs
- RIPEMD160.cs
- DataGridViewCellParsingEventArgs.cs
- AttachedProperty.cs
- TextContainerHelper.cs
- PointAnimationClockResource.cs
- StyleModeStack.cs
- PathGradientBrush.cs
- SocketConnection.cs
- ApplicationId.cs
- MetabaseSettingsIis7.cs
- _LoggingObject.cs
- ServiceParser.cs
- FixUpCollection.cs
- CTreeGenerator.cs
- FixedDSBuilder.cs
- IndexedString.cs
- InstancePersistenceException.cs
- GridItemPatternIdentifiers.cs
- DrawTreeNodeEventArgs.cs
- ToolStripSplitButton.cs
- RolePrincipal.cs
- PolyBezierSegment.cs
- Matrix3DValueSerializer.cs
- WebResourceAttribute.cs
- DependencySource.cs
- ContentPresenter.cs
- Content.cs
- DataControlLinkButton.cs
- DataColumn.cs
- EntityDataSourceDataSelectionPanel.designer.cs
- SqlResolver.cs
- UnicastIPAddressInformationCollection.cs
- OpenTypeLayout.cs
- WindowsStatusBar.cs
- ThicknessAnimation.cs
- BaseTypeViewSchema.cs
- XmlnsDictionary.cs
- figurelength.cs
- ExtensionElementCollection.cs
- ToolstripProfessionalRenderer.cs
- DebugInfoGenerator.cs
- TokenCreationException.cs
- PackagePart.cs
- MarkupExtensionParser.cs
- NumericUpDown.cs
- Itemizer.cs
- MetadataArtifactLoaderCompositeResource.cs
- Group.cs
- ConsumerConnectionPointCollection.cs
- StreamingContext.cs
- ListViewItemMouseHoverEvent.cs
- RangeBase.cs
- ManagedWndProcTracker.cs
- ContentFilePart.cs
- HostedHttpContext.cs
- UIntPtr.cs
- UnsafeNativeMethods.cs
- DynamicResourceExtensionConverter.cs
- HitTestResult.cs
- ExpressionBuilder.cs
- DocumentGridContextMenu.cs
- SwitchLevelAttribute.cs
- InputLanguageCollection.cs
- XsdCachingReader.cs
- HandlerBase.cs
- MailWriter.cs
- BinaryConverter.cs
- NativeWrapper.cs
- ArrayTypeMismatchException.cs
- TdsParserSessionPool.cs
- EventLogPermissionEntry.cs
- DaylightTime.cs
- SourceItem.cs
- DocumentPropertiesDialog.cs
- Point.cs
- XmlNamespaceDeclarationsAttribute.cs
- WebPartsPersonalizationAuthorization.cs
- XslAstAnalyzer.cs
- DropShadowEffect.cs
- RowToParametersTransformer.cs
- HttpWebResponse.cs
- CodeRegionDirective.cs
- DetailsViewInsertEventArgs.cs
- TimerElapsedEvenArgs.cs
- FunctionImportElement.cs
- Debug.cs
- BamlTreeMap.cs
- NavigateUrlConverter.cs
- HtmlInputControl.cs