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
- WebPartCollection.cs
- AssociativeAggregationOperator.cs
- MediaContext.cs
- ExpressionEvaluator.cs
- XmlAttributeProperties.cs
- DropShadowBitmapEffect.cs
- ClassicBorderDecorator.cs
- DefaultTextStore.cs
- DataBinding.cs
- CompilerError.cs
- XmlUTF8TextReader.cs
- MiniModule.cs
- ToolStripPanelRenderEventArgs.cs
- IPAddress.cs
- DoubleCollection.cs
- CellTreeNode.cs
- HTMLTagNameToTypeMapper.cs
- DynamicHyperLink.cs
- RangeBaseAutomationPeer.cs
- EventLogEntry.cs
- Point4DConverter.cs
- MSAAEventDispatcher.cs
- PlanCompilerUtil.cs
- HyperLinkField.cs
- CodeSnippetStatement.cs
- BorderGapMaskConverter.cs
- ListDictionaryInternal.cs
- GlyphInfoList.cs
- EnvironmentPermission.cs
- SQLRoleProvider.cs
- ToolBarButton.cs
- TextUtf8RawTextWriter.cs
- DrawingGroupDrawingContext.cs
- LineVisual.cs
- FilterQueryOptionExpression.cs
- ProfilePropertySettingsCollection.cs
- RootNamespaceAttribute.cs
- TreeViewCancelEvent.cs
- InputLanguageSource.cs
- EmptyEnumerator.cs
- ColumnCollection.cs
- TextEvent.cs
- NodeInfo.cs
- XmlDataSourceView.cs
- FileIOPermission.cs
- FormatVersion.cs
- sqlinternaltransaction.cs
- SecurityRuntime.cs
- WizardStepCollectionEditor.cs
- SynchronizedMessageSource.cs
- ColumnMapVisitor.cs
- AutomationEvent.cs
- TypeInfo.cs
- SiteMapPath.cs
- DrawTreeNodeEventArgs.cs
- SystemFonts.cs
- WebPartManagerInternals.cs
- RectangleF.cs
- NetworkInterface.cs
- NameValueCollection.cs
- ProcessModule.cs
- Preprocessor.cs
- HtmlAnchor.cs
- CompiledAction.cs
- ResponseStream.cs
- BidPrivateBase.cs
- HandleCollector.cs
- Misc.cs
- SafeRegistryKey.cs
- EtwTrackingParticipant.cs
- WebServiceFault.cs
- InstanceNotFoundException.cs
- SubtreeProcessor.cs
- Attributes.cs
- StructuredProperty.cs
- SafeNativeMethods.cs
- ConnectionsZone.cs
- RemotingSurrogateSelector.cs
- NativeMethods.cs
- MergeFilterQuery.cs
- VBCodeProvider.cs
- Int64AnimationBase.cs
- DeviceOverridableAttribute.cs
- KnownTypesHelper.cs
- XamlDesignerSerializationManager.cs
- CalculatedColumn.cs
- JpegBitmapEncoder.cs
- ServiceEndpointElement.cs
- LocatorGroup.cs
- PageBreakRecord.cs
- URL.cs
- PositiveTimeSpanValidator.cs
- WsdlServiceChannelBuilder.cs
- ProtectedConfigurationSection.cs
- FormClosingEvent.cs
- WebServicesInteroperability.cs
- XmlWriter.cs
- Variable.cs
- BooleanConverter.cs
- AtomServiceDocumentSerializer.cs