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
- ZipIOLocalFileBlock.cs
- RowToParametersTransformer.cs
- NonClientArea.cs
- UnsafeCollabNativeMethods.cs
- LazyTextWriterCreator.cs
- AmbientValueAttribute.cs
- FixUp.cs
- DropDownList.cs
- TemplateEditingService.cs
- KeyedHashAlgorithm.cs
- WebDisplayNameAttribute.cs
- validationstate.cs
- CompositeActivityTypeDescriptor.cs
- ByteStream.cs
- XhtmlTextWriter.cs
- HebrewNumber.cs
- DbConnectionPoolGroupProviderInfo.cs
- GridSplitterAutomationPeer.cs
- XamlTreeBuilder.cs
- StatusBarPanel.cs
- TextContainerChangedEventArgs.cs
- TagPrefixCollection.cs
- BindingList.cs
- DataGridColumnHeader.cs
- XhtmlBasicFormAdapter.cs
- DesignerGenericWebPart.cs
- CultureInfo.cs
- BulletDecorator.cs
- SHA512CryptoServiceProvider.cs
- DataContractSerializerServiceBehavior.cs
- NavigationPropertyEmitter.cs
- SQLResource.cs
- EventManager.cs
- TableHeaderCell.cs
- RenderingEventArgs.cs
- ValidatorCompatibilityHelper.cs
- SqlCommandSet.cs
- SectionVisual.cs
- BmpBitmapEncoder.cs
- LayoutInformation.cs
- ViewEvent.cs
- FileReader.cs
- WindowInteropHelper.cs
- OdbcReferenceCollection.cs
- ExpanderAutomationPeer.cs
- SpinLock.cs
- ForwardPositionQuery.cs
- XmlSchemaSimpleContentRestriction.cs
- AutomationPeer.cs
- OrderPreservingMergeHelper.cs
- InlineObject.cs
- DrawingVisual.cs
- DBCommand.cs
- Convert.cs
- _Rfc2616CacheValidators.cs
- SizeValueSerializer.cs
- UpdatePanelTrigger.cs
- Border.cs
- ToolStripItem.cs
- RelatedImageListAttribute.cs
- ApplicationFileParser.cs
- ByteStreamMessage.cs
- SizeFConverter.cs
- DispatchWrapper.cs
- PeerCollaboration.cs
- Typography.cs
- RegisteredArrayDeclaration.cs
- IEnumerable.cs
- UserControlAutomationPeer.cs
- WindowsListViewItemCheckBox.cs
- CustomAttributeSerializer.cs
- InputLangChangeEvent.cs
- XmlElementList.cs
- ThreadPool.cs
- KnownBoxes.cs
- DataTableTypeConverter.cs
- XPathNavigator.cs
- PartialList.cs
- MetadataItemEmitter.cs
- Error.cs
- Keyboard.cs
- HandoffBehavior.cs
- SqlRecordBuffer.cs
- EditingCoordinator.cs
- VisualCollection.cs
- SourceFileInfo.cs
- ServiceOperation.cs
- Int64Storage.cs
- EntityDataSourceContainerNameItem.cs
- Win32KeyboardDevice.cs
- ChtmlImageAdapter.cs
- SecurityKeyIdentifier.cs
- HostExecutionContextManager.cs
- BoolLiteral.cs
- CatalogPartCollection.cs
- EncryptedType.cs
- MediaContextNotificationWindow.cs
- SqlParameterizer.cs
- X509ChainPolicy.cs
- SoapSchemaImporter.cs