Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / InertiaTranslationBehavior.cs / 1305600 / InertiaTranslationBehavior.cs
//----------------------------------------------------------------------------
//
// Copyright (C) Microsoft Corporation. All rights reserved.
//
//---------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Input.Manipulations;
namespace System.Windows.Input
{
///
/// Provides information about the inertia behavior.
///
public class InertiaTranslationBehavior
{
///
/// Instantiates a new instance of this class.
///
public InertiaTranslationBehavior()
{
}
///
/// Instantiates a new instance of this class.
///
internal InertiaTranslationBehavior(Vector initialVelocity)
{
_initialVelocity = initialVelocity;
}
///
/// The initial rate of change of position of the element at the start of the inertia phase.
///
public Vector InitialVelocity
{
get { return _initialVelocity; }
set
{
_isInitialVelocitySet = true;
_initialVelocity = value;
}
}
///
/// The desired rate of change of velocity.
///
public double DesiredDeceleration
{
get { return _desiredDeceleration; }
set
{
if (Double.IsInfinity(value) || Double.IsNaN(value))
{
throw new ArgumentOutOfRangeException("value");
}
_isDesiredDecelerationSet = true;
_desiredDeceleration = value;
_isDesiredDisplacementSet = false;
_desiredDisplacement = double.NaN;
}
}
///
/// The desired total change in position.
///
public double DesiredDisplacement
{
get { return _desiredDisplacement; }
set
{
if (Double.IsInfinity(value) || Double.IsNaN(value))
{
throw new ArgumentOutOfRangeException("value");
}
_isDesiredDisplacementSet = true;
_desiredDisplacement = value;
_isDesiredDecelerationSet = false;
_desiredDeceleration = double.NaN;
}
}
internal bool CanUseForInertia()
{
return _isInitialVelocitySet || _isDesiredDecelerationSet || _isDesiredDisplacementSet;
}
internal static void ApplyParameters(InertiaTranslationBehavior behavior, InertiaProcessor2D processor, Vector initialVelocity)
{
if (behavior != null && behavior.CanUseForInertia())
{
InertiaTranslationBehavior2D behavior2D = new InertiaTranslationBehavior2D();
if (behavior._isInitialVelocitySet)
{
behavior2D.InitialVelocityX = (float)behavior._initialVelocity.X;
behavior2D.InitialVelocityY = (float)behavior._initialVelocity.Y;
}
else
{
behavior2D.InitialVelocityX = (float)initialVelocity.X;
behavior2D.InitialVelocityY = (float)initialVelocity.Y;
}
if (behavior._isDesiredDecelerationSet)
{
behavior2D.DesiredDeceleration = (float)behavior._desiredDeceleration;
}
if (behavior._isDesiredDisplacementSet)
{
behavior2D.DesiredDisplacement = (float)behavior._desiredDisplacement;
}
processor.TranslationBehavior = behavior2D;
}
}
private bool _isInitialVelocitySet;
private Vector _initialVelocity = new Vector(double.NaN, double.NaN);
private bool _isDesiredDecelerationSet;
private double _desiredDeceleration = double.NaN;
private bool _isDesiredDisplacementSet;
private double _desiredDisplacement = double.NaN;
}
}
// 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.
//
//---------------------------------------------------------------------------
using System;
using System.Diagnostics;
using System.Windows;
using System.Windows.Input.Manipulations;
namespace System.Windows.Input
{
///
/// Provides information about the inertia behavior.
///
public class InertiaTranslationBehavior
{
///
/// Instantiates a new instance of this class.
///
public InertiaTranslationBehavior()
{
}
///
/// Instantiates a new instance of this class.
///
internal InertiaTranslationBehavior(Vector initialVelocity)
{
_initialVelocity = initialVelocity;
}
///
/// The initial rate of change of position of the element at the start of the inertia phase.
///
public Vector InitialVelocity
{
get { return _initialVelocity; }
set
{
_isInitialVelocitySet = true;
_initialVelocity = value;
}
}
///
/// The desired rate of change of velocity.
///
public double DesiredDeceleration
{
get { return _desiredDeceleration; }
set
{
if (Double.IsInfinity(value) || Double.IsNaN(value))
{
throw new ArgumentOutOfRangeException("value");
}
_isDesiredDecelerationSet = true;
_desiredDeceleration = value;
_isDesiredDisplacementSet = false;
_desiredDisplacement = double.NaN;
}
}
///
/// The desired total change in position.
///
public double DesiredDisplacement
{
get { return _desiredDisplacement; }
set
{
if (Double.IsInfinity(value) || Double.IsNaN(value))
{
throw new ArgumentOutOfRangeException("value");
}
_isDesiredDisplacementSet = true;
_desiredDisplacement = value;
_isDesiredDecelerationSet = false;
_desiredDeceleration = double.NaN;
}
}
internal bool CanUseForInertia()
{
return _isInitialVelocitySet || _isDesiredDecelerationSet || _isDesiredDisplacementSet;
}
internal static void ApplyParameters(InertiaTranslationBehavior behavior, InertiaProcessor2D processor, Vector initialVelocity)
{
if (behavior != null && behavior.CanUseForInertia())
{
InertiaTranslationBehavior2D behavior2D = new InertiaTranslationBehavior2D();
if (behavior._isInitialVelocitySet)
{
behavior2D.InitialVelocityX = (float)behavior._initialVelocity.X;
behavior2D.InitialVelocityY = (float)behavior._initialVelocity.Y;
}
else
{
behavior2D.InitialVelocityX = (float)initialVelocity.X;
behavior2D.InitialVelocityY = (float)initialVelocity.Y;
}
if (behavior._isDesiredDecelerationSet)
{
behavior2D.DesiredDeceleration = (float)behavior._desiredDeceleration;
}
if (behavior._isDesiredDisplacementSet)
{
behavior2D.DesiredDisplacement = (float)behavior._desiredDisplacement;
}
processor.TranslationBehavior = behavior2D;
}
}
private bool _isInitialVelocitySet;
private Vector _initialVelocity = new Vector(double.NaN, double.NaN);
private bool _isDesiredDecelerationSet;
private double _desiredDeceleration = double.NaN;
private bool _isDesiredDisplacementSet;
private double _desiredDisplacement = double.NaN;
}
}
// 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
- ExpressionBinding.cs
- ValidationSettings.cs
- BufferedGenericXmlSecurityToken.cs
- NodeFunctions.cs
- SamlSubjectStatement.cs
- UrlMappingCollection.cs
- Source.cs
- Decoder.cs
- DrawListViewColumnHeaderEventArgs.cs
- CodeMemberProperty.cs
- SqlTypesSchemaImporter.cs
- ClientTargetCollection.cs
- DCSafeHandle.cs
- ArrayConverter.cs
- ComponentRenameEvent.cs
- WebMessageEncodingElement.cs
- Currency.cs
- SoapClientMessage.cs
- MeshGeometry3D.cs
- VisualTarget.cs
- BinHexDecoder.cs
- TextFormatter.cs
- SymmetricAlgorithm.cs
- GroupQuery.cs
- XmlSchemaType.cs
- TextRangeEditLists.cs
- GeneralTransform2DTo3DTo2D.cs
- TextContainer.cs
- FilterRepeater.cs
- Base64Stream.cs
- SqlSupersetValidator.cs
- Keyboard.cs
- XsltConvert.cs
- AuthenticationService.cs
- MutableAssemblyCacheEntry.cs
- DynamicMetaObjectBinder.cs
- oledbmetadatacolumnnames.cs
- ISFTagAndGuidCache.cs
- ValueQuery.cs
- OleDbParameter.cs
- JapaneseCalendar.cs
- WinEventHandler.cs
- ChildrenQuery.cs
- TemplateBindingExtension.cs
- SchemaTypeEmitter.cs
- ReturnValue.cs
- Random.cs
- UnauthorizedAccessException.cs
- ButtonBaseDesigner.cs
- XmlReflectionMember.cs
- ColorInterpolationModeValidation.cs
- Privilege.cs
- Page.cs
- SByteStorage.cs
- CodeDesigner.cs
- RtfToXamlLexer.cs
- SystemWebSectionGroup.cs
- HandleCollector.cs
- NativeMethods.cs
- ProviderMetadata.cs
- CustomLineCap.cs
- BufferAllocator.cs
- SafeNativeMethodsOther.cs
- FrameworkReadOnlyPropertyMetadata.cs
- XhtmlBasicPhoneCallAdapter.cs
- InvokeGenerator.cs
- ToolStripScrollButton.cs
- NumberSubstitution.cs
- FileDialog_Vista_Interop.cs
- WebReferencesBuildProvider.cs
- RegexFCD.cs
- SmtpSection.cs
- TextEditorSelection.cs
- CodeSnippetTypeMember.cs
- QilReference.cs
- StructuredTypeEmitter.cs
- CanExecuteRoutedEventArgs.cs
- FileSecurity.cs
- ComNativeDescriptor.cs
- Base64Encoding.cs
- PartialCachingAttribute.cs
- SchemaNamespaceManager.cs
- ReferencedCollectionType.cs
- ImportCatalogPart.cs
- securitycriticaldataformultiplegetandset.cs
- Timer.cs
- ExecutedRoutedEventArgs.cs
- XmlSchemaSimpleTypeRestriction.cs
- ObjectAnimationBase.cs
- SizeAnimationUsingKeyFrames.cs
- MailHeaderInfo.cs
- HealthMonitoringSection.cs
- GetLastErrorDetailsRequest.cs
- Viewport3DVisual.cs
- AvTraceDetails.cs
- XsltInput.cs
- ListControl.cs
- SynchronizationLockException.cs
- NativeActivityAbortContext.cs
- NavigationProperty.cs