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
- OleDbFactory.cs
- CircleHotSpot.cs
- CodeConditionStatement.cs
- KeyFrames.cs
- DurationConverter.cs
- NetCodeGroup.cs
- AuthenticationConfig.cs
- Graph.cs
- XappLauncher.cs
- HashUtility.cs
- ReadOnlyDataSource.cs
- AnnouncementEndpointElement.cs
- CompressionTransform.cs
- TraceContextRecord.cs
- CompiledRegexRunner.cs
- FactoryGenerator.cs
- XsdDuration.cs
- LinqDataSourceStatusEventArgs.cs
- AnimationClockResource.cs
- SiteMap.cs
- StrokeNodeOperations2.cs
- EntityFrameworkVersions.cs
- SqlColumnizer.cs
- SequentialWorkflowHeaderFooter.cs
- DataTableMapping.cs
- AndCondition.cs
- HandoffBehavior.cs
- Activator.cs
- ButtonField.cs
- FilterQueryOptionExpression.cs
- ListView.cs
- ControlBuilder.cs
- MergablePropertyAttribute.cs
- ServiceProviders.cs
- MetadataCache.cs
- FastPropertyAccessor.cs
- MimeMapping.cs
- ClientProtocol.cs
- SystemNetworkInterface.cs
- _ListenerAsyncResult.cs
- XmlTextWriter.cs
- WebPartUserCapability.cs
- ClientScriptManager.cs
- EncodingInfo.cs
- TextSerializer.cs
- UserPersonalizationStateInfo.cs
- ActiveXHelper.cs
- ConnectionManagementElement.cs
- SecurityResources.cs
- ReadOnlyHierarchicalDataSource.cs
- WindowsListViewGroup.cs
- PackageRelationshipSelector.cs
- Triplet.cs
- SchemaTableOptionalColumn.cs
- StorageMappingItemCollection.cs
- DataGridDefaultColumnWidthTypeConverter.cs
- TextTreeExtractElementUndoUnit.cs
- RangeValueProviderWrapper.cs
- UniqueConstraint.cs
- GridLengthConverter.cs
- ActivityMarkupSerializer.cs
- NativeObjectSecurity.cs
- Vector3DConverter.cs
- EdmConstants.cs
- XmlStrings.cs
- DateTimeFormatInfoScanner.cs
- _Events.cs
- VerificationAttribute.cs
- AssemblyCache.cs
- FacetDescriptionElement.cs
- Stack.cs
- ProtocolsSection.cs
- DataRelation.cs
- LiteralTextParser.cs
- MsmqMessageProperty.cs
- OdbcError.cs
- VisualCollection.cs
- TabOrder.cs
- __Filters.cs
- HtmlTextBoxAdapter.cs
- EdmProviderManifest.cs
- WindowsRegion.cs
- Vector3DConverter.cs
- BehaviorEditorPart.cs
- CapiSafeHandles.cs
- PostBackOptions.cs
- MdbDataFileEditor.cs
- TickBar.cs
- WCFModelStrings.Designer.cs
- TableAutomationPeer.cs
- WeakEventTable.cs
- CompareInfo.cs
- ServerTooBusyException.cs
- FrameworkElementAutomationPeer.cs
- DateTimeFormatInfoScanner.cs
- CookieParameter.cs
- MetadataCache.cs
- UnsafeNativeMethods.cs
- PropertyEntry.cs
- PagesChangedEventArgs.cs