Biomechanical Joint Model
 Author: Anderson Maciel

come.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2002 by Anderson Maciel                                 *
00003  *   andi.maciel@gmail.com                                                 *
00004  *                                                                         *
00005  *   This program is free software; you can redistribute it and/or modify  *
00006  *   it under the terms of the GNU General Public License as published by  *
00007  *   the Free Software Foundation; either version 2 of the License, or     *
00008  *   (at your option) any later version.                                   *
00009  *                                                                         *
00010  *   This program is distributed in the hope that it will be useful,       *
00011  *   but WITHOUT ANY WARRANTY; without even the implied warranty of        *
00012  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         *
00013  *   GNU General Public License for more details.                          *
00014  *                                                                         *
00015  *   You should have received a copy of the GNU General Public License     *
00016  *   along with this program; if not, write to the                         *
00017  *   Free Software Foundation, Inc.,                                       *
00018  *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
00019  **************************************************************************/
00020 
00031 
00032 #ifndef __COME_H        
00033 #define __COME_H        
00034 
00035 
00036 #include        <stdio.h>
00037 #include        <string.h>
00038 
00039 #include        <list>          //STL include
00040 #include        <string>        //STL include
00041 #include        <vector>        //STL include
00042 #include        <algorithm>     //STL include
00043 
00044 #include        <iostream>
00045 
00046 using namespace std;
00047 
00048 //using namespace ZThread;
00049 //namespace ZThread{
00050 //      class Mutex;
00051 //}
00052 #include        <zthread/Mutex.h>
00053 
00056  //#define      _MECHATESTER_APP
00057  //#define      _DISCRETIZER_APP
00058   #define       _MODELJOINT_APP
00059 
00061 #define         MALE            true
00062 #define         FEMALE          false
00063 
00065 #define         PAST            false
00066 #define         FUTURE          true
00067 
00069 #define         MARCHING_CUBES  0
00070 #define         VERTICES        1
00071 #define         BEST            2
00072 
00073 
00075 #define         IMPLICIT        true
00076 #define         DEFORM          false
00077 
00079 #define         MESH                    0
00080 #define         SPHERES                 1
00081 #define         HYBRID                  2
00082 #define         DISPLACEMENT    3
00083 #define         NO_COLLISION            4
00084 #define         NEIGHBORS               5
00085 #define         SPHERICAL_SLIDING       6
00086 
00088 #define         ENVELOPE        0
00089 #define         VCOLLIDE        1
00090 
00092 #define         CARTILAGE       0
00093 #define         BONE            1
00094 #define         LIGAMENT        2
00095 #define         MUSCLE          3
00096 #define         TENDON          4
00097 #define         CLAMP           5
00098 #define         CONTAINER       6
00099 
00101 #define         NONE            0
00102 #define         VOLUME_TETRAS   1
00103 #define         NUM_CONNECTIONS 2
00104 #define         ANGLES          3
00105 #define         NUMERICALLY     4
00106 
00108 #define         NEVER           0
00109 #define         ONCE            1
00110 #define         EVERY_ITERATION 2
00111 
00113 #define         NEW     0
00114 #define         UPDATE  1
00115 
00117 #define         OFFLINE 0
00118 #define         ONLINE  1
00119 
00121 #define         FREE            0
00122 #define         CLAMPFIX        1
00123 #define         CLAMPMOBILE     2
00124 
00126 #define         M_PI            3.14159265358979323846
00127 #define         INFINITE        1.6E+308
00128 
00130 #define         EULER           0
00131 #define         RUNGE_KUTTA4    1
00132 
00133 
00134 // version control
00135 //#define               GPU_FORCES
00136 
00140 
00141 class COME{
00142 
00143 protected:
00144         string                  description;
00145         bool                    modified;
00146         bool                    selected;
00147         COME            *parent;
00148         ZThread::Mutex  *mutex;
00149         
00150 public:
00151 
00152         void    setDescription( string descN );
00153         void    setParent( COME *parentN );
00154 
00155         string  getDescription() const;
00156         COME    *getParent() const;
00157 
00158         bool    isModified();
00159         bool    isSelected();
00160         void    select( bool yesno );
00161         
00162         static int instanceCount;
00163         static int framesOnFile;
00164         static int flagNumIntegration;
00165         static int flagCollisionTreatment;
00166         static bool flagCollision2ndPass;
00167         static bool flagExportToPrecalculatedFile;
00168         static bool flagSkinning;
00169         static double flagAnimationResolution;
00170         static double timestepGlobal;
00171         static string baseFolder;
00172 
00173         void    lock();
00174         void    unlock();
00175 
00176 };
00177 
00178 #endif // __COME_H

Generated on Thu Dec 1 10:13:32 2005 for COME - Biomechanical Joint Model by  doxygen 1.4.5