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 / Media3D / GeneralTransform3DGroup.cs / 1 / GeneralTransform3DGroup.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, 2001 // // File: GeneralTransform3DGroup.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.Media3D { ////// GeneralTransform3D group /// [ContentProperty("Children")] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public sealed partial class GeneralTransform3DGroup : GeneralTransform3D { #region Constructors ////// Default Constructor /// public GeneralTransform3DGroup() { } #endregion ////// Transform a point /// /// input point /// output point ///True if the point is transformed successfully public override bool TryTransform(Point3D inPoint, out Point3D result) { result = inPoint; // cache the children to avoid a repeated DP access GeneralTransform3DCollection children = Children; if ((children == null) || (children.Count == 0)) { return false; } bool pointTransformed = true; // transform the point through each of the transforms for (int i = 0, count = children.Count; i < count; i++) { if (children._collection[i].TryTransform(inPoint, out result) == false) { pointTransformed = false; break; } inPoint = result; } return pointTransformed; } ////// 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 Rect3D TransformBounds(Rect3D rect) { // cache the children to avoid a repeated DP access GeneralTransform3DCollection children = Children; if ((children == null) || (children.Count == 0)) { return rect; } Rect3D result = rect; for (int i = 0, count = children.Count; i < count; i++) { result = children._collection[i].TransformBounds(result); } return result; } ////// Returns the inverse transform if it has an inverse, null otherwise /// public override GeneralTransform3D Inverse { get { // cache the children to avoid a repeated DP access GeneralTransform3DCollection children = Children; if ((children == null) || (children.Count == 0)) { return null; } GeneralTransform3DGroup group = new GeneralTransform3DGroup(); for (int i = children.Count - 1; i >= 0; i--) { GeneralTransform3D g = children._collection[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 Transform3D AffineTransform { [FriendAccessAllowed] // Built into Core, also used by Framework. get { // cache the children to avoid a repeated DP access GeneralTransform3DCollection children = Children; if ((children == null) || (children.Count == 0)) { return null; } Matrix3D matrix = Matrix3D.Identity; for (int i = 0, count = children.Count; i < count; i++) { Transform3D t = children._collection[i].AffineTransform; t.Append(ref matrix); } return new MatrixTransform3D(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: GeneralTransform3DGroup.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.Media3D { ////// GeneralTransform3D group /// [ContentProperty("Children")] [Localizability(LocalizationCategory.None, Readability = Readability.Unreadable)] public sealed partial class GeneralTransform3DGroup : GeneralTransform3D { #region Constructors ////// Default Constructor /// public GeneralTransform3DGroup() { } #endregion ////// Transform a point /// /// input point /// output point ///True if the point is transformed successfully public override bool TryTransform(Point3D inPoint, out Point3D result) { result = inPoint; // cache the children to avoid a repeated DP access GeneralTransform3DCollection children = Children; if ((children == null) || (children.Count == 0)) { return false; } bool pointTransformed = true; // transform the point through each of the transforms for (int i = 0, count = children.Count; i < count; i++) { if (children._collection[i].TryTransform(inPoint, out result) == false) { pointTransformed = false; break; } inPoint = result; } return pointTransformed; } ////// 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 Rect3D TransformBounds(Rect3D rect) { // cache the children to avoid a repeated DP access GeneralTransform3DCollection children = Children; if ((children == null) || (children.Count == 0)) { return rect; } Rect3D result = rect; for (int i = 0, count = children.Count; i < count; i++) { result = children._collection[i].TransformBounds(result); } return result; } ////// Returns the inverse transform if it has an inverse, null otherwise /// public override GeneralTransform3D Inverse { get { // cache the children to avoid a repeated DP access GeneralTransform3DCollection children = Children; if ((children == null) || (children.Count == 0)) { return null; } GeneralTransform3DGroup group = new GeneralTransform3DGroup(); for (int i = children.Count - 1; i >= 0; i--) { GeneralTransform3D g = children._collection[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 Transform3D AffineTransform { [FriendAccessAllowed] // Built into Core, also used by Framework. get { // cache the children to avoid a repeated DP access GeneralTransform3DCollection children = Children; if ((children == null) || (children.Count == 0)) { return null; } Matrix3D matrix = Matrix3D.Identity; for (int i = 0, count = children.Count; i < count; i++) { Transform3D t = children._collection[i].AffineTransform; t.Append(ref matrix); } return new MatrixTransform3D(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
- BevelBitmapEffect.cs
- CommonObjectSecurity.cs
- SecurityElement.cs
- KeyToListMap.cs
- ElementAction.cs
- UriScheme.cs
- FontNameConverter.cs
- OracleFactory.cs
- TreeBuilder.cs
- Propagator.JoinPropagator.cs
- ImplicitInputBrush.cs
- ValidationError.cs
- ZoneLinkButton.cs
- XamlHostingSection.cs
- Color.cs
- IntAverageAggregationOperator.cs
- ForceCopyBuildProvider.cs
- ServiceMemoryGates.cs
- AdornerHitTestResult.cs
- AppSettingsExpressionBuilder.cs
- PackWebRequest.cs
- SolidColorBrush.cs
- localization.cs
- DesignParameter.cs
- ListViewAutomationPeer.cs
- _ShellExpression.cs
- GZipStream.cs
- ToolboxComponentsCreatingEventArgs.cs
- TextEditorCharacters.cs
- PlatformNotSupportedException.cs
- WebPartConnectionsEventArgs.cs
- _StreamFramer.cs
- DPAPIProtectedConfigurationProvider.cs
- ServiceOperationParameter.cs
- Rect3DValueSerializer.cs
- ComponentResourceKey.cs
- LocalIdKeyIdentifierClause.cs
- XmlSerializerFactory.cs
- EventLogTraceListener.cs
- Method.cs
- SamlAttribute.cs
- DataSourceCache.cs
- DataGridTextBox.cs
- TableHeaderCell.cs
- ConstructorExpr.cs
- IPeerNeighbor.cs
- ObjectViewEntityCollectionData.cs
- FilteredDataSetHelper.cs
- WrappedIUnknown.cs
- DbExpressionRules.cs
- ToolStripArrowRenderEventArgs.cs
- SecurityUtils.cs
- BuildProvider.cs
- SiteMapPath.cs
- GeneralTransform3DTo2DTo3D.cs
- WebPartConnectVerb.cs
- DBSchemaRow.cs
- SchemaNames.cs
- Vector3DIndependentAnimationStorage.cs
- BoundsDrawingContextWalker.cs
- PointAnimation.cs
- ServicePoint.cs
- ToolStripItemDesigner.cs
- ManipulationCompletedEventArgs.cs
- FunctionImportMapping.cs
- DefaultCommandConverter.cs
- DocComment.cs
- WindowsAltTab.cs
- DataGridTable.cs
- SystemKeyConverter.cs
- SecurityTokenTypes.cs
- SystemParameters.cs
- CoreSwitches.cs
- InvalidProgramException.cs
- KeyInfo.cs
- RtfToXamlReader.cs
- XmlImplementation.cs
- XmlAtomicValue.cs
- DataGridDesigner.cs
- Composition.cs
- TextBox.cs
- AnchoredBlock.cs
- WebConfigurationHost.cs
- StateItem.cs
- LogManagementAsyncResult.cs
- RowsCopiedEventArgs.cs
- httpstaticobjectscollection.cs
- DataGridViewAddColumnDialog.cs
- httpserverutility.cs
- ScaleTransform3D.cs
- AccessDataSourceView.cs
- UpDownBase.cs
- ListViewContainer.cs
- EUCJPEncoding.cs
- ImportCatalogPart.cs
- LinqDataSource.cs
- BrowserCapabilitiesFactory.cs
- TypeNameConverter.cs
- CompositeCollectionView.cs
- RightNameExpirationInfoPair.cs