Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media3D / GeneralTransform3DTo2D.cs / 1305600 / GeneralTransform3DTo2D.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Declaration of the GeneralTransform3DTo2D class. // //--------------------------------------------------------------------------- using System.Windows.Media; using System.Windows.Media.Animation; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Media3D { ////// GeneralTransform3DTo2D class provides services to transform points and rects in 3D to 2D /// public class GeneralTransform3DTo2D : Freezable { internal GeneralTransform3DTo2D() { _transformBetween2D = null; } internal GeneralTransform3DTo2D(Matrix3D projectionTransform, GeneralTransform transformBetween2D) { _projectionTransform = projectionTransform; _transformBetween2D = (GeneralTransform)transformBetween2D.GetAsFrozen(); } ////// Transform a point /// /// Input point /// Output point ///True if the point was transformed successfuly, false otherwise public bool TryTransform(Point3D inPoint, out Point result) { bool success = false; result = new Point(); // project the point if (_projectionTransform != null) { Point3D projectedPoint = _projectionTransform.Transform(inPoint); if (_transformBetween2D != null) { result = _transformBetween2D.Transform(new Point(projectedPoint.X, projectedPoint.Y)); success = true; } } return success; } ////// Transform a point from 3D in to 2D /// /// If the transformation does not succeed, this will throw an InvalidOperationException. /// If you don't want to try/catch, call TryTransform instead and check the boolean it /// returns. /// /// /// Input point ///The transformed point public Point Transform(Point3D point) { Point transformedPoint; if (!TryTransform(point, out transformedPoint)) { throw new InvalidOperationException(SR.Get(SRID.GeneralTransform_TransformFailed, null)); } return transformedPoint; } ////// Transform a Rect3D to a Rect. If this transformation cannot be completed Rect.Empty is returned. /// /// Input 3D bounding box ///The 2D bounding box of the projection of these points public Rect TransformBounds(Rect3D rect3D) { if (_transformBetween2D != null) { return _transformBetween2D.TransformBounds(MILUtilities.ProjectBounds(ref _projectionTransform, ref rect3D)); } else { return Rect.Empty; } } ////// Implementation of ///Freezable.CreateInstanceCore . ///The new Freezable. protected override Freezable CreateInstanceCore() { return new GeneralTransform3DTo2D(); } ////// Implementation of /// protected override void CloneCore(Freezable sourceFreezable) { GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable; base.CloneCore(sourceFreezable); CopyCommon(transform); } ///Freezable.CloneCore . ////// Implementation of /// protected override void CloneCurrentValueCore(Freezable sourceFreezable) { GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable; base.CloneCurrentValueCore(sourceFreezable); CopyCommon(transform); } ///Freezable.CloneCurrentValueCore . ////// Implementation of /// protected override void GetAsFrozenCore(Freezable sourceFreezable) { GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable; base.GetAsFrozenCore(sourceFreezable); CopyCommon(transform); } ///Freezable.GetAsFrozenCore . ////// Implementation of /// protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) { GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable; base.GetCurrentValueAsFrozenCore(sourceFreezable); CopyCommon(transform); } ///Freezable.GetCurrentValueAsFrozenCore . ////// Clones values that do not have corresponding DPs /// /// private void CopyCommon(GeneralTransform3DTo2D transform) { _projectionTransform = transform._projectionTransform; _transformBetween2D = transform._transformBetween2D; } private Matrix3D _projectionTransform; private GeneralTransform _transformBetween2D; } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: Declaration of the GeneralTransform3DTo2D class. // //--------------------------------------------------------------------------- using System.Windows.Media; using System.Windows.Media.Animation; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Media3D { ////// GeneralTransform3DTo2D class provides services to transform points and rects in 3D to 2D /// public class GeneralTransform3DTo2D : Freezable { internal GeneralTransform3DTo2D() { _transformBetween2D = null; } internal GeneralTransform3DTo2D(Matrix3D projectionTransform, GeneralTransform transformBetween2D) { _projectionTransform = projectionTransform; _transformBetween2D = (GeneralTransform)transformBetween2D.GetAsFrozen(); } ////// Transform a point /// /// Input point /// Output point ///True if the point was transformed successfuly, false otherwise public bool TryTransform(Point3D inPoint, out Point result) { bool success = false; result = new Point(); // project the point if (_projectionTransform != null) { Point3D projectedPoint = _projectionTransform.Transform(inPoint); if (_transformBetween2D != null) { result = _transformBetween2D.Transform(new Point(projectedPoint.X, projectedPoint.Y)); success = true; } } return success; } ////// Transform a point from 3D in to 2D /// /// If the transformation does not succeed, this will throw an InvalidOperationException. /// If you don't want to try/catch, call TryTransform instead and check the boolean it /// returns. /// /// /// Input point ///The transformed point public Point Transform(Point3D point) { Point transformedPoint; if (!TryTransform(point, out transformedPoint)) { throw new InvalidOperationException(SR.Get(SRID.GeneralTransform_TransformFailed, null)); } return transformedPoint; } ////// Transform a Rect3D to a Rect. If this transformation cannot be completed Rect.Empty is returned. /// /// Input 3D bounding box ///The 2D bounding box of the projection of these points public Rect TransformBounds(Rect3D rect3D) { if (_transformBetween2D != null) { return _transformBetween2D.TransformBounds(MILUtilities.ProjectBounds(ref _projectionTransform, ref rect3D)); } else { return Rect.Empty; } } ////// Implementation of ///Freezable.CreateInstanceCore . ///The new Freezable. protected override Freezable CreateInstanceCore() { return new GeneralTransform3DTo2D(); } ////// Implementation of /// protected override void CloneCore(Freezable sourceFreezable) { GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable; base.CloneCore(sourceFreezable); CopyCommon(transform); } ///Freezable.CloneCore . ////// Implementation of /// protected override void CloneCurrentValueCore(Freezable sourceFreezable) { GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable; base.CloneCurrentValueCore(sourceFreezable); CopyCommon(transform); } ///Freezable.CloneCurrentValueCore . ////// Implementation of /// protected override void GetAsFrozenCore(Freezable sourceFreezable) { GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable; base.GetAsFrozenCore(sourceFreezable); CopyCommon(transform); } ///Freezable.GetAsFrozenCore . ////// Implementation of /// protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) { GeneralTransform3DTo2D transform = (GeneralTransform3DTo2D)sourceFreezable; base.GetCurrentValueAsFrozenCore(sourceFreezable); CopyCommon(transform); } ///Freezable.GetCurrentValueAsFrozenCore . ////// Clones values that do not have corresponding DPs /// /// private void CopyCommon(GeneralTransform3DTo2D transform) { _projectionTransform = transform._projectionTransform; _transformBetween2D = transform._transformBetween2D; } private Matrix3D _projectionTransform; private GeneralTransform _transformBetween2D; } } // 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
- WebPermission.cs
- SplashScreenNativeMethods.cs
- ScalarType.cs
- TextEmbeddedObject.cs
- PeerObject.cs
- DataServiceHost.cs
- UseLicense.cs
- HtmlInputText.cs
- _ReceiveMessageOverlappedAsyncResult.cs
- path.cs
- SettingsBase.cs
- ProtocolViolationException.cs
- SubpageParaClient.cs
- MsmqIntegrationBinding.cs
- CursorConverter.cs
- DecimalConverter.cs
- OperationCanceledException.cs
- Material.cs
- FormView.cs
- XmlMapping.cs
- ScriptControlManager.cs
- SqlLiftIndependentRowExpressions.cs
- GridViewItemAutomationPeer.cs
- QueryReaderSettings.cs
- FileLoadException.cs
- AdornedElementPlaceholder.cs
- VisualBrush.cs
- Invariant.cs
- ApplicationManager.cs
- PublisherIdentityPermission.cs
- ImportOptions.cs
- HandoffBehavior.cs
- CalloutQueueItem.cs
- PublishLicense.cs
- DataGridViewColumnConverter.cs
- Classification.cs
- WebPartDeleteVerb.cs
- TargetFrameworkUtil.cs
- ServerIdentity.cs
- SchemaImporter.cs
- Symbol.cs
- ServiceNameCollection.cs
- TreeWalker.cs
- FormsAuthenticationTicket.cs
- IssuanceLicense.cs
- HitTestDrawingContextWalker.cs
- ExpressionBuilder.cs
- RuleSettingsCollection.cs
- BaseResourcesBuildProvider.cs
- BuildManager.cs
- TextElementEnumerator.cs
- FunctionImportMapping.cs
- SelectionUIHandler.cs
- TraceSection.cs
- TdsEnums.cs
- HtmlInputFile.cs
- SerializerProvider.cs
- IndexingContentUnit.cs
- Clipboard.cs
- Crc32.cs
- ListCollectionView.cs
- ScriptResourceDefinition.cs
- InputLanguageEventArgs.cs
- XmlSchemaImport.cs
- InvalidAsynchronousStateException.cs
- ConnectorMovedEventArgs.cs
- NotificationContext.cs
- NullableDoubleSumAggregationOperator.cs
- ButtonBase.cs
- RootBrowserWindow.cs
- ReflectTypeDescriptionProvider.cs
- VectorAnimation.cs
- DataGridAutoFormatDialog.cs
- CodeExporter.cs
- EntityContainer.cs
- ReadOnlyAttribute.cs
- DbTransaction.cs
- ObjectDataSourceView.cs
- DateTimeOffsetStorage.cs
- DesignerCategoryAttribute.cs
- XmlQueryRuntime.cs
- Win32MouseDevice.cs
- NetCodeGroup.cs
- Style.cs
- ApplyTemplatesAction.cs
- _OSSOCK.cs
- UnsafeNativeMethods.cs
- UITypeEditor.cs
- WebPartMovingEventArgs.cs
- Ops.cs
- Annotation.cs
- WizardPanel.cs
- ByteStreamMessageUtility.cs
- EventHandlersStore.cs
- PointHitTestParameters.cs
- ForeignKeyConstraint.cs
- AvTraceDetails.cs
- IResourceProvider.cs
- PartManifestEntry.cs
- ToolStripComboBox.cs