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 / ScaleTransform3D.cs / 1 / ScaleTransform3D.cs
//----------------------------------------------------------------------------
//
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//
//
// Description: 3D scale transformation.
//
// See spec at http://avalon/medialayer/Specifications/Avalon3D%20API%20Spec.mht
//
// History:
// 06/04/2003 : t-gregr - Created
//
//---------------------------------------------------------------------------
using System;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Composition;
using MS.Internal;
using System.ComponentModel.Design.Serialization;
using System.Windows.Markup;
namespace System.Windows.Media.Media3D
{
///
/// 3D scale transform.
///
public sealed partial class ScaleTransform3D : AffineTransform3D
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Default constructor.
///
public ScaleTransform3D() {}
///
/// Constructor.
///
public ScaleTransform3D(Vector3D scale)
{
ScaleX = scale.X;
ScaleY = scale.Y;
ScaleZ = scale.Z;
}
///
/// Constructor.
///
public ScaleTransform3D(double scaleX, double scaleY, double scaleZ)
{
ScaleX = scaleX;
ScaleY = scaleY;
ScaleZ = scaleZ;
}
///
/// Constructor.
///
public ScaleTransform3D(Vector3D scale, Point3D center)
{
ScaleX = scale.X;
ScaleY = scale.Y;
ScaleZ = scale.Z;
CenterX = center.X;
CenterY = center.Y;
CenterZ = center.Z;
}
///
/// Constructor.
///
public ScaleTransform3D(double scaleX, double scaleY, double scaleZ, double centerX, double centerY, double centerZ)
{
ScaleX = scaleX;
ScaleY = scaleY;
ScaleZ = scaleZ;
CenterX = centerX;
CenterY = centerY;
CenterZ = centerZ;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
//------------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
#region Public Properties
///
/// Retrieves matrix representation of this transform.
///
public override Matrix3D Value
{
get
{
ReadPreamble();
Matrix3D matrix = new Matrix3D();
Append(ref matrix);
return matrix;
}
}
#endregion Public Properties
internal override void Append(ref Matrix3D matrix)
{
Vector3D scale = new Vector3D(_cachedScaleXValue, _cachedScaleYValue, _cachedScaleZValue);
if (_cachedCenterXValue == 0.0 && _cachedCenterYValue == 0.0 && _cachedCenterZValue == 0.0)
{
matrix.Scale(scale);
}
else
{
matrix.ScaleAt(scale, new Point3D(_cachedCenterXValue, _cachedCenterYValue, _cachedCenterZValue));
}
}
}
}
// 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: 3D scale transformation.
//
// See spec at http://avalon/medialayer/Specifications/Avalon3D%20API%20Spec.mht
//
// History:
// 06/04/2003 : t-gregr - Created
//
//---------------------------------------------------------------------------
using System;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Media.Composition;
using MS.Internal;
using System.ComponentModel.Design.Serialization;
using System.Windows.Markup;
namespace System.Windows.Media.Media3D
{
///
/// 3D scale transform.
///
public sealed partial class ScaleTransform3D : AffineTransform3D
{
//-----------------------------------------------------
//
// Constructors
//
//-----------------------------------------------------
#region Constructors
///
/// Default constructor.
///
public ScaleTransform3D() {}
///
/// Constructor.
///
public ScaleTransform3D(Vector3D scale)
{
ScaleX = scale.X;
ScaleY = scale.Y;
ScaleZ = scale.Z;
}
///
/// Constructor.
///
public ScaleTransform3D(double scaleX, double scaleY, double scaleZ)
{
ScaleX = scaleX;
ScaleY = scaleY;
ScaleZ = scaleZ;
}
///
/// Constructor.
///
public ScaleTransform3D(Vector3D scale, Point3D center)
{
ScaleX = scale.X;
ScaleY = scale.Y;
ScaleZ = scale.Z;
CenterX = center.X;
CenterY = center.Y;
CenterZ = center.Z;
}
///
/// Constructor.
///
public ScaleTransform3D(double scaleX, double scaleY, double scaleZ, double centerX, double centerY, double centerZ)
{
ScaleX = scaleX;
ScaleY = scaleY;
ScaleZ = scaleZ;
CenterX = centerX;
CenterY = centerY;
CenterZ = centerZ;
}
#endregion Constructors
//------------------------------------------------------
//
// Public Methods
//
//-----------------------------------------------------
//------------------------------------------------------
//
// Public Properties
//
//------------------------------------------------------
#region Public Properties
///
/// Retrieves matrix representation of this transform.
///
public override Matrix3D Value
{
get
{
ReadPreamble();
Matrix3D matrix = new Matrix3D();
Append(ref matrix);
return matrix;
}
}
#endregion Public Properties
internal override void Append(ref Matrix3D matrix)
{
Vector3D scale = new Vector3D(_cachedScaleXValue, _cachedScaleYValue, _cachedScaleZValue);
if (_cachedCenterXValue == 0.0 && _cachedCenterYValue == 0.0 && _cachedCenterZValue == 0.0)
{
matrix.Scale(scale);
}
else
{
matrix.ScaleAt(scale, new Point3D(_cachedCenterXValue, _cachedCenterYValue, _cachedCenterZValue));
}
}
}
}
// 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
- DomainUpDown.cs
- CurrentChangingEventManager.cs
- ToolStripSplitButton.cs
- WebPartConnection.cs
- EventBuilder.cs
- DirectoryInfo.cs
- XPathExpr.cs
- MetadataPropertyAttribute.cs
- DataRelationCollection.cs
- Models.cs
- FontFamilyIdentifier.cs
- DesignerSerializationManager.cs
- Utils.cs
- OleDbConnectionFactory.cs
- StateRuntime.cs
- WindowsStreamSecurityElement.cs
- EndpointDiscoveryElement.cs
- ExtensibleClassFactory.cs
- BufferedGenericXmlSecurityToken.cs
- SecurityDocument.cs
- SlipBehavior.cs
- DataListCommandEventArgs.cs
- DataSetMappper.cs
- SqlFileStream.cs
- DoWhileDesigner.xaml.cs
- GraphicsContext.cs
- mansign.cs
- RegexStringValidator.cs
- PrefixQName.cs
- Vector3DAnimationBase.cs
- Aes.cs
- SmiContext.cs
- ConnectionInterfaceCollection.cs
- ObjectDataSourceEventArgs.cs
- UdpReplyToBehavior.cs
- ValidationRule.cs
- MulticastNotSupportedException.cs
- OptimizerPatterns.cs
- CompoundFileIOPermission.cs
- EraserBehavior.cs
- WMICapabilities.cs
- Axis.cs
- LocationUpdates.cs
- TypeBuilder.cs
- ElementHost.cs
- MediaElementAutomationPeer.cs
- RefreshEventArgs.cs
- XmlChildNodes.cs
- FrameworkElementFactoryMarkupObject.cs
- DataRecordInternal.cs
- XmlNamespaceDeclarationsAttribute.cs
- SessionStateContainer.cs
- ExpressionNode.cs
- OperationResponse.cs
- RtfToken.cs
- MessageBox.cs
- FixedTextPointer.cs
- HtmlDocument.cs
- FlatButtonAppearance.cs
- XamlTreeBuilderBamlRecordWriter.cs
- PixelFormats.cs
- InputGestureCollection.cs
- FlowDocumentReader.cs
- Rect3D.cs
- ResourceDisplayNameAttribute.cs
- ActivationServices.cs
- OleDbConnectionFactory.cs
- Highlights.cs
- PinnedBufferMemoryStream.cs
- XmlTextWriter.cs
- NativeMethods.cs
- UidPropertyAttribute.cs
- _Connection.cs
- FlowDocumentScrollViewerAutomationPeer.cs
- DataView.cs
- InstanceStore.cs
- Line.cs
- CorrelationQuery.cs
- SqlDataSourceCache.cs
- RowSpanVector.cs
- MessageQueueCriteria.cs
- Itemizer.cs
- SecuritySessionSecurityTokenProvider.cs
- Stacktrace.cs
- EventSetter.cs
- DirectionalLight.cs
- ObjectDataSourceSelectingEventArgs.cs
- ControlBuilder.cs
- ByteAnimationBase.cs
- DataControlButton.cs
- OuterGlowBitmapEffect.cs
- EntityDataSourceColumn.cs
- FixedSOMSemanticBox.cs
- PageHandlerFactory.cs
- TaskExceptionHolder.cs
- SizeKeyFrameCollection.cs
- PrintDocument.cs
- DispatcherOperation.cs
- TextProperties.cs
- DataGridViewCellEventArgs.cs