Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Input / InertiaRotationBehavior.cs / 1305600 / InertiaRotationBehavior.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 InertiaRotationBehavior
{
///
/// Instantiates a new instance of this class.
///
public InertiaRotationBehavior()
{
}
///
/// Instantiates a new instance of this class.
///
internal InertiaRotationBehavior(double initialVelocity)
{
_initialVelocity = initialVelocity;
}
///
/// The initial rate of angular change of the element at the start of the inertia phase in degrees/ms.
///
public double InitialVelocity
{
get { return _initialVelocity; }
set
{
_isInitialVelocitySet = true;
_initialVelocity = value;
}
}
///
/// The desired rate of change of velocity in degrees/ms^2.
///
public double DesiredDeceleration
{
get { return _desiredDeceleration; }
set
{
if (Double.IsInfinity(value) || Double.IsNaN(value))
{
throw new ArgumentOutOfRangeException("value");
}
_isDesiredDecelerationSet = true;
_desiredDeceleration = value;
_isDesiredRotationSet = false;
_desiredRotation = double.NaN;
}
}
///
/// The desired total change in angle in degrees.
///
public double DesiredRotation
{
get { return _desiredRotation; }
set
{
if (Double.IsInfinity(value) || Double.IsNaN(value))
{
throw new ArgumentOutOfRangeException("value");
}
_isDesiredRotationSet = true;
_desiredRotation = value;
_isDesiredDecelerationSet = false;
_desiredDeceleration = double.NaN;
}
}
internal bool CanUseForInertia()
{
return _isInitialVelocitySet || _isDesiredDecelerationSet || _isDesiredRotationSet;
}
internal static void ApplyParameters(InertiaRotationBehavior behavior, InertiaProcessor2D processor, double initialVelocity)
{
if (behavior != null && behavior.CanUseForInertia())
{
InertiaRotationBehavior2D behavior2D = new InertiaRotationBehavior2D();
if (behavior._isInitialVelocitySet)
{
behavior2D.InitialVelocity = (float)AngleUtil.DegreesToRadians(behavior._initialVelocity);
}
else
{
behavior2D.InitialVelocity = (float)AngleUtil.DegreesToRadians(initialVelocity);
}
if (behavior._isDesiredDecelerationSet)
{
behavior2D.DesiredDeceleration = (float)AngleUtil.DegreesToRadians(behavior._desiredDeceleration);
}
if (behavior._isDesiredRotationSet)
{
behavior2D.DesiredRotation = (float)AngleUtil.DegreesToRadians(behavior._desiredRotation);
}
processor.RotationBehavior = behavior2D;
}
}
private bool _isInitialVelocitySet;
private double _initialVelocity = double.NaN;
private bool _isDesiredDecelerationSet;
private double _desiredDeceleration = double.NaN;
private bool _isDesiredRotationSet;
private double _desiredRotation = 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
- CollectionEditorDialog.cs
- QilExpression.cs
- DbTypeMap.cs
- DelegateBodyWriter.cs
- ToggleButtonAutomationPeer.cs
- CapabilitiesSection.cs
- BindingCompleteEventArgs.cs
- FileDialogCustomPlacesCollection.cs
- Boolean.cs
- SizeChangedEventArgs.cs
- ColumnCollection.cs
- OleDbMetaDataFactory.cs
- FileAccessException.cs
- _ConnectStream.cs
- Version.cs
- handlecollector.cs
- TemplateKey.cs
- CellTreeNodeVisitors.cs
- FileUtil.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- MaskedTextBox.cs
- XmlValidatingReader.cs
- UnsafeNativeMethods.cs
- _IPv6Address.cs
- SqlConnectionManager.cs
- HashSetDebugView.cs
- _UncName.cs
- LicenseException.cs
- DateTimeConstantAttribute.cs
- SeekStoryboard.cs
- StringAttributeCollection.cs
- ContextStaticAttribute.cs
- HtmlControl.cs
- EventLog.cs
- WindowsSpinner.cs
- BindingExpressionBase.cs
- DATA_BLOB.cs
- WindowsListViewGroupHelper.cs
- BooleanFunctions.cs
- UnmanagedHandle.cs
- TdsParameterSetter.cs
- BmpBitmapEncoder.cs
- RoleService.cs
- PropertyInfoSet.cs
- EntityDataSourceChangedEventArgs.cs
- MimeMapping.cs
- ModuleBuilderData.cs
- DataGridTextColumn.cs
- TargetParameterCountException.cs
- SqlDataSourceConnectionPanel.cs
- _Events.cs
- ObjectQueryExecutionPlan.cs
- SuppressIldasmAttribute.cs
- ResourceContainer.cs
- HttpCapabilitiesEvaluator.cs
- XmlSchemaAttribute.cs
- BaseValidator.cs
- WebBrowserProgressChangedEventHandler.cs
- SqlError.cs
- DeobfuscatingStream.cs
- Pkcs7Recipient.cs
- SqlDataSourceFilteringEventArgs.cs
- HTTPRemotingHandler.cs
- KerberosTokenFactoryCredential.cs
- SerTrace.cs
- RadioButtonRenderer.cs
- DataGridViewMethods.cs
- DataTableNameHandler.cs
- BookmarkList.cs
- DefaultValueConverter.cs
- BinaryUtilClasses.cs
- SelectedDatesCollection.cs
- GeneralTransform2DTo3DTo2D.cs
- BehaviorEditorPart.cs
- iisPickupDirectory.cs
- SignedXmlDebugLog.cs
- HtmlAnchor.cs
- TreeNode.cs
- AsyncResult.cs
- TraceData.cs
- LinqDataSourceDeleteEventArgs.cs
- XmlSerializationWriter.cs
- TraceContext.cs
- FunctionUpdateCommand.cs
- CodeMemberMethod.cs
- ChildrenQuery.cs
- FormatConvertedBitmap.cs
- CodeObjectCreateExpression.cs
- DoubleStorage.cs
- Utils.cs
- InstanceCompleteException.cs
- ChangesetResponse.cs
- ISessionStateStore.cs
- ResourceContainer.cs
- connectionpool.cs
- DataColumnPropertyDescriptor.cs
- Exceptions.cs
- Utils.cs
- IssuedTokenClientBehaviorsElement.cs
- WindowsScrollBarBits.cs