Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / MatrixTransform.cs / 1305600 / 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
- SQLMoney.cs
- AutomationIdentifierGuids.cs
- ComplusEndpointConfigContainer.cs
- ReferenceEqualityComparer.cs
- KeyPressEvent.cs
- BridgeDataReader.cs
- CodeRemoveEventStatement.cs
- SudsCommon.cs
- SelectingProviderEventArgs.cs
- IxmlLineInfo.cs
- CatalogPartChrome.cs
- SafeProcessHandle.cs
- StrokeIntersection.cs
- Menu.cs
- Ipv6Element.cs
- InvalidComObjectException.cs
- DataFormat.cs
- AsyncPostBackErrorEventArgs.cs
- BinaryObjectReader.cs
- XmlIncludeAttribute.cs
- TemplateContainer.cs
- IsolatedStorageFile.cs
- mansign.cs
- UseAttributeSetsAction.cs
- LinqDataSourceValidationException.cs
- DbParameterHelper.cs
- FormViewInsertEventArgs.cs
- ChannelSettingsElement.cs
- EntityModelBuildProvider.cs
- ModuleBuilder.cs
- TextBoxBase.cs
- AsnEncodedData.cs
- DelegateOutArgument.cs
- ColorPalette.cs
- TimersDescriptionAttribute.cs
- PartBasedPackageProperties.cs
- OdbcInfoMessageEvent.cs
- PaperSize.cs
- StaticResourceExtension.cs
- Subset.cs
- VirtualPath.cs
- UpdateManifestForBrowserApplication.cs
- invalidudtexception.cs
- querybuilder.cs
- DesigntimeLicenseContext.cs
- ReferenceCountedObject.cs
- ProcessStartInfo.cs
- TargetException.cs
- SimpleType.cs
- Menu.cs
- XmlCustomFormatter.cs
- AvTrace.cs
- Metadata.cs
- DragAssistanceManager.cs
- MaskedTextProvider.cs
- StylusPointPropertyInfoDefaults.cs
- ArrayConverter.cs
- RadioButtonRenderer.cs
- DocumentSequence.cs
- ConnectionManagementSection.cs
- GroupStyle.cs
- CollectionViewGroupInternal.cs
- ControlBindingsCollection.cs
- CodeDirectionExpression.cs
- IsolatedStorageFileStream.cs
- UInt32.cs
- DetailsViewModeEventArgs.cs
- SafeBitVector32.cs
- Property.cs
- MiniModule.cs
- TabControlDesigner.cs
- odbcmetadatacollectionnames.cs
- TextBoxAutomationPeer.cs
- LocatorBase.cs
- XsltLibrary.cs
- CacheDependency.cs
- StorageInfo.cs
- TraceXPathNavigator.cs
- TcpAppDomainProtocolHandler.cs
- FrameworkContentElementAutomationPeer.cs
- DocumentPageViewAutomationPeer.cs
- BlockUIContainer.cs
- AgileSafeNativeMemoryHandle.cs
- CookielessHelper.cs
- SqlDataSourceCustomCommandEditor.cs
- DesignRelationCollection.cs
- ZeroOpNode.cs
- DesignerExtenders.cs
- Rotation3D.cs
- DataRowView.cs
- UnauthorizedWebPart.cs
- GenericTextProperties.cs
- WaitHandleCannotBeOpenedException.cs
- PenCursorManager.cs
- LambdaValue.cs
- ObjectPropertyMapping.cs
- BookmarkUndoUnit.cs
- TemplatedWizardStep.cs
- MessageBox.cs
- CatalogZoneBase.cs