standardfeatures.h

Go to the documentation of this file.
00001 /*  -*- c++ -*-  (for Emacs)
00002  *
00003  *  standardfeatures.h
00004  *  Digest
00005  * 
00006  *  Created by Aidan Lane on Mon Jul 11 2005.
00007  *  Copyright (c) 2005-2006 Optimisation and Constraint Solving Group,
00008  *  Monash University. All rights reserved.
00009  *
00010  *  This program is free software; you can redistribute it and/or modify
00011  *  it under the terms of the GNU General Public License as published by
00012  *  the Free Software Foundation; either version 2 of the License, or
00013  *  (at your option) any later version.
00014  *
00015  *  This program is distributed in the hope that it will be useful,
00016  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00017  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00018  *  GNU General Public License for more details.
00019  *
00020  *  You should have received a copy of the GNU General Public License
00021  *  along with this program; if not, write to the Free Software
00022  *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
00023  */
00024 
00025 #ifndef STANDARDFEATURES_H
00026 #define STANDARDFEATURES_H
00027 
00028 
00029 #include "stlfeatureinterface.h"
00030 
00031 
00032 #define DECLARE_STL_FEATURE_CALCVALUE_METHODS                                 \
00033   static StlFeatureResultT                                                    \
00034   classCalcValue( const StlStroke& stroke, bool* ok = 0 );                    \
00035   StlFeatureResultT calcValue( const StlStroke& stroke, bool* ok = 0 ) const  \
00036   { return classCalcValue(stroke, ok); }
00037 
00038 
00039 class CosInitAngleFeature : public StlFeatureInterface {
00040 public:
00041   DECLARE_STL_FEATURE_KEY( "cosinitangle" );
00042   DECLARE_STL_FEATURE_TITLE( "Cosine of Initial Angle" );
00043   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00044   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00045 };
00046 
00047 class SinInitAngleFeature : public StlFeatureInterface {
00048 public:
00049   DECLARE_STL_FEATURE_KEY( "sininitangle" );
00050   DECLARE_STL_FEATURE_TITLE( "Sine of Initial Angle" );
00051   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00052   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00053 };
00054 
00055 class BBoxDiagLengthFeature : public StlFeatureInterface {
00056 public:
00057   DECLARE_STL_FEATURE_KEY( "bboxdiaglength" );
00058   DECLARE_STL_FEATURE_TITLE( "Bounding Box Diagonal Length" );
00059   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00060   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00061 };
00062 
00063 class BBoxDiagAngleFeature : public StlFeatureInterface {
00064 public:
00065   DECLARE_STL_FEATURE_KEY( "bboxdiagangle" );
00066   DECLARE_STL_FEATURE_TITLE( "Bounding Box Diagonal Angle" );
00067   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00068   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00069 };
00070 
00071 class FirstToLastDistFeature : public StlFeatureInterface {
00072 public:
00073   DECLARE_STL_FEATURE_KEY( "firsttolastdist" );
00074   DECLARE_STL_FEATURE_TITLE( "First to Last Point Distance" );
00075   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00076   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00077 };
00078 
00079 class CosFirstToLastAngleFeature : public StlFeatureInterface {
00080 public:
00081   DECLARE_STL_FEATURE_KEY( "cosfirsttolastangle" );
00082   DECLARE_STL_FEATURE_TITLE( "Cosine of First to Last Point Angle" );
00083   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00084   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00085 };
00086 
00087 class SinFirstToLastAngleFeature : public StlFeatureInterface {
00088 public:
00089   DECLARE_STL_FEATURE_KEY( "sinfirsttolastangle" );
00090   DECLARE_STL_FEATURE_TITLE( "Sine of First to Last Point Angle" );
00091   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00092   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00093 };
00094 
00095 class TotalGestureLengthFeature : public StlFeatureInterface {
00096 public:
00097   DECLARE_STL_FEATURE_KEY( "totalgesturelength" );
00098   DECLARE_STL_FEATURE_TITLE( "Total Gesture Length" );
00099   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00100   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00101 };
00102 
00103 class TotalAngleTraversedFeature : public StlFeatureInterface {
00104 public:
00105   DECLARE_STL_FEATURE_KEY( "totalangletraversed" );
00106   DECLARE_STL_FEATURE_TITLE( "Total Angle Traversed" );
00107   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00108   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00109 };
00110 
00111 class TotalAbsAngleTraversedFeature : public StlFeatureInterface {
00112 public:
00113   DECLARE_STL_FEATURE_KEY( "totalabsangletraversed" );
00114   DECLARE_STL_FEATURE_TITLE( "Total Absolute Angle Traversed" );
00115   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00116   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00117 };
00118 
00119 class TotalSqrdAngleTraversedFeature : public StlFeatureInterface {
00120 public:
00121   DECLARE_STL_FEATURE_KEY( "totalsqrdangletraversed" );
00122   DECLARE_STL_FEATURE_TITLE( "Total Squared Angle Traversed" );
00123   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00124   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00125 };
00126 
00127 class MaxSqrdSpeedFeature : public StlFeatureInterface {
00128 public:
00129   DECLARE_STL_FEATURE_KEY( "maxsqrdspeed" );
00130   DECLARE_STL_FEATURE_TITLE( "Maximum Squared Speed" );
00131   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00132   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00133 };
00134 
00135 class DurationFeature : public StlFeatureInterface {
00136 public:
00137   DECLARE_STL_FEATURE_KEY( "duration" );
00138   DECLARE_STL_FEATURE_TITLE( "Duration" );
00139   DECLARE_STL_FEATURE_DESCRIPTION_METHODS;
00140   DECLARE_STL_FEATURE_CALCVALUE_METHODS;
00141 };
00142 
00143 
00144 #endif  // ! STANDARDFEATURES_H

Generated on Mon Jul 30 09:46:50 2007 for Digest by  doxygen 1.5.2