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
- PropertySegmentSerializationProvider.cs
- CommonGetThemePartSize.cs
- SiteOfOriginPart.cs
- UnionExpr.cs
- MethodBody.cs
- StaticExtension.cs
- ValidationEventArgs.cs
- CollectionDataContract.cs
- TypeLoadException.cs
- LoginCancelEventArgs.cs
- DataListCommandEventArgs.cs
- Command.cs
- SystemParameters.cs
- UnderstoodHeaders.cs
- PathParser.cs
- ViewStateModeByIdAttribute.cs
- Char.cs
- DateTimeSerializationSection.cs
- DesignerLoader.cs
- AbandonedMutexException.cs
- AddInAdapter.cs
- QuaternionAnimationUsingKeyFrames.cs
- ProgressChangedEventArgs.cs
- _AutoWebProxyScriptHelper.cs
- PropertyTabChangedEvent.cs
- RemotingAttributes.cs
- RemoveStoryboard.cs
- CodeParameterDeclarationExpression.cs
- MexTcpBindingElement.cs
- DetailsViewInsertedEventArgs.cs
- Axis.cs
- XmlSchemaAttribute.cs
- DotExpr.cs
- ISAPIWorkerRequest.cs
- WebCategoryAttribute.cs
- KeyboardDevice.cs
- DbConnectionFactory.cs
- TypeSystemProvider.cs
- ObjectFactoryCodeDomTreeGenerator.cs
- CompiledQueryCacheEntry.cs
- TextSerializer.cs
- DbQueryCommandTree.cs
- ByteAnimationUsingKeyFrames.cs
- RootAction.cs
- PrincipalPermission.cs
- GridViewPageEventArgs.cs
- LineSegment.cs
- SpeechUI.cs
- ResourceReferenceKeyNotFoundException.cs
- FileDetails.cs
- ReflectionPermission.cs
- ComplexObject.cs
- SqlConnectionManager.cs
- GridViewSortEventArgs.cs
- _SafeNetHandles.cs
- StdValidatorsAndConverters.cs
- XmlDocumentViewSchema.cs
- DoubleAnimationUsingKeyFrames.cs
- PingOptions.cs
- ApplicationFileParser.cs
- PropertyToken.cs
- GridPatternIdentifiers.cs
- HighlightOverlayGlyph.cs
- HMACSHA512.cs
- Polyline.cs
- NetworkInformationPermission.cs
- DetailsViewPageEventArgs.cs
- DesignerDataColumn.cs
- MSAAWinEventWrap.cs
- IISMapPath.cs
- AttributeTable.cs
- WindowsContainer.cs
- GetPageNumberCompletedEventArgs.cs
- BuildProviderCollection.cs
- NamespaceQuery.cs
- XmlSchemaSimpleType.cs
- CompositeClientFormatter.cs
- IssuanceLicense.cs
- XmlElementAttributes.cs
- SymLanguageType.cs
- ErrorFormatterPage.cs
- TemplateBuilder.cs
- RoutedEventConverter.cs
- EntityDesignerUtils.cs
- RSAPKCS1SignatureFormatter.cs
- InternalTypeHelper.cs
- ResolveCriteriaCD1.cs
- ImageClickEventArgs.cs
- input.cs
- TreeNode.cs
- WindowPattern.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- DictionaryChange.cs
- MarkedHighlightComponent.cs
- AsymmetricKeyExchangeFormatter.cs
- RegexWorker.cs
- TypeGeneratedEventArgs.cs
- DoubleLinkList.cs
- EastAsianLunisolarCalendar.cs
- BuildProvider.cs