aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.cpp')
-rw-r--r--src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.cpp673
1 files changed, 673 insertions, 0 deletions
diff --git a/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.cpp b/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.cpp
new file mode 100644
index 00000000..16eaaca4
--- /dev/null
+++ b/src/plugins/lipi-toolkit/3rdparty/lipi-toolkit/src/reco/shaperec/featureextractor/l7/L7ShapeFeature.cpp
@@ -0,0 +1,673 @@
+/*****************************************************************************************
+* 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-02-20 10:03:51 +0530 (Wed, 20 Feb 2008) $
+ * $Revision: 423 $
+ * $Author: sharmnid $
+ *
+ ************************************************************************/
+/************************************************************************
+ * FILE DESCR : Implementation of L7ShapeFeature class
+ * AUTHOR : Naveen Sundar G.
+ * DATE : August 30, 2005
+ * CHANGE HISTORY :
+ * Author Date Description of change
+ ************************************************************************/
+
+#include "L7ShapeFeature.h"
+#include "LTKStringUtil.h"
+#include <sstream>
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : L7ShapeFeature
+* DESCRIPTION : Constructor for the L7ShapeFeature class.
+* ARGUMENTS : none
+* RETURNS :
+* NOTES : Initializes the string delimiter used in writing feature values to a file.
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+L7ShapeFeature::L7ShapeFeature():
+m_data_delimiter(",")
+{
+}
+
+/***************************************************************************
+* AUTHOR : Nidhi Sharma
+* DATE : 12-Dec-2007
+* NAME : L7ShapeFeature
+* DESCRIPTION : Parameterized Constructor for the L7ShapeFeature class.
+* ARGUMENTS :
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*****************************************************************************/
+L7ShapeFeature::L7ShapeFeature(float inX, float inY, float inXFirstDerv,
+ float inYFirstDerv, float inXSecondDerv,
+ float inYSecondDerv, float inCurvature,
+ bool inPenUp):
+m_x(inX),
+m_y(inY),
+m_xFirstDerv(inXFirstDerv),
+m_yFirstDerv(inYFirstDerv),
+m_xSecondDerv(inXSecondDerv),
+m_ySecondDerv(inYSecondDerv),
+m_curvature(inCurvature),
+m_penUp(inPenUp),
+m_data_delimiter(",")
+{
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : ~L7ShapeFeature
+* DESCRIPTION : Destructor for the L7ShapeFeature class
+* ARGUMENTS : none
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+L7ShapeFeature::~L7ShapeFeature()
+{
+
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : getX
+* DESCRIPTION : Get method for the x co-ordinate value
+* ARGUMENTS : none
+* RETURNS : X co-ordinate of the shape feature
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+float L7ShapeFeature::getX() const
+{
+ return m_x;
+}
+
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : getY
+* DESCRIPTION : Get method for the y co-ordinate value
+* ARGUMENTS : none
+* RETURNS : Y co-ordinate of the shape feature
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+float L7ShapeFeature::getY() const
+{
+ return m_y;
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : getXFirstDerv
+* DESCRIPTION : Get method for the first derivative value along the X axis
+* ARGUMENTS : none
+* RETURNS : First derivative value along the X axis.
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+float L7ShapeFeature::getXFirstDerv() const
+{
+ return m_xFirstDerv;
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : getYFirstDerv
+* DESCRIPTION : Get method for the first derivative value along the Y axis
+* ARGUMENTS : none
+* RETURNS : First derivative value along the Y axis.
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+float L7ShapeFeature::getYFirstDerv() const
+{
+ return m_yFirstDerv;
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : getXSecondDerv
+* DESCRIPTION : Get method for the second derivative value along the X axis.
+* ARGUMENTS : none
+* RETURNS : Second derivative value along the X axis.
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+float L7ShapeFeature::getXSecondDerv() const
+{
+ return m_xSecondDerv;
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : getYSecondDerv
+* DESCRIPTION : Get method for the second derivative value along the Y axis.
+* ARGUMENTS : none
+* RETURNS : Second derivative value along the Y axis.
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+float L7ShapeFeature::getYSecondDerv() const
+{
+ return m_ySecondDerv;
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : getCurvature
+* DESCRIPTION : Get method for the curvature
+* ARGUMENTS : none
+* RETURNS : The curvature value
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+float L7ShapeFeature::getCurvature() const
+{
+ return m_curvature;
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : isPenUp
+* DESCRIPTION : Get method for the penUp
+* ARGUMENTS : none
+* RETURNS : The PenUp value
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+* Balaji MNA 01-July-2009 Rename getPenUp to isPenUp
+*************************************************************************************/
+bool L7ShapeFeature::isPenUp() const
+{
+ return m_penUp;
+
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : setX
+* DESCRIPTION : Set method for the X co-ordinate value
+* ARGUMENTS : X co-ordinate value to be set
+* RETURNS : none
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::setX(float x)
+{
+ m_x = x;
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : setY
+* DESCRIPTION : Set method for the Y co-ordinate value
+* ARGUMENTS : Y co-ordinate value to be set
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::setY(float y)
+{
+ m_y = y;
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : setXFirstDerv
+* DESCRIPTION : Set method for the first derivative along the X axis
+* ARGUMENTS : The first derivative value along the X axis
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::setXFirstDerv(float xFirstDerv)
+{
+ m_xFirstDerv = xFirstDerv;
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : setYFirstDerv
+* DESCRIPTION : Set method for the first derivative along the Y axis
+* ARGUMENTS : The first derivative value along the Y axis to be set
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::setYFirstDerv(float yFirstDerv)
+{
+ m_yFirstDerv = yFirstDerv;
+}/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : setXSecondDerv
+* DESCRIPTION : Set method for the second derivative along the X axis
+* ARGUMENTS : The second derivative value along the X axis to be set
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::setXSecondDerv(float xSecondDerv)
+{
+ m_xSecondDerv = xSecondDerv;
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : setYSecondDerv
+* DESCRIPTION : Set method for the second derivative value along the y axis
+* ARGUMENTS : The second derivative value along the Y axis to be set
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::setYSecondDerv(float ySecondDerv)
+{
+ m_ySecondDerv = ySecondDerv;
+}/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : setCurvature
+* DESCRIPTION : This method sets the curvature
+* ARGUMENTS : The curvature value to be set
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::setCurvature(float curvature)
+{
+ m_curvature=curvature;
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : setPenUp
+* DESCRIPTION : This method sets the penUp
+* ARGUMENTS : The penUp value to be set
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::setPenUp(bool penUp)
+{
+ m_penUp=penUp;
+
+
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : clone
+* DESCRIPTION : Clone method for an L7ShapeFeature object
+* ARGUMENTS : none
+* RETURNS : A copy of the invoking L7ShapeFeature object
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+LTKShapeFeaturePtr L7ShapeFeature::clone() const
+{
+ L7ShapeFeature* l7Inst = new L7ShapeFeature();
+
+ l7Inst->setX(this->getX());
+ l7Inst->setY(this->getY());
+ l7Inst->setXFirstDerv(this->getXFirstDerv());
+ l7Inst->setYFirstDerv(this->getYFirstDerv());
+ l7Inst->setXSecondDerv(this->getXSecondDerv());
+ l7Inst->setYSecondDerv(this->getYSecondDerv());
+ l7Inst->setCurvature(this->getCurvature());
+ l7Inst->setPenUp(this->isPenUp());
+
+ return (LTKShapeFeaturePtr)l7Inst;
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : getDistance
+* DESCRIPTION : Returns the distance between two L7ShapeFeature objects
+* ARGUMENTS : An L7ShapeFeature object the distance of which is to be found from the invoking L7ShapeFeature object
+* RETURNS : The squared Euclidean distance
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::getDistance(const LTKShapeFeaturePtr& shapeFeaturePtr, float& outDistance) const
+{
+ float xDiff = 0, yDiff = 0;
+ float xFirstDervDiff=0, yFirstDervDiff=0, xSecondDervDiff=0, ySecondDervDiff=0;
+ float curvatureDiff=0;
+
+ L7ShapeFeature *inFeature = (L7ShapeFeature*)(shapeFeaturePtr.operator ->());
+
+ xDiff = m_x - inFeature->getX();
+ yDiff = m_y - inFeature->getY();
+ xFirstDervDiff = m_xFirstDerv - inFeature->getXFirstDerv();
+ xFirstDervDiff = m_yFirstDerv - inFeature->getYFirstDerv();
+ xSecondDervDiff = m_xSecondDerv - inFeature->getXSecondDerv();
+ ySecondDervDiff = m_ySecondDerv - inFeature->getYSecondDerv();
+ curvatureDiff = m_curvature - inFeature->getCurvature();
+
+ outDistance = ( (xDiff * xDiff) + (yDiff * yDiff) );
+ outDistance += ( (xFirstDervDiff * xFirstDervDiff) + (yFirstDervDiff * yFirstDervDiff) );
+ outDistance += ( (xSecondDervDiff * xSecondDervDiff) + (ySecondDervDiff * ySecondDervDiff) );
+ outDistance += ( (curvatureDiff * curvatureDiff));
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : initialize
+* DESCRIPTION : This method initializes an L7ShapeFeature object from a string
+* ARGUMENTS : The string containing the feature values
+* RETURNS : SUCCESS on successful completion
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+int L7ShapeFeature::initialize(const string& initString)
+{
+ stringVector tokens;
+
+ LTKStringUtil::tokenizeString(initString, m_data_delimiter, tokens);
+
+ //Token size must be eight
+ if(tokens.size() != 8)
+ return FAILURE; //Returning an error
+
+ m_x = LTKStringUtil::convertStringToFloat(tokens[0]);
+ m_y = LTKStringUtil::convertStringToFloat(tokens[1]);
+ m_xFirstDerv = LTKStringUtil::convertStringToFloat(tokens[2]);
+ m_yFirstDerv = LTKStringUtil::convertStringToFloat(tokens[3]);
+ m_xSecondDerv = LTKStringUtil::convertStringToFloat(tokens[4]);
+ m_ySecondDerv = LTKStringUtil::convertStringToFloat(tokens[5]);
+ m_curvature= LTKStringUtil::convertStringToFloat(tokens[6]);
+
+ if(atoi(tokens[7].c_str()) == 1)
+ m_penUp = true;
+ else
+ m_penUp = false;
+
+ return SUCCESS;
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : toString
+* DESCRIPTION : This method prints the components of the feature object a string.
+* ARGUMENTS : pointer to char
+* RETURNS : The feature object in string format
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+void L7ShapeFeature::toString(string& strFeat) const
+{
+ ostringstream tempString;
+
+ tempString << m_x << m_data_delimiter << m_y << m_data_delimiter <<
+ m_xFirstDerv << m_data_delimiter <<
+ m_yFirstDerv << m_data_delimiter <<
+ m_xSecondDerv << m_data_delimiter <<
+ m_ySecondDerv << m_data_delimiter <<
+ m_curvature << m_data_delimiter <<
+ m_penUp ;
+
+
+ strFeat = tempString.str();
+
+}
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : addFeature
+* DESCRIPTION : This method adds the passed L7ShapeFeature object to the invoking L7ShapeFeature object
+* ARGUMENTS : The feature instance to be added
+* RETURNS : The result feature object
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+int L7ShapeFeature::addFeature(const LTKShapeFeaturePtr& secondFeature,
+ LTKShapeFeaturePtr& outResult ) const
+{
+ L7ShapeFeature* resultFeature = new L7ShapeFeature();
+
+ L7ShapeFeature *inFeature = (L7ShapeFeature*)(secondFeature.operator ->());
+
+ resultFeature->setX(m_x + inFeature->getX());
+ resultFeature->setY(m_y + inFeature->getY());
+ resultFeature->setXFirstDerv(m_xFirstDerv + inFeature->getXFirstDerv());
+ resultFeature->setYFirstDerv(m_yFirstDerv + inFeature->getYFirstDerv());
+ resultFeature->setXSecondDerv(m_xSecondDerv + inFeature->getXSecondDerv());
+ resultFeature->setYSecondDerv(m_ySecondDerv + inFeature->getYSecondDerv());
+ resultFeature->setCurvature(m_curvature + inFeature->getCurvature());
+ resultFeature->setPenUp(m_penUp);
+
+ outResult = LTKShapeFeaturePtr(resultFeature);
+
+ return SUCCESS;
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : subtractFeature
+* DESCRIPTION : This method subtracts the elements of the passed L7ShapeFeature object from the invoking L7ShapeFeature object.
+* ARGUMENTS :
+* RETURNS : The result feature object
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+int L7ShapeFeature::subtractFeature(const LTKShapeFeaturePtr& secondFeature,
+ LTKShapeFeaturePtr& outResult ) const
+{
+ L7ShapeFeature* resultFeature = new L7ShapeFeature();
+
+ L7ShapeFeature *inFeature = (L7ShapeFeature*)(secondFeature.operator ->());
+
+ resultFeature->setX(m_x-inFeature->getX());
+ resultFeature->setY(m_y-inFeature->getY());
+ resultFeature->setXFirstDerv(m_xFirstDerv - inFeature->getXFirstDerv());
+ resultFeature->setYFirstDerv(m_yFirstDerv - inFeature->getYFirstDerv());
+ resultFeature->setXSecondDerv(m_xSecondDerv - inFeature->getXSecondDerv());
+ resultFeature->setYSecondDerv(m_ySecondDerv - inFeature->getYSecondDerv());
+ resultFeature->setCurvature(m_curvature - inFeature->getCurvature());
+ resultFeature->setPenUp(m_penUp);
+
+ outResult = LTKShapeFeaturePtr(resultFeature);
+
+ return SUCCESS;
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : scaleFeature
+* DESCRIPTION : This method mulitplies the elements of the invoking L7ShapeFeature object by alpha.
+* ARGUMENTS : alpha which is the scaling factor
+* RETURNS : The scaled feature object
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+int L7ShapeFeature::scaleFeature(float alpha, LTKShapeFeaturePtr& outResult) const
+{
+ L7ShapeFeature* resultFeature = new L7ShapeFeature();
+
+ resultFeature->setX(m_x * alpha);
+ resultFeature->setY(m_y * alpha);
+ resultFeature->setXFirstDerv(m_xFirstDerv * alpha);
+ resultFeature->setYFirstDerv(m_yFirstDerv * alpha);
+ resultFeature->setXSecondDerv(m_xSecondDerv * alpha);
+ resultFeature->setYSecondDerv(m_ySecondDerv * alpha);
+ resultFeature->setCurvature(m_curvature * alpha);
+ resultFeature->setPenUp(m_penUp);
+
+ outResult = LTKShapeFeaturePtr(resultFeature);
+
+ return SUCCESS;
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : toFloatVector
+* DESCRIPTION : This method converts the feature instance to a floatVector.
+* ARGUMENTS : The float vector passed by reference
+* RETURNS : 0 on success.
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+int L7ShapeFeature::toFloatVector(floatVector& floatVec)
+{
+ floatVec.push_back(m_x);
+ floatVec.push_back(m_y);
+ floatVec.push_back(m_xFirstDerv);
+ floatVec.push_back(m_yFirstDerv);
+ floatVec.push_back(m_xSecondDerv);
+ floatVec.push_back(m_ySecondDerv);
+ floatVec.push_back(m_curvature);
+
+ if(m_penUp == true)
+ floatVec.push_back(1.0);
+ else
+ floatVec.push_back(0.0);
+
+ return SUCCESS;
+}
+
+/**********************************************************************************
+* AUTHOR : Naveen Sundar G.
+* DATE : 10-AUGUST-2007
+* NAME : toIntVector
+* DESCRIPTION : This method converts the feature instance to an intVector.
+* ARGUMENTS : The integer vector passed by reference
+* RETURNS : 0 on success.
+* NOTES :
+* CHANGE HISTROY
+* Author Date Description of change
+*************************************************************************************/
+int L7ShapeFeature::toIntVector(intVector& intVec)
+{
+ intVec.push_back(m_x);
+ intVec.push_back(m_y);
+ intVec.push_back(m_xFirstDerv);
+ intVec.push_back(m_yFirstDerv);
+ intVec.push_back(m_xSecondDerv);
+ intVec.push_back(m_ySecondDerv);
+ intVec.push_back(m_curvature);
+ intVec.push_back(m_penUp);
+
+ return SUCCESS;
+}
+
+/***************************************************************************
+* AUTHOR : Nidhi Sharma
+* DATE : 23-Apr-2008
+* NAME : initialize
+* DESCRIPTION :
+* ARGUMENTS :
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author: Date Description:
+
+*****************************************************************************/
+int L7ShapeFeature::initialize(const floatVector& initFloatVector)
+{
+
+ if (initFloatVector.size() == 0)
+ {
+ return FAILURE;
+ }
+
+ m_x = initFloatVector[0];
+ m_y = initFloatVector[1];
+ m_xFirstDerv = initFloatVector[2];
+ m_yFirstDerv = initFloatVector[3];
+ m_xSecondDerv = initFloatVector[4];
+ m_ySecondDerv = initFloatVector[5];
+ m_curvature = initFloatVector[6];
+
+ if(initFloatVector[7] == 1)
+ {
+ m_penUp = true;
+ }
+ else
+ {
+ m_penUp = false;
+ }
+
+ return SUCCESS;
+}
+
+/***************************************************************************
+* AUTHOR : Nidhi Sharma
+* DATE : 23-Apr-2008
+* NAME : getFeatureDimension
+* DESCRIPTION :
+* ARGUMENTS :
+* RETURNS :
+* NOTES :
+* CHANGE HISTROY
+* Author: Date Description:
+
+*****************************************************************************/
+
+int L7ShapeFeature::getFeatureDimension()
+{
+ return 8;
+}