Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Animation / ElasticEase.cs / 1305600 / ElasticEase.cs
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation, 2008
//
// File: ElasticEase.cs
//-----------------------------------------------------------------------------
using MS.Internal;
namespace System.Windows.Media.Animation
{
///
/// This class implements an easing function that gives an elastic/springy curve
///
public class ElasticEase : EasingFunctionBase
{
public ElasticEase()
{
}
///
/// Bounces Property
///
public static readonly DependencyProperty OscillationsProperty =
DependencyProperty.Register(
"Oscillations",
typeof(int),
typeof(ElasticEase),
new PropertyMetadata(3));
///
/// Specifies the number of oscillations
///
public int Oscillations
{
get
{
return (int)GetValue(OscillationsProperty);
}
set
{
SetValueInternal(OscillationsProperty, value);
}
}
///
/// Springiness Property
///
public static readonly DependencyProperty SpringinessProperty =
DependencyProperty.Register(
"Springiness",
typeof(double),
typeof(ElasticEase),
new PropertyMetadata(3.0));
///
/// Specifies the amount of springiness
///
public double Springiness
{
get
{
return (double)GetValue(SpringinessProperty);
}
set
{
SetValueInternal(SpringinessProperty, value);
}
}
protected override double EaseInCore(double normalizedTime)
{
double oscillations = Math.Max(0.0, (double)Oscillations);
double springiness = Math.Max(0.0, Springiness);
double expo;
if (DoubleUtil.IsZero(springiness))
{
expo = normalizedTime;
}
else
{
expo = (Math.Exp(springiness * normalizedTime) - 1.0) / (Math.Exp(springiness) - 1.0);
}
return expo * (Math.Sin((Math.PI * 2.0 * oscillations + Math.PI * 0.5) * normalizedTime));
}
protected override Freezable CreateInstanceCore()
{
return new ElasticEase();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------
// Copyright (c) Microsoft Corporation, 2008
//
// File: ElasticEase.cs
//-----------------------------------------------------------------------------
using MS.Internal;
namespace System.Windows.Media.Animation
{
///
/// This class implements an easing function that gives an elastic/springy curve
///
public class ElasticEase : EasingFunctionBase
{
public ElasticEase()
{
}
///
/// Bounces Property
///
public static readonly DependencyProperty OscillationsProperty =
DependencyProperty.Register(
"Oscillations",
typeof(int),
typeof(ElasticEase),
new PropertyMetadata(3));
///
/// Specifies the number of oscillations
///
public int Oscillations
{
get
{
return (int)GetValue(OscillationsProperty);
}
set
{
SetValueInternal(OscillationsProperty, value);
}
}
///
/// Springiness Property
///
public static readonly DependencyProperty SpringinessProperty =
DependencyProperty.Register(
"Springiness",
typeof(double),
typeof(ElasticEase),
new PropertyMetadata(3.0));
///
/// Specifies the amount of springiness
///
public double Springiness
{
get
{
return (double)GetValue(SpringinessProperty);
}
set
{
SetValueInternal(SpringinessProperty, value);
}
}
protected override double EaseInCore(double normalizedTime)
{
double oscillations = Math.Max(0.0, (double)Oscillations);
double springiness = Math.Max(0.0, Springiness);
double expo;
if (DoubleUtil.IsZero(springiness))
{
expo = normalizedTime;
}
else
{
expo = (Math.Exp(springiness * normalizedTime) - 1.0) / (Math.Exp(springiness) - 1.0);
}
return expo * (Math.Sin((Math.PI * 2.0 * oscillations + Math.PI * 0.5) * normalizedTime));
}
protected override Freezable CreateInstanceCore()
{
return new ElasticEase();
}
}
}
// 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
- ClientConvert.cs
- ErrorHandler.cs
- ResXDataNode.cs
- X509Extension.cs
- KeyInterop.cs
- DataListItemEventArgs.cs
- DeferredTextReference.cs
- DataControlPagerLinkButton.cs
- Rule.cs
- TextModifier.cs
- WorkflowInstanceProvider.cs
- InputBinding.cs
- RunInstallerAttribute.cs
- VarInfo.cs
- ToolboxComponentsCreatedEventArgs.cs
- HMACSHA384.cs
- DebugView.cs
- XXXOnTypeBuilderInstantiation.cs
- RoutedUICommand.cs
- DBSqlParser.cs
- Globals.cs
- CachedTypeface.cs
- Logging.cs
- Command.cs
- OciHandle.cs
- RealizationDrawingContextWalker.cs
- DetailsView.cs
- FunctionImportElement.cs
- TimeSpanMinutesConverter.cs
- CollectionEditor.cs
- InvalidateEvent.cs
- HttpProfileGroupBase.cs
- Image.cs
- Condition.cs
- XsltContext.cs
- InputChannelAcceptor.cs
- CodeTypeParameter.cs
- Converter.cs
- PropertyValueChangedEvent.cs
- RuleSettingsCollection.cs
- ByteFacetDescriptionElement.cs
- DateTimeEditor.cs
- PartBasedPackageProperties.cs
- Message.cs
- ProtocolsConfiguration.cs
- RTLAwareMessageBox.cs
- SqlUnionizer.cs
- UInt16.cs
- DataGridViewAddColumnDialog.cs
- PresentationSource.cs
- MeasurementDCInfo.cs
- EventPropertyMap.cs
- TreePrinter.cs
- QilInvokeLateBound.cs
- SendMessageRecord.cs
- MinimizableAttributeTypeConverter.cs
- XmlHierarchicalEnumerable.cs
- Certificate.cs
- FaultBookmark.cs
- SrgsDocumentParser.cs
- Roles.cs
- XPathNode.cs
- BindableTemplateBuilder.cs
- TableLayoutPanelCellPosition.cs
- ContextProperty.cs
- WebPartRestoreVerb.cs
- DataRowExtensions.cs
- BehaviorEditorPart.cs
- WmlLinkAdapter.cs
- BinaryReader.cs
- ServerProtocol.cs
- ParserHooks.cs
- WebColorConverter.cs
- GeneratedCodeAttribute.cs
- StyleHelper.cs
- ProfileGroupSettings.cs
- InfoCardAsymmetricCrypto.cs
- OpenTypeLayoutCache.cs
- DictionaryKeyPropertyAttribute.cs
- LazyLoadBehavior.cs
- KeyInterop.cs
- TableRowGroup.cs
- DbProviderServices.cs
- TextSpan.cs
- HitTestDrawingContextWalker.cs
- SchemaEntity.cs
- TableCellCollection.cs
- SqlCommandBuilder.cs
- SqlDataSourceCache.cs
- GeneralTransform3D.cs
- ScriptServiceAttribute.cs
- DataBindingCollectionEditor.cs
- ScrollData.cs
- PriorityQueue.cs
- CatalogPart.cs
- DesignerActionItem.cs
- CanExpandCollapseAllConverter.cs
- ContextMenuService.cs
- SystemIPInterfaceStatistics.cs
- _RegBlobWebProxyDataBuilder.cs