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 / MatrixTransform.cs / 1 / MatrixTransform.cs
//------------------------------------------------------------------------------
// Microsoft Avalon
// Copyright (c) Microsoft Corporation, 2001
//
// File: MatrixTransform.cs
//-----------------------------------------------------------------------------
using System.Windows.Media;
using System;
using System.Windows;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using System.Collections;
using MS.Internal;
using MS.Internal.PresentationCore;
using System.Windows.Media.Animation;
using System.Globalization;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Media.Composition;
using System.Diagnostics;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
///
/// Create an arbitrary matrix transformation.
///
public sealed partial class MatrixTransform : Transform
{
#region Constructors
///
///
///
public MatrixTransform()
{
}
///
/// Create an arbitrary matrix transformation.
///
///Matrix value at position 1,1
///Matrix value at position 1,2
///Matrix value at position 2,1
///Matrix value at position 2,2
///Matrix value at position 3,1
///Matrix value at position 3,2
public MatrixTransform(
double m11,
double m12,
double m21,
double m22,
double offsetX,
double offsetY
)
{
Matrix = new Matrix(m11, m12, m21, m22, offsetX, offsetY);
}
///
/// Create a matrix transformation from constant transform.
///
///The constant matrix transformation.
public MatrixTransform(Matrix matrix)
{
Matrix = matrix;
}
#endregion
///
/// Return the current transformation value.
///
public override Matrix Value
{
get
{
ReadPreamble();
return Matrix;
}
}
#region Internal Methods
///
/// Returns true if transformation matches the identity transform.
///
internal override bool IsIdentity
{
get
{
return Matrix.IsIdentity && CanFreeze;
}
}
internal override bool CanSerializeToString() { return CanFreeze; }
///
/// Creates a string representation of this object based on the format string
/// and IFormatProvider passed in.
/// If the provider is null, the CurrentCulture is used.
/// See the documentation for IFormattable for more information.
///
///
/// A string representation of this object.
///
internal override string ConvertToString(string format, IFormatProvider provider)
{
if (!CanSerializeToString())
{
return base.ConvertToString(format, provider);
}
return ((IFormattable)Matrix).ToString(format, provider);
}
internal override void TransformRect(ref Rect rect)
{
Matrix matrix = Matrix;
MatrixUtil.TransformRect(ref rect, ref matrix);
}
internal override void MultiplyValueByMatrix(ref Matrix result, ref Matrix matrixToMultiplyBy)
{
result = Matrix;
MatrixUtil.MultiplyMatrix(ref result, ref matrixToMultiplyBy);
}
#endregion Internal Methods
}
}
// 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: MatrixTransform.cs
//-----------------------------------------------------------------------------
using System.Windows.Media;
using System;
using System.Windows;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization;
using System.Reflection;
using System.Security;
using System.Security.Permissions;
using System.Collections;
using MS.Internal;
using MS.Internal.PresentationCore;
using System.Windows.Media.Animation;
using System.Globalization;
using System.Text;
using System.Runtime.InteropServices;
using System.Windows.Media.Composition;
using System.Diagnostics;
using SR=MS.Internal.PresentationCore.SR;
using SRID=MS.Internal.PresentationCore.SRID;
namespace System.Windows.Media
{
///
/// Create an arbitrary matrix transformation.
///
public sealed partial class MatrixTransform : Transform
{
#region Constructors
///
///
///
public MatrixTransform()
{
}
///
/// Create an arbitrary matrix transformation.
///
///Matrix value at position 1,1
///Matrix value at position 1,2
///Matrix value at position 2,1
///Matrix value at position 2,2
///Matrix value at position 3,1
///Matrix value at position 3,2
public MatrixTransform(
double m11,
double m12,
double m21,
double m22,
double offsetX,
double offsetY
)
{
Matrix = new Matrix(m11, m12, m21, m22, offsetX, offsetY);
}
///
/// Create a matrix transformation from constant transform.
///
///The constant matrix transformation.
public MatrixTransform(Matrix matrix)
{
Matrix = matrix;
}
#endregion
///
/// Return the current transformation value.
///
public override Matrix Value
{
get
{
ReadPreamble();
return Matrix;
}
}
#region Internal Methods
///
/// Returns true if transformation matches the identity transform.
///
internal override bool IsIdentity
{
get
{
return Matrix.IsIdentity && CanFreeze;
}
}
internal override bool CanSerializeToString() { return CanFreeze; }
///
/// Creates a string representation of this object based on the format string
/// and IFormatProvider passed in.
/// If the provider is null, the CurrentCulture is used.
/// See the documentation for IFormattable for more information.
///
///
/// A string representation of this object.
///
internal override string ConvertToString(string format, IFormatProvider provider)
{
if (!CanSerializeToString())
{
return base.ConvertToString(format, provider);
}
return ((IFormattable)Matrix).ToString(format, provider);
}
internal override void TransformRect(ref Rect rect)
{
Matrix matrix = Matrix;
MatrixUtil.TransformRect(ref rect, ref matrix);
}
internal override void MultiplyValueByMatrix(ref Matrix result, ref Matrix matrixToMultiplyBy)
{
result = Matrix;
MatrixUtil.MultiplyMatrix(ref result, ref matrixToMultiplyBy);
}
#endregion Internal Methods
}
}
// 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
- ProcessThreadCollection.cs
- XmlSchemaSimpleContent.cs
- DataSourceDesigner.cs
- DataSourceCacheDurationConverter.cs
- SecurityCriticalDataForSet.cs
- SvcMapFileLoader.cs
- VisualStyleElement.cs
- StateManagedCollection.cs
- MouseCaptureWithinProperty.cs
- HelpInfo.cs
- SoapBinding.cs
- ReflectionUtil.cs
- PersonalizationEntry.cs
- MailMessage.cs
- XmlSchemaSimpleContentExtension.cs
- ImageClickEventArgs.cs
- WebPartDescriptionCollection.cs
- _IPv6Address.cs
- CommandDevice.cs
- Rotation3D.cs
- AsymmetricKeyExchangeFormatter.cs
- CharacterString.cs
- ASCIIEncoding.cs
- NativeMethods.cs
- SecurityManager.cs
- Int32CollectionConverter.cs
- ResourceManager.cs
- HttpServerVarsCollection.cs
- ContainsRowNumberChecker.cs
- WebPartTracker.cs
- ModifyActivitiesPropertyDescriptor.cs
- Flattener.cs
- DataGridViewTopLeftHeaderCell.cs
- C14NUtil.cs
- InstanceNormalEvent.cs
- FormViewRow.cs
- StructuralCache.cs
- AnonymousIdentificationModule.cs
- XdrBuilder.cs
- ArrayHelper.cs
- X509Certificate.cs
- RepeatButtonAutomationPeer.cs
- RegexWorker.cs
- StorageFunctionMapping.cs
- ErrorProvider.cs
- ServiceOperationWrapper.cs
- InspectionWorker.cs
- SuppressIldasmAttribute.cs
- QueryableFilterUserControl.cs
- Splitter.cs
- PreservationFileWriter.cs
- WindowCollection.cs
- SoundPlayerAction.cs
- ClientTargetSection.cs
- PromptEventArgs.cs
- LessThan.cs
- SimpleType.cs
- ErrorLog.cs
- VolatileResourceManager.cs
- IPAddress.cs
- _FixedSizeReader.cs
- HtmlPhoneCallAdapter.cs
- TogglePatternIdentifiers.cs
- IPAddressCollection.cs
- PieceDirectory.cs
- SplitterCancelEvent.cs
- ToolStripContainerDesigner.cs
- DocumentPropertiesDialog.cs
- MetafileHeader.cs
- RemoteWebConfigurationHost.cs
- QueryRewriter.cs
- SqlDataSourceConfigureFilterForm.cs
- PageCatalogPart.cs
- TripleDESCryptoServiceProvider.cs
- PathParser.cs
- CollectionsUtil.cs
- Cursor.cs
- CustomAttributeBuilder.cs
- ClientBuildManager.cs
- Knowncolors.cs
- EditorZoneBase.cs
- MonthChangedEventArgs.cs
- SchemaExporter.cs
- EditorZone.cs
- XPathNodeIterator.cs
- TypedReference.cs
- DisplayInformation.cs
- ContextBase.cs
- ProvideValueServiceProvider.cs
- InputQueue.cs
- XmlObjectSerializerReadContextComplex.cs
- Light.cs
- EventBuilder.cs
- Resources.Designer.cs
- MSAANativeProvider.cs
- WindowsGraphicsCacheManager.cs
- ToolTip.cs
- GridViewCommandEventArgs.cs
- XhtmlConformanceSection.cs
- FontStyleConverter.cs