aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/include/LTKTrace.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/include/LTKTrace.h')
-rw-r--r--src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/include/LTKTrace.h304
1 files changed, 304 insertions, 0 deletions
diff --git a/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/include/LTKTrace.h b/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/include/LTKTrace.h
new file mode 100644
index 00000000..f114cd7a
--- /dev/null
+++ b/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/include/LTKTrace.h
@@ -0,0 +1,304 @@
+/******************************************************************************
+* Copyright (c) 2006 Hewlett-Packard Development Company, L.P.
+* Permission is hereby granted, free of charge, to any person obtaining a copy
+* of this software and associated documentation files (the "Software"), to deal
+* in the Software without restriction, including without limitation the rights
+* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+* copies of the Software, and to permit persons to whom the Software is
+* furnished to do so, subject to the following conditions:
+*
+* The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+*
+* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+* SOFTWARE
+********************************************************************************/
+
+/************************************************************************
+ * SVN MACROS
+ *
+ * $LastChangedDate: 2008-07-18 15:00:39 +0530 (Fri, 18 Jul 2008) $
+ * $Revision: 561 $
+ * $Author: sharmnid $
+ *
+ ************************************************************************/
+/************************************************************************
+ * FILE DESCR: Definition of LTKTrace which holds series of points from a pen down event to the next
+ * immediate pen up event
+ *
+ * CONTENTS:
+ *
+ * AUTHOR: Balaji R.
+ *
+ * DATE: December 23, 2004
+ * CHANGE HISTORY:
+ * Author Date Description of change
+ * Thanigai 09-AUG-2005 Added emptyTrace function to empty the trace
+ ************************************************************************/
+
+#ifndef __LTKTRACE_H
+#define __LTKTRACE_H
+
+#include "LTKTypes.h"
+#include "LTKTraceFormat.h"
+
+class LTKTraceFormat;
+
+/** @defgroup Common_Classes Common classes
+*/
+
+/**
+* @ingroup Common_Classes
+*/
+
+/** @brief Stores contiguous series of coordinates for one stroke.
+ * @class LTKTrace
+ * This class contains contiguous series of coordinates for one stroke.
+ * All channel values are stored internally as float. Hence the coordinates to be
+ * passed to LTKTrace should be first converted to "float" type.
+ */
+
+class LTKTrace
+{
+
+private:
+
+ vector<floatVector> m_traceChannels;//values of channels which make up the trace
+
+ LTKTraceFormat m_traceFormat;
+
+
+public:
+
+ /**
+ * @name Constructors and Destructor
+ */
+ //@{
+
+ /**
+ * Default Constructor
+ */
+
+ LTKTrace();
+
+ /**
+ * This constructor initialises a vector of channel values with a vector of float.
+ *
+ * @param allChannelValues A vector of float that contains contiguous channel values
+ * @param channelFormat An object of LTKTraceFormat that provides information about
+ * the channel positions.
+ */
+
+ LTKTrace(const floatVector& allChannelsVec, const LTKTraceFormat& channelformat);
+
+ /**
+ * This constructor initialises a trace according to the specified trace format
+ *
+ * @param channelFormat An object of LTKTraceFormat that provides information about
+ * the channel positions
+ */
+
+ LTKTrace(const LTKTraceFormat& channelformat);
+
+ /**
+ * Copy Constructor
+ */
+
+ LTKTrace(const LTKTrace& trace);
+
+ /**
+ * Destructor
+ */
+
+ virtual ~LTKTrace();
+ //@}
+
+ /**
+ * @name Assignment operator
+ */
+ //@{
+
+ /**
+ * Assignment operator
+ * @param traceObj The object to be copied by assignment
+ *
+ * @return LTKTrace object
+ */
+
+ LTKTrace& operator=(const LTKTrace& trace);
+ //@}
+
+ /**
+ * @name Getter Functions
+ */
+ //@{
+
+ /**
+ * This function returns the number of points that a stroke contains.
+ * Number of points is obtained by dividing the total number of contiguous channel values
+ * with the number of channels in trace format.
+ *
+ * @param void
+ *
+ * @return number of points in trace are returned.
+ *
+ */
+
+ int getNumberOfPoints() const;
+
+ /**
+ * This method returns a specific point in a stroke.
+ * @param pointIndex The point index at which channel values are desired.
+ *
+ * @return A vector of float that contains channel values of a desired point.
+ *
+ */
+
+ int getPointAt(int pointIndex, floatVector& outPointCoordinates) const;
+
+ /**
+ * This method returns vector of float that contains all values
+ * of a specific channel in the stroke.
+ *
+ * @param channelName The name of the channel, whose coordinates are required.
+ *
+ * @return A vector of float that contains all values of a desired channel.
+ */
+
+ int getChannelValues(const string& channelName, floatVector& outChannelValues) const;
+
+ /**
+ * This method returns vector of float that contains all values
+ * a channel at a specific position.
+ *
+ * @param channelIndex Index of the channel,at which all coordinates are required.
+ *
+ * @return A vector of float that contains all values of a desired channel
+ */
+
+ int getChannelValues(int channelIndex, floatVector& outChannelValues) const;
+
+ /**
+ * This method returns a channel value at a specific point.
+ *
+ * @param Name of the channel whose value is required.
+ * @param the point number at which a channel's value is required.
+ *
+ * @return channel value at the specified point. This is a float.
+ *
+ */
+
+ int getChannelValueAt(const string& channelName, int pointIndex,
+ float& outValue) const;
+
+
+
+ //@}
+
+ /**
+ * @name SetFunctions
+ */
+ // @{
+
+ /**
+ * This method reassigns the values of the channel specified. The size of the
+ * vector is expected to be same as that of the current channel size.
+ *
+ * @param channelName Name of the channel
+ * @param channelValues Vector that holds the new channel values
+ *
+ *
+ * @return errorCode
+ *
+ */
+
+ int reassignChannelValues(const string& channelName,
+ const floatVector& channelValues);
+
+ /**
+ * This method reassigns the values of all the channels. The number of rows
+ * in the input 2D vector must be equal to the current number of channels with
+ * each row having the same length. And this assumes one-to-one correspondence
+ * with the channel vector.
+ *
+ * @param allChannelValues new values of all the channels
+ *
+ * @return errorCode
+ *
+ */
+ int setAllChannelValues(const float2DVector& allChannelValues);
+
+
+ /**
+ * This method adds a point of coordinates to the existing set of points,
+ * of a trace.
+ *
+ * @param pointVec vector of coordinates of a point.
+ *
+ * @return void
+ *
+ */
+ int addPoint(const floatVector& pointVec);
+
+
+ /**
+ * This function adds channel values of a new channel.
+ *
+ * @param channelValuesVec The channel values of the new channel.
+ * @param channelName The new channel to be added.
+ *
+ * @return void
+ */
+
+ int addChannel(const floatVector &channelValuesVec,const LTKChannel& channel);
+
+ /**
+ * This function empties the trace
+ *
+ * @param
+ *
+ * @return int
+ */
+
+ void emptyTrace();
+
+ /**
+ * Returns true if the data vector is empty
+ *
+ * @param
+ *
+ * @return bool
+ */
+
+ bool isEmpty() const;
+
+
+ /**
+ * Getter on the current trace format
+ *
+ * @param
+ *
+ * @return const LTKTraceFormat&
+ */
+
+ const LTKTraceFormat& getTraceFormat() const;
+
+
+ int setChannelValues(const string& channelName,
+ const floatVector &inputChannelValuesVec);
+ //@}
+
+
+
+};
+
+#endif
+
+//#ifndef __LTKTRACE_H
+//#define __LTKTRACE_H
+
+