uiaccelerator_plat/alf_core_toolkit_api/inc/uiacceltk/HuiTimedPoint.h
changeset 0 15bf7259bb7c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/uiaccelerator_plat/alf_core_toolkit_api/inc/uiacceltk/HuiTimedPoint.h	Tue Feb 02 07:56:43 2010 +0200
@@ -0,0 +1,189 @@
+/*
+* Copyright (c) 2006-2007 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:   ?Description
+*
+*/
+
+
+
+#ifndef __HUITIMEDPOINT_H__
+#define __HUITIMEDPOINT_H__
+
+
+#include <e32base.h>
+#include <uiacceltk/HuiTimedValue.h>
+#include <uiacceltk/HuiRealPoint.h>
+
+
+/**
+ * X/Y coordinate pair using timed values.
+ *
+ * @see THuiTimedValue
+ */
+class THuiTimedPoint
+    {
+public:
+
+    /* Constructors and destructor. */
+
+    IMPORT_C THuiTimedPoint();
+
+    /**
+     * Constructor that sets default values.
+     *
+     * @param aX Sets the timed value's initial X component.
+     * @param aY Sets the timed value's initial Y component.
+     */
+    IMPORT_C THuiTimedPoint(TReal32 aX, TReal32 aY) __SOFTFP;
+
+
+    /* Methods. */
+
+    /**
+     * Sets the interpolation style of both components of the point.
+     *
+     * @param aStyle  Timed value interpolation style.
+     */
+    IMPORT_C void SetStyle(THuiInterpolationStyle aStyle);
+
+    /**
+     * Sets the mapping function for both the X and Y components. For
+     * example you can use a mapping function to constrain your
+     * visuals onto a path.
+     *
+     * @note If the mapping function does not support multiple modes
+     * (mode for X calculation and mode for Y calculation), both the
+     * X and Y components of the timed point will share the same value.
+     *
+     * The mapping component/mode parameter used to calculate
+     * value for X is mode 0, and the value for U is mode 1.
+     * @see MHuiMappingFunction::MapValue() is called twice with mode
+     * 0 for X and mode 1 for Y.
+     * @see CHuiCurvePath for curve path mapping fuction.
+     */
+    IMPORT_C void SetFunction(MHuiMappingFunction* aFunction);
+
+    /**
+     * Sets the target for the timed point.
+     *
+     * @param aPoint           Target point.
+     * @param aTransitionTime  Duration for reaching the target.
+     */
+    IMPORT_C void Set(const THuiRealPoint& aPoint, TInt aTransitionTime = 0);
+
+    /**
+     * Sets the target value of both components of the timed point.
+     *
+     * @param aValue           New target value.
+     * @param aTransitionTime  Duration for reaching the target.
+     */
+    IMPORT_C void Set(TReal32 aValue, TInt aTransitionTime = 0) __SOFTFP;
+
+    /**
+     * Sets the target value for the timed point, with a transition that is
+     * done using a specific speed.
+     *
+     * @param aPoint  Target point.
+     * @param aUnitsPerSecond  Units per second during the transition.
+     */
+    IMPORT_C void SetWithSpeed(const THuiRealPoint& aPoint, TReal32 aUnitsPerSecond) __SOFTFP;
+
+    /**
+     * Sets the target value of both components of the timed point.
+     *
+     * @param aValue  New target value.
+     * @param aUnitsPerSecond  Speed of change.
+     */
+    IMPORT_C void SetWithSpeed(TReal32 aValue, TReal32 aUnitsPerSecond) __SOFTFP;
+
+    /**
+     * Returns the current interpolatad value of the point rounded to nearest
+     * integer values. Note that the THuiTimedPoint values are
+     * floating-point.
+     *
+     * @see RealNow() For returning the floating-point current value.
+     *
+     * @return  Current values as a regular TPoint.
+     */
+    IMPORT_C TPoint Now() const;
+
+    /**
+     * Returns the current value of the point.
+     *
+     * @return  Current values as a regular THuiRealPoint.
+     */
+    IMPORT_C THuiRealPoint RealNow() const __SOFTFP;
+
+    /**
+     * Returns the target value of the point rounded to nearest
+     * integer values. Note that the THuiTimedPoint values are
+     * floating-point.
+     *
+     * @see RealTarget() For returning the floating-point values.
+     *
+     * @return Target values as a normal TPoint - target value rounded to
+     * nearest integer.
+     */
+    IMPORT_C TPoint Target() const;
+
+    /**
+     * Returns the target value of the point.
+     *
+     * @return  Target as a THuiRealPoint.
+     */
+    IMPORT_C THuiRealPoint RealTarget() const __SOFTFP;
+
+    /**
+     * Finishes the current interpolation.
+     */
+    IMPORT_C void Finish();
+
+    /**
+     * Checks if the point has been changed.
+     *
+     * @return ETrue if X or Y values have changed, EFalse if not.
+     *
+     * @see THuiTimedValue::Changed()
+     */
+    TBool Changed() const;
+
+    /**
+     * Clears the changed flags for X and Y values.
+     *
+     * @see THuiTimedValue::Changed()
+     */
+    void ClearChanged();
+
+
+private:
+
+    /* Private methods. */
+
+
+public:
+
+    /* Public member variables. */
+
+    /** X coordinate. */
+    THuiTimedValue iX;
+
+    /** Y coordinate. */
+    THuiTimedValue iY;
+
+private:
+    TInt iSpare1;
+    TInt iSpare2;
+    };
+
+#endif  // __HUITIMEDPOINT_H__