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
- MenuAdapter.cs
- OverflowException.cs
- EnumValidator.cs
- GridViewCancelEditEventArgs.cs
- XmlReaderSettings.cs
- RegistrySecurity.cs
- ImageClickEventArgs.cs
- PlatformNotSupportedException.cs
- MenuEventArgs.cs
- WebPartUserCapability.cs
- EraserBehavior.cs
- UndoEngine.cs
- TextCompositionEventArgs.cs
- BlurBitmapEffect.cs
- StrokeCollection2.cs
- DataGridViewCellStyleBuilderDialog.cs
- SessionEndingEventArgs.cs
- InvalidWMPVersionException.cs
- MailWebEventProvider.cs
- ObjectFullSpanRewriter.cs
- MutexSecurity.cs
- WasNotInstalledException.cs
- Font.cs
- SQLMoneyStorage.cs
- IfJoinedCondition.cs
- XmlCollation.cs
- BamlWriter.cs
- Processor.cs
- ArgumentOutOfRangeException.cs
- HighlightOverlayGlyph.cs
- InstancePersistence.cs
- DataStreamFromComStream.cs
- TextHidden.cs
- SerialErrors.cs
- MenuItemStyleCollection.cs
- DesignBindingPicker.cs
- WebBrowserBase.cs
- ToolStripOverflowButton.cs
- InfiniteIntConverter.cs
- ObjectIDGenerator.cs
- sitestring.cs
- Ipv6Element.cs
- ListBindingHelper.cs
- AlternateView.cs
- Setter.cs
- DbSetClause.cs
- ObjectIDGenerator.cs
- Image.cs
- ZipIOCentralDirectoryFileHeader.cs
- EastAsianLunisolarCalendar.cs
- LinkedList.cs
- ControlIdConverter.cs
- ReturnValue.cs
- PackageProperties.cs
- UidManager.cs
- DesignerActionGlyph.cs
- Vector3DValueSerializer.cs
- FunctionParameter.cs
- PopupRoot.cs
- ValidationSummary.cs
- SelectiveScrollingGrid.cs
- XmlSerializerNamespaces.cs
- GenericXmlSecurityToken.cs
- RunInstallerAttribute.cs
- SByte.cs
- ElementNotAvailableException.cs
- AliasExpr.cs
- JavaScriptString.cs
- ConnectionProviderAttribute.cs
- FrugalList.cs
- XmlSequenceWriter.cs
- PinnedBufferMemoryStream.cs
- WindowsListView.cs
- TriggerBase.cs
- TypeInfo.cs
- CodeIdentifier.cs
- PageSetupDialog.cs
- NativeMethods.cs
- ISAPIRuntime.cs
- CaseStatementSlot.cs
- AnchoredBlock.cs
- Stack.cs
- TextPointerBase.cs
- StubHelpers.cs
- ToolStripDropDownMenu.cs
- CannotUnloadAppDomainException.cs
- SQlBooleanStorage.cs
- StreamSecurityUpgradeInitiatorAsyncResult.cs
- ScrollableControl.cs
- DataGridCellsPanel.cs
- ProcessModule.cs
- DefaultPropertiesToSend.cs
- MultiView.cs
- loginstatus.cs
- SiteMapNodeItem.cs
- WebConvert.cs
- assemblycache.cs
- ImageDrawing.cs
- ConstNode.cs
- SID.cs