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
- DbDataAdapter.cs
- ArrayList.cs
- SymbolTable.cs
- XPathPatternBuilder.cs
- StyleCollectionEditor.cs
- ValueConversionAttribute.cs
- SiteMapPath.cs
- ExpandSegmentCollection.cs
- TextElementCollection.cs
- WebReferencesBuildProvider.cs
- AutomationElementIdentifiers.cs
- ProgressBarBrushConverter.cs
- DiagnosticStrings.cs
- UnsafeMethods.cs
- ResizeGrip.cs
- SharedConnectionInfo.cs
- TargetConverter.cs
- AutoGeneratedFieldProperties.cs
- ChtmlTextWriter.cs
- NamespaceQuery.cs
- ScrollItemProviderWrapper.cs
- SqlRemoveConstantOrderBy.cs
- FocusTracker.cs
- MemberRelationshipService.cs
- HtmlEmptyTagControlBuilder.cs
- PointAnimationUsingKeyFrames.cs
- BufferedStream.cs
- Events.cs
- PriorityRange.cs
- DaylightTime.cs
- ConnectionOrientedTransportChannelListener.cs
- NativeWindow.cs
- DataGridViewCellFormattingEventArgs.cs
- AssociationTypeEmitter.cs
- CodeThrowExceptionStatement.cs
- ToolStripPanelRow.cs
- Pool.cs
- PrintPreviewDialog.cs
- Selector.cs
- MsmqMessageSerializationFormat.cs
- OleAutBinder.cs
- CodePrimitiveExpression.cs
- WeakEventTable.cs
- DBNull.cs
- CodeAssignStatement.cs
- Stacktrace.cs
- Flattener.cs
- TaskHelper.cs
- RenamedEventArgs.cs
- WhitespaceRuleReader.cs
- PostBackTrigger.cs
- DataQuery.cs
- AnnotationResource.cs
- DynamicMethod.cs
- AnchorEditor.cs
- CheckedListBox.cs
- MethodCallConverter.cs
- RowType.cs
- UnsafeNativeMethodsTablet.cs
- DesignerTransaction.cs
- ListViewCommandEventArgs.cs
- TraceHwndHost.cs
- Fonts.cs
- CellQuery.cs
- XmlSchemaGroupRef.cs
- DataGridViewSelectedCellCollection.cs
- CompilerInfo.cs
- BinaryNode.cs
- EncryptedKey.cs
- SqlTrackingWorkflowInstance.cs
- DateTimeParse.cs
- DomNameTable.cs
- GifBitmapDecoder.cs
- RegexGroupCollection.cs
- TextEditorContextMenu.cs
- SendKeys.cs
- DataServiceException.cs
- ReadOnlyHierarchicalDataSource.cs
- ListViewUpdateEventArgs.cs
- DropDownButton.cs
- DefaultCommandExtensionCallback.cs
- FieldTemplateUserControl.cs
- WebMessageEncodingBindingElement.cs
- LineInfo.cs
- BitmapDecoder.cs
- ImageSourceTypeConverter.cs
- SimpleExpression.cs
- WebBaseEventKeyComparer.cs
- AsyncWaitHandle.cs
- updatecommandorderer.cs
- FormsAuthentication.cs
- SessionSwitchEventArgs.cs
- Input.cs
- DataGridDesigner.cs
- securitycriticaldata.cs
- BitConverter.cs
- BindingContext.cs
- SecurityChannelListener.cs
- SettingsPropertyNotFoundException.cs
- DetailsViewCommandEventArgs.cs