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
- Error.cs
- DataSourceNameHandler.cs
- AssemblyFilter.cs
- StorageComplexPropertyMapping.cs
- MergablePropertyAttribute.cs
- UserPreferenceChangedEventArgs.cs
- AdvancedBindingPropertyDescriptor.cs
- DbConnectionHelper.cs
- ScopedKnownTypes.cs
- User.cs
- CheckBoxBaseAdapter.cs
- CodeGenerator.cs
- XsdDuration.cs
- XmlSchemaGroup.cs
- ReaderWriterLock.cs
- XmlSchema.cs
- PolicyVersion.cs
- Button.cs
- OdbcConnectionFactory.cs
- Stackframe.cs
- HostedHttpRequestAsyncResult.cs
- WinEventWrap.cs
- ToolStripLabel.cs
- LocalizationComments.cs
- SafeLocalMemHandle.cs
- XamlReaderHelper.cs
- HtmlControlDesigner.cs
- ClientBase.cs
- ConnectionManagementElement.cs
- ExtendedProperty.cs
- RegionIterator.cs
- SocketException.cs
- Assert.cs
- EdmType.cs
- StorageMappingFragment.cs
- UpdateException.cs
- KnownBoxes.cs
- ProfileSettingsCollection.cs
- BulletedListEventArgs.cs
- TextEditorTyping.cs
- _SpnDictionary.cs
- ViewEventArgs.cs
- DtdParser.cs
- TdsParserStateObject.cs
- BeginStoryboard.cs
- DataGridViewTextBoxCell.cs
- SocketElement.cs
- AutomationPropertyInfo.cs
- Command.cs
- EqualityComparer.cs
- OrCondition.cs
- DateTimeFormat.cs
- DataGrid.cs
- CodeArrayIndexerExpression.cs
- FileLogRecordStream.cs
- ReadOnlyCollection.cs
- XmlDocumentType.cs
- EmbeddedMailObjectsCollection.cs
- SerializationSectionGroup.cs
- MD5.cs
- CanExecuteRoutedEventArgs.cs
- NameValueCollection.cs
- IApplicationTrustManager.cs
- Attributes.cs
- RubberbandSelector.cs
- ColumnMapProcessor.cs
- DataGridItem.cs
- DecoderFallbackWithFailureFlag.cs
- LazyLoadBehavior.cs
- Timer.cs
- PanelContainerDesigner.cs
- NamedPipeAppDomainProtocolHandler.cs
- dbenumerator.cs
- ProtocolElementCollection.cs
- PermissionListSet.cs
- BuildResultCache.cs
- Context.cs
- PhysicalAddress.cs
- MarkupCompiler.cs
- Range.cs
- ColumnBinding.cs
- DataServiceSaveChangesEventArgs.cs
- PolyLineSegment.cs
- DataComponentMethodGenerator.cs
- CalendarAutoFormatDialog.cs
- CodeLabeledStatement.cs
- DataGridViewColumnHeaderCell.cs
- QilParameter.cs
- RoleGroupCollection.cs
- Literal.cs
- BindingManagerDataErrorEventArgs.cs
- PackageStore.cs
- DirectionalLight.cs
- XmlEncoding.cs
- ValidationSummary.cs
- NativeRightsManagementAPIsStructures.cs
- DbExpressionVisitor.cs
- ImageMap.cs
- InvariantComparer.cs
- ModulesEntry.cs