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
- MailDefinition.cs
- RoleGroup.cs
- SoapIncludeAttribute.cs
- XPathException.cs
- LineUtil.cs
- XmlSchema.cs
- ModelPropertyCollectionImpl.cs
- ValidationSummary.cs
- FileLogRecordStream.cs
- SqlBulkCopy.cs
- CodePropertyReferenceExpression.cs
- PerfProviderCollection.cs
- FlowDocumentPageViewerAutomationPeer.cs
- WebSysDescriptionAttribute.cs
- QuadraticEase.cs
- SqlInfoMessageEvent.cs
- StylusPlugin.cs
- SiteMapNodeCollection.cs
- ChangeProcessor.cs
- _ListenerResponseStream.cs
- AsyncOperation.cs
- EUCJPEncoding.cs
- WebBaseEventKeyComparer.cs
- SecurityKeyUsage.cs
- TrustLevel.cs
- Button.cs
- ChannelDemuxer.cs
- Bitmap.cs
- XpsFixedDocumentReaderWriter.cs
- HuffModule.cs
- SplineKeyFrames.cs
- Debug.cs
- Decoder.cs
- EmptyEnumerator.cs
- TreeViewItemAutomationPeer.cs
- CustomGrammar.cs
- MailAddressCollection.cs
- PropertyInformationCollection.cs
- OracleColumn.cs
- XmlSchemaSubstitutionGroup.cs
- QilCloneVisitor.cs
- PointAnimationUsingPath.cs
- followingquery.cs
- MethodBuilderInstantiation.cs
- SQLBytes.cs
- WpfXamlMember.cs
- PrintController.cs
- Color.cs
- Activator.cs
- XMLSchema.cs
- InstanceDataCollection.cs
- CodeTypeOfExpression.cs
- SqlSupersetValidator.cs
- DependencyPropertyKey.cs
- InfoCardClaim.cs
- Mappings.cs
- DataGridViewTextBoxColumn.cs
- MeshGeometry3D.cs
- TraceHandler.cs
- ContentControl.cs
- Token.cs
- TypeDescriptorContext.cs
- CheckPair.cs
- ParamArrayAttribute.cs
- Array.cs
- Window.cs
- ProfileService.cs
- PrintingPermission.cs
- AlternateView.cs
- DomNameTable.cs
- RepeatInfo.cs
- ZoneButton.cs
- SchemaImporter.cs
- InplaceBitmapMetadataWriter.cs
- Event.cs
- ListBoxItemAutomationPeer.cs
- StringUtil.cs
- DurableInstanceProvider.cs
- BrowserCapabilitiesFactory.cs
- ConfigurationStrings.cs
- TextEffect.cs
- Quaternion.cs
- RoutedPropertyChangedEventArgs.cs
- TextRunProperties.cs
- HandlerMappingMemo.cs
- WindowsTooltip.cs
- DocumentViewerHelper.cs
- BasicBrowserDialog.cs
- GlyphRunDrawing.cs
- SHA256.cs
- Selection.cs
- ToolStrip.cs
- XmlKeywords.cs
- InfoCardKeyedHashAlgorithm.cs
- NumericExpr.cs
- TemplateKeyConverter.cs
- TypeListConverter.cs
- BlockExpression.cs
- UpdateException.cs
- ParameterCollection.cs