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
- GeneralTransform2DTo3D.cs
- SynchronousSendBindingElement.cs
- SchemaObjectWriter.cs
- Publisher.cs
- behaviorssection.cs
- Walker.cs
- TextPenaltyModule.cs
- ProtocolsSection.cs
- AnnotationStore.cs
- NominalTypeEliminator.cs
- XmlSerializerAssemblyAttribute.cs
- DataGridItem.cs
- RequestDescription.cs
- Int32AnimationUsingKeyFrames.cs
- CompoundFileIOPermission.cs
- mediapermission.cs
- RuleAttributes.cs
- CodeDOMProvider.cs
- SQLInt32Storage.cs
- RelatedImageListAttribute.cs
- QualifiedCellIdBoolean.cs
- PersonalizationProvider.cs
- DataGridViewCellEventArgs.cs
- FacetValues.cs
- HttpPostedFile.cs
- TextFormatter.cs
- MultiPartWriter.cs
- LineBreak.cs
- ExeContext.cs
- PropertyEmitterBase.cs
- MimePart.cs
- DataGridViewButtonColumn.cs
- WebReferencesBuildProvider.cs
- XmlAnyElementAttributes.cs
- ClientSponsor.cs
- Stream.cs
- DrawingGroupDrawingContext.cs
- OdbcFactory.cs
- SoapServerMethod.cs
- PlatformCulture.cs
- ACE.cs
- WindowsToolbarAsMenu.cs
- ReservationNotFoundException.cs
- FloaterParagraph.cs
- SaveWorkflowAsyncResult.cs
- ApplicationGesture.cs
- ValidationResult.cs
- EdmSchemaError.cs
- StrongNameUtility.cs
- ApplicationManager.cs
- ProtocolElementCollection.cs
- SoapInteropTypes.cs
- SortKey.cs
- SqlSelectStatement.cs
- Propagator.JoinPropagator.cs
- ExtractedStateEntry.cs
- DataSourceIDConverter.cs
- MenuStrip.cs
- VirtualDirectoryMapping.cs
- Wizard.cs
- DataGridTablesFactory.cs
- LogManagementAsyncResult.cs
- EDesignUtil.cs
- ScaleTransform.cs
- EventLogPermissionAttribute.cs
- MemoryStream.cs
- TextBox.cs
- QueryableDataSource.cs
- CacheRequest.cs
- BrushMappingModeValidation.cs
- Condition.cs
- Listbox.cs
- VectorValueSerializer.cs
- DateRangeEvent.cs
- JournalEntryStack.cs
- AppDomainFactory.cs
- HijriCalendar.cs
- MarshalByValueComponent.cs
- PtsCache.cs
- SafeCryptoHandles.cs
- DisposableCollectionWrapper.cs
- AppDomainInfo.cs
- UrlAuthFailedErrorFormatter.cs
- TreeNodeStyleCollection.cs
- XmlSchemaValidator.cs
- TimeZone.cs
- Not.cs
- FloatMinMaxAggregationOperator.cs
- UIInitializationException.cs
- CompoundFileReference.cs
- CheckedListBox.cs
- XmlSchemaType.cs
- ImageIndexEditor.cs
- CompoundFileStorageReference.cs
- TimeSpanOrInfiniteValidator.cs
- Quaternion.cs
- SolidColorBrush.cs
- ExtensionQuery.cs
- WebPartConnectionsCancelEventArgs.cs
- CellParagraph.cs