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
- SafeThemeHandle.cs
- AdapterDictionary.cs
- CodeTypeDeclarationCollection.cs
- Subtree.cs
- BehaviorService.cs
- HttpDebugHandler.cs
- hresults.cs
- OptionalColumn.cs
- DependencyObjectPropertyDescriptor.cs
- ReachFixedDocumentSerializer.cs
- MarkerProperties.cs
- PathSegmentCollection.cs
- FlowDecisionDesigner.xaml.cs
- HostUtils.cs
- XmlValueConverter.cs
- DeploymentSection.cs
- TypeDescriptor.cs
- CancelEventArgs.cs
- ComponentChangingEvent.cs
- System.Data.OracleClient_BID.cs
- VirtualizedCellInfoCollection.cs
- ReservationNotFoundException.cs
- Size3D.cs
- KeyboardDevice.cs
- TextServicesManager.cs
- ExpressionBindingCollection.cs
- ImmutableDispatchRuntime.cs
- AnnotationComponentChooser.cs
- GetPageNumberCompletedEventArgs.cs
- ReflectionHelper.cs
- GeneralTransform2DTo3D.cs
- ApplicationTrust.cs
- UDPClient.cs
- ExchangeUtilities.cs
- BoundsDrawingContextWalker.cs
- PropertyGeneratedEventArgs.cs
- SafeReversePInvokeHandle.cs
- InputReferenceExpression.cs
- GenericUI.cs
- TaskDesigner.cs
- ValueUnavailableException.cs
- DynamicMetaObjectBinder.cs
- SRGSCompiler.cs
- WebPart.cs
- DiagnosticsConfigurationHandler.cs
- BitmapSource.cs
- Expander.cs
- DebugView.cs
- NetworkInformationPermission.cs
- XmlHelper.cs
- HostedTcpTransportManager.cs
- CommandDevice.cs
- SiteMapDataSourceView.cs
- PersistStreamTypeWrapper.cs
- NodeFunctions.cs
- EventProviderBase.cs
- NetworkAddressChange.cs
- FormClosedEvent.cs
- SafeCryptHandles.cs
- ToolStripLocationCancelEventArgs.cs
- KeyEvent.cs
- LayoutUtils.cs
- SimpleHandlerBuildProvider.cs
- InsufficientMemoryException.cs
- XsltLibrary.cs
- VisualStyleTypesAndProperties.cs
- XmlQueryTypeFactory.cs
- SchemaImporterExtensionElement.cs
- ServiceXNameTypeConverter.cs
- ManualResetEvent.cs
- AutomationAttributeInfo.cs
- Pkcs9Attribute.cs
- _BaseOverlappedAsyncResult.cs
- COM2ColorConverter.cs
- PermissionSetEnumerator.cs
- webproxy.cs
- DataGridViewTextBoxColumn.cs
- AnimationException.cs
- DefaultMemberAttribute.cs
- GeneralTransformCollection.cs
- MemoryPressure.cs
- RoleManagerEventArgs.cs
- AsymmetricKeyExchangeFormatter.cs
- PerformanceCounterLib.cs
- DataGridViewColumnTypePicker.cs
- ISFTagAndGuidCache.cs
- METAHEADER.cs
- CodeArrayIndexerExpression.cs
- Pen.cs
- HebrewNumber.cs
- NumberAction.cs
- Style.cs
- InitializerFacet.cs
- OleAutBinder.cs
- Binding.cs
- EventLogger.cs
- DataTableClearEvent.cs
- CryptoApi.cs
- ViewLoader.cs
- DesignTimeTemplateParser.cs