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
- IdleTimeoutMonitor.cs
- Simplifier.cs
- MessageRpc.cs
- DeviceFiltersSection.cs
- SqlVersion.cs
- ContentElement.cs
- BmpBitmapDecoder.cs
- FormViewDeletedEventArgs.cs
- XmlSchemaNotation.cs
- SchemaContext.cs
- EditorPartCollection.cs
- CardSpacePolicyElement.cs
- MultiDataTrigger.cs
- HyperLinkColumn.cs
- Completion.cs
- ToolboxItemFilterAttribute.cs
- TreeNodeConverter.cs
- InputProviderSite.cs
- XmlEventCache.cs
- DiscoveryDocument.cs
- Console.cs
- Enum.cs
- _CommandStream.cs
- RedirectionProxy.cs
- CompareInfo.cs
- WindowsStatusBar.cs
- _NetworkingPerfCounters.cs
- TextEffectCollection.cs
- ApplicationException.cs
- HtmlFormWrapper.cs
- HtmlForm.cs
- ScriptingSectionGroup.cs
- ActiveXContainer.cs
- HostUtils.cs
- AutomationElementCollection.cs
- KeyboardDevice.cs
- MeasureItemEvent.cs
- sqlinternaltransaction.cs
- HtmlTableRowCollection.cs
- ListenerConnectionDemuxer.cs
- InvalidFilterCriteriaException.cs
- Int64.cs
- HtmlPanelAdapter.cs
- ClrProviderManifest.cs
- TogglePatternIdentifiers.cs
- SynchronizedInputProviderWrapper.cs
- RawMouseInputReport.cs
- TextEditor.cs
- Set.cs
- TimeManager.cs
- WebBaseEventKeyComparer.cs
- ValidationRule.cs
- ResourceReferenceExpression.cs
- RuntimeUtils.cs
- XmlBinaryWriter.cs
- InteropAutomationProvider.cs
- ImageMap.cs
- documentation.cs
- FontUnitConverter.cs
- CompositeFontFamily.cs
- SoapAttributeAttribute.cs
- CompositeClientFormatter.cs
- X509WindowsSecurityToken.cs
- AttachedAnnotation.cs
- PeerNearMe.cs
- XamlParser.cs
- RichTextBoxConstants.cs
- columnmapfactory.cs
- QilBinary.cs
- MimeMapping.cs
- VersionedStream.cs
- PolicyValidationException.cs
- baseshape.cs
- Signature.cs
- TCEAdapterGenerator.cs
- XmlNamespaceDeclarationsAttribute.cs
- EventMappingSettings.cs
- filewebrequest.cs
- Rect3DConverter.cs
- WebServiceMethodData.cs
- WSHttpBindingBase.cs
- NonVisualControlAttribute.cs
- OutOfMemoryException.cs
- NeutralResourcesLanguageAttribute.cs
- HostingPreferredMapPath.cs
- EntryWrittenEventArgs.cs
- DataConnectionHelper.cs
- DataConnectionHelper.cs
- DataListItemCollection.cs
- ControlBindingsCollection.cs
- SystemUdpStatistics.cs
- SiteIdentityPermission.cs
- AutoFocusStyle.xaml.cs
- NetStream.cs
- RegexCode.cs
- OperatingSystem.cs
- SocketConnection.cs
- XmlCustomFormatter.cs
- HideDisabledControlAdapter.cs
- QueryTaskGroupState.cs