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
- HostedImpersonationContext.cs
- TextEvent.cs
- ComponentDesigner.cs
- EntityDesignerDataSourceView.cs
- InternalSafeNativeMethods.cs
- SplitterPanel.cs
- ModuleElement.cs
- ListBoxAutomationPeer.cs
- TimeSpanSecondsConverter.cs
- Viewport3DAutomationPeer.cs
- XmlSortKeyAccumulator.cs
- WebPartConnectionsCancelVerb.cs
- DataGridComboBoxColumn.cs
- Pen.cs
- ConvertBinder.cs
- WebServiceHost.cs
- HttpHeaderCollection.cs
- HtmlElement.cs
- DoubleUtil.cs
- WriterOutput.cs
- X509ChainElement.cs
- ListItemConverter.cs
- BidPrivateBase.cs
- HttpMethodConstraint.cs
- ProfileBuildProvider.cs
- NameValuePair.cs
- HttpProfileBase.cs
- AnonymousIdentificationModule.cs
- __Filters.cs
- SAPICategories.cs
- MetadataReference.cs
- MobileSysDescriptionAttribute.cs
- XmlMemberMapping.cs
- ping.cs
- WebPartConnectVerb.cs
- MenuTracker.cs
- SqlExpressionNullability.cs
- CompositionAdorner.cs
- InfoCardAsymmetricCrypto.cs
- Item.cs
- WindowsUpDown.cs
- ShutDownListener.cs
- SqlTypeConverter.cs
- XmlNavigatorStack.cs
- UrlUtility.cs
- StorageEntityTypeMapping.cs
- odbcmetadatacolumnnames.cs
- InspectionWorker.cs
- GlyphRun.cs
- RowBinding.cs
- ComponentRenameEvent.cs
- WindowVisualStateTracker.cs
- BuilderPropertyEntry.cs
- SqlRowUpdatedEvent.cs
- DataControlLinkButton.cs
- SrgsToken.cs
- NetStream.cs
- BufferedStream2.cs
- TemplateBindingExpressionConverter.cs
- followingsibling.cs
- RemoteWebConfigurationHost.cs
- CompilationSection.cs
- XmlBinaryReader.cs
- JoinTreeNode.cs
- CanonicalFontFamilyReference.cs
- ActivityStateRecord.cs
- SelectionPatternIdentifiers.cs
- ListViewGroup.cs
- ExpressionConverter.cs
- HtmlWindowCollection.cs
- PingReply.cs
- LoginUtil.cs
- __Filters.cs
- RuleSettings.cs
- UidManager.cs
- SmiEventStream.cs
- SmiRecordBuffer.cs
- XmlSchemaSubstitutionGroup.cs
- DnsEndPoint.cs
- SByteStorage.cs
- QueryAccessibilityHelpEvent.cs
- PenLineCapValidation.cs
- GridViewCommandEventArgs.cs
- ModuleConfigurationInfo.cs
- CollectionDataContractAttribute.cs
- FormViewDeleteEventArgs.cs
- DbParameterCollectionHelper.cs
- RequestStatusBarUpdateEventArgs.cs
- CurrencyManager.cs
- Font.cs
- HtmlTableRowCollection.cs
- DelegateArgument.cs
- GeneralTransform3D.cs
- ParallelActivityDesigner.cs
- LinqDataSourceStatusEventArgs.cs
- ImportContext.cs
- ArraySortHelper.cs
- SchemaImporter.cs
- ToolbarAUtomationPeer.cs
- WebConfigurationManager.cs