mulwidgets/gesturehelper/src/pointarray.h
changeset 0 e83bab7cf002
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mulwidgets/gesturehelper/src/pointarray.h	Thu Dec 17 08:56:02 2009 +0200
@@ -0,0 +1,72 @@
+/*
+* Copyright (c) 2008 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:  Array of points
+*
+*/
+
+#ifndef _POINTARRAY_H_
+#define _POINTARRAY_H_
+
+#include <e32std.h>
+
+namespace GestureHelper
+{
+
+/** 
+ * Represents a single point given at certain time
+ */
+struct TPointEntry 
+    {
+    /** constructor */
+    inline TPointEntry( const TPoint& aPos, const TTime& aTime ) 
+            : iPos( aPos ), iTime( aTime )
+        {
+        }
+    
+    TPoint iPos;
+    TTime iTime;
+    };
+    
+/**
+ * Array of points that wraps another point array
+ * The purpose of this class is to allow deriving classes to override []
+ * and in that member function adjust the point, e.g., by setting one
+ * axis to always a constant value. This allows providing a sequence of
+ * points to the recogniser in which the other axis is ignored.
+ */
+NONSHARABLE_CLASS( TPointArray )
+    {
+public:
+    /** 
+     * @param aPoints points array to wrap (and filter)
+     */
+    TPointArray( const RArray< TPointEntry >& aPoints ); 
+    /** @returns length of the array */
+    TInt Count() const;
+    /** 
+     * @returns a filtered point at aIndex. Default implementation same
+     *          as Raw(...)
+     * virtual so deriving classes can modify the point (e.g., filter one axis)
+     */
+    virtual TPoint operator[]( TInt aIndex ) const;
+    /** @returns an raw, non-filtered point at aIndex */
+    TPoint Raw( TInt aIndex ) const;
+    
+private:
+    const RArray< TPointEntry >& iPoints;
+    };
+
+} // namespace GestureHelper
+
+#endif // _POINTARRAY_H_