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
- DateTimeFormatInfoScanner.cs
- ExtensionQuery.cs
- DbParameterCollectionHelper.cs
- httpserverutility.cs
- TextSelection.cs
- SingleConverter.cs
- WebBrowsableAttribute.cs
- PointConverter.cs
- SqlInternalConnection.cs
- Serialization.cs
- DataGridViewLinkCell.cs
- ElementsClipboardData.cs
- DataGridTextBox.cs
- ProfileService.cs
- EmbossBitmapEffect.cs
- WebDescriptionAttribute.cs
- Underline.cs
- QilDataSource.cs
- PointAnimation.cs
- CustomTypeDescriptor.cs
- SystemSounds.cs
- ScriptResourceDefinition.cs
- Rights.cs
- WinCategoryAttribute.cs
- HtmlFormAdapter.cs
- ZoomPercentageConverter.cs
- ExtensionSurface.cs
- SortDescription.cs
- EntityDataSourceEntityTypeFilterConverter.cs
- Column.cs
- CrossAppDomainChannel.cs
- URLAttribute.cs
- NavigationCommands.cs
- InputManager.cs
- LineBreak.cs
- SiteMapPath.cs
- SecUtil.cs
- StrokeCollection.cs
- ChildDocumentBlock.cs
- DataBoundLiteralControl.cs
- WorkerRequest.cs
- UserControl.cs
- ControlPaint.cs
- LinkTarget.cs
- LogPolicy.cs
- RestClientProxyHandler.cs
- ZipIOLocalFileBlock.cs
- CompositionCommandSet.cs
- ExceptionAggregator.cs
- ListComponentEditor.cs
- InfoCardTrace.cs
- TextElementAutomationPeer.cs
- MatrixCamera.cs
- WebBrowserNavigatingEventHandler.cs
- METAHEADER.cs
- HTTPNotFoundHandler.cs
- ZoneIdentityPermission.cs
- InputDevice.cs
- ProtocolsSection.cs
- ParseHttpDate.cs
- ContextMenuAutomationPeer.cs
- MetaModel.cs
- WaitForChangedResult.cs
- ModifiableIteratorCollection.cs
- FilteredSchemaElementLookUpTable.cs
- DataRelation.cs
- DataListItem.cs
- ApplicationBuildProvider.cs
- ResXDataNode.cs
- XPathAncestorIterator.cs
- ComplexBindingPropertiesAttribute.cs
- ListViewInsertEventArgs.cs
- SoapObjectInfo.cs
- WindowsPen.cs
- ExceptionCollection.cs
- ToolstripProfessionalRenderer.cs
- ScrollableControlDesigner.cs
- VirtualizingStackPanel.cs
- ResourceReferenceKeyNotFoundException.cs
- BooleanAnimationBase.cs
- DescendantQuery.cs
- DataGridViewHeaderCell.cs
- SchemaLookupTable.cs
- MonthChangedEventArgs.cs
- HttpHeaderCollection.cs
- SafeNativeMethods.cs
- ToolStripPanelRow.cs
- RangeContentEnumerator.cs
- DefaultTraceListener.cs
- FileSecurity.cs
- DoubleUtil.cs
- PermissionRequestEvidence.cs
- PopupControlService.cs
- FixedSOMImage.cs
- DataGridViewHeaderCell.cs
- UserControlBuildProvider.cs
- NonceToken.cs
- OperatingSystem.cs
- EdmTypeAttribute.cs
- MappingSource.cs