Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
![Network programming in C#, Network Programming in VB.NET, Network Programming in .NET](/images/book.jpg)
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- CounterCreationDataCollection.cs
- TextBlock.cs
- BasePropertyDescriptor.cs
- SystemIPInterfaceStatistics.cs
- SamlAuthorizationDecisionStatement.cs
- NetworkInformationPermission.cs
- WebCodeGenerator.cs
- DocumentViewerBaseAutomationPeer.cs
- MILUtilities.cs
- WindowsFormsLinkLabel.cs
- SqlCachedBuffer.cs
- ColorPalette.cs
- WeakReadOnlyCollection.cs
- COM2ColorConverter.cs
- JournalEntryListConverter.cs
- MultiTrigger.cs
- XmlCountingReader.cs
- TrackBar.cs
- QilInvoke.cs
- SmiXetterAccessMap.cs
- ContentElement.cs
- RuntimeConfigurationRecord.cs
- UInt16.cs
- GorillaCodec.cs
- Brush.cs
- ComplexObject.cs
- CryptoProvider.cs
- FileSystemInfo.cs
- DataKeyPropertyAttribute.cs
- XmlSchemaRedefine.cs
- UiaCoreProviderApi.cs
- FixedStringLookup.cs
- WebFormDesignerActionService.cs
- FacetValueContainer.cs
- UserControlCodeDomTreeGenerator.cs
- XamlGridLengthSerializer.cs
- AnnotationResource.cs
- SystemIcons.cs
- TraceEventCache.cs
- HtmlInputControl.cs
- WebRequestModuleElement.cs
- XmlDomTextWriter.cs
- UITypeEditor.cs
- QilValidationVisitor.cs
- HttpModulesSection.cs
- UnaryNode.cs
- IIS7WorkerRequest.cs
- SafeThreadHandle.cs
- Exceptions.cs
- XsdDuration.cs
- FileLevelControlBuilderAttribute.cs
- DbParameterCollection.cs
- FormViewPageEventArgs.cs
- UInt32Storage.cs
- ExpressionTextBox.xaml.cs
- ExclusiveNamedPipeTransportManager.cs
- ListBoxItemWrapperAutomationPeer.cs
- Crypto.cs
- URLAttribute.cs
- GlyphRun.cs
- Label.cs
- TextRunTypographyProperties.cs
- DeleteHelper.cs
- CheckBoxRenderer.cs
- DataContractJsonSerializerOperationFormatter.cs
- XslCompiledTransform.cs
- FontDifferentiator.cs
- InputDevice.cs
- PageParser.cs
- WebHttpSecurityElement.cs
- InterleavedZipPartStream.cs
- ProfileModule.cs
- TextParagraphCache.cs
- ConditionalAttribute.cs
- SpecialNameAttribute.cs
- MetabaseSettingsIis7.cs
- ManagedWndProcTracker.cs
- ProxyElement.cs
- XamlParser.cs
- TdsRecordBufferSetter.cs
- DataMemberConverter.cs
- CodeTypeReferenceExpression.cs
- XamlPoint3DCollectionSerializer.cs
- ExtensionElement.cs
- EncryptedXml.cs
- NoResizeSelectionBorderGlyph.cs
- CurrencyManager.cs
- HtmlImage.cs
- FormClosedEvent.cs
- XmlSchemaAny.cs
- InkSerializer.cs
- NetworkInformationException.cs
- EdmItemError.cs
- CssClassPropertyAttribute.cs
- ReplacementText.cs
- brushes.cs
- AdCreatedEventArgs.cs
- SchemaEntity.cs
- XPathParser.cs
- TiffBitmapEncoder.cs