Code:
/ 4.0 / 4.0 / 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. //---------------------------------------------------------------------------- // // 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
- COM2AboutBoxPropertyDescriptor.cs
- ConfigurationElementCollection.cs
- GridViewUpdatedEventArgs.cs
- TreeNodeBindingCollection.cs
- DataGridViewCellPaintingEventArgs.cs
- XmlWriterSettings.cs
- CatalogZoneBase.cs
- QueryStatement.cs
- WindowsListViewItem.cs
- DataGridViewMethods.cs
- PrincipalPermission.cs
- ImageAttributes.cs
- MappingSource.cs
- Rules.cs
- GridSplitter.cs
- DataGridPagerStyle.cs
- BufferedWebEventProvider.cs
- Switch.cs
- ProtocolsSection.cs
- DataGridViewCell.cs
- TableLayoutPanel.cs
- UrlMappingCollection.cs
- ISO2022Encoding.cs
- ConstraintManager.cs
- WindowsPrincipal.cs
- UrlMappingCollection.cs
- SimpleHandlerFactory.cs
- CroppedBitmap.cs
- EntityDataReader.cs
- ISessionStateStore.cs
- DBConnectionString.cs
- XmlDataSourceView.cs
- XmlSchemaComplexContent.cs
- SupportsEventValidationAttribute.cs
- ConfigXmlComment.cs
- Opcode.cs
- IconEditor.cs
- EventEntry.cs
- WpfXamlLoader.cs
- WindowClosedEventArgs.cs
- CombinedGeometry.cs
- FormParameter.cs
- TrimSurroundingWhitespaceAttribute.cs
- FacetDescription.cs
- XmlSchemaObject.cs
- ScriptingSectionGroup.cs
- ServiceMemoryGates.cs
- CommandExpr.cs
- DynamicILGenerator.cs
- ReaderOutput.cs
- ConfigurationProperty.cs
- StatusBar.cs
- WebZone.cs
- MediaScriptCommandRoutedEventArgs.cs
- DefaultShape.cs
- FontUnit.cs
- CommandLibraryHelper.cs
- CustomAttributeBuilder.cs
- GridProviderWrapper.cs
- FrameworkRichTextComposition.cs
- HostProtectionPermission.cs
- DateBoldEvent.cs
- SqlBuffer.cs
- QueueSurrogate.cs
- CryptoKeySecurity.cs
- SimpleHandlerFactory.cs
- StackOverflowException.cs
- SwitchAttribute.cs
- DependencyPropertyHelper.cs
- DataGridViewDesigner.cs
- OleDbTransaction.cs
- XmlNodeComparer.cs
- AllMembershipCondition.cs
- MergablePropertyAttribute.cs
- BypassElementCollection.cs
- ParameterCollection.cs
- CodeLinePragma.cs
- ToolStripSeparator.cs
- AdornerHitTestResult.cs
- Scheduler.cs
- codemethodreferenceexpression.cs
- ConfigXmlReader.cs
- Oid.cs
- PtsPage.cs
- EncoderParameter.cs
- LocatorGroup.cs
- Range.cs
- ContainsRowNumberChecker.cs
- ScrollChrome.cs
- Transform3DCollection.cs
- TreeWalkHelper.cs
- QuaternionAnimation.cs
- TrackBar.cs
- EntityDataSourceContainerNameConverter.cs
- UnsignedPublishLicense.cs
- InlineCollection.cs
- AttachedPropertyDescriptor.cs
- TextModifierScope.cs
- TempFiles.cs
- CatalogPartDesigner.cs