Biomechanical Joint Model
 Author: Anderson Maciel

comejoint.h

Go to the documentation of this file.
00001 /***************************************************************************
00002  *   Copyright (C) 2000 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 
00022 //
00023 //  PROJECT.....: 
00024 //  RESPONSIBLE.: 
00025 //
00026 //  FILE........: vpjoint.h
00027 //  DESCRIPTION.: Contain the COME_Joint class declarations.
00028 //
00029 //  AUTHOR......: Anderson Maciel
00030 //  DATE........: August/10/2000
00031 //  DESCRIPTION.: Class and new methods declaration.
00032 //
00034 
00035 #ifndef __COME_JOINT_H
00036 #define __COME_JOINT_H
00037 
00038 
00039 #ifndef __COME_DOF_H
00040 class COME_Dof;
00041 #endif
00042 
00043 #include        <algebra/comematrix.h>
00044 #include        <bio/comebiostructure.h>
00045 #include        <algebra/comepoint3d.h>
00046 #include        <algebra/comevector3d.h>
00047 #include        <list>
00048 #include        <string>
00049 //using namespace std;
00050 
00051 #define MAXDOF 6
00052 
00053 
00054 //-----------------------------------------------------------------------
00055 // V P J O I N T
00056 //-----------------------------------------------------------------------
00057 
00059 // Class Name: COME_Joint
00060 // Superclass: none
00061 // Subclass: COME_PlaneJoint, COME_UniaxialJoint, COME_BiaxialJoint, COME_PoliaxialJoint
00062 
00063 class COME_Joint{
00064 
00065     private:
00066                 string          description;
00067                                 unsigned short int      numDofs;
00068                                 bool                    changed;
00069         COME_Matrix     lim;
00070         COME_Matrix     invLim;
00071         COME_Joint*     parentJoint;
00072         list<COME_BioStructure*>        shapeList;
00073         list<COME_Joint*>                       childList;
00074         COME_Dof** dofList;
00075 
00076     protected:
00077         void    setInvLim( COME_Matrix );
00078 
00079     public:
00080         COME_Joint();
00081         COME_Joint( COME_Joint * );
00082         COME_Joint( COME_Vector3D * );
00083         //~COME_Joint();
00084 
00085         unsigned short int      getNumDofs( void );
00086         void    setChanged( bool yesno );
00087         bool    vpIsChanged( void );
00088         void    setDescription( char* );
00089         void    setDescription( string );
00090         string                  getDescription();
00091         COME_Vector3D   getVectorX( void );
00092         COME_Vector3D   getVectorY( void );
00093         COME_Vector3D   getVectorZ( void );
00094         COME_Joint*             getParent( void );
00095         list<COME_Joint*>               getChildList( void );
00096                 list<COME_Joint*>               *getChildListPt( void );
00097         list<COME_BioStructure*>        getShapeList( void );
00098                 list<COME_BioStructure*>        *getShapeListPt( void );
00099         COME_Dof**              getDofList( void );
00100         COME_Matrix             getLim( void );
00101         COME_Matrix             getInvLim( void );
00102         void    setNumDofs( unsigned short int );
00103         void    setParent( COME_Joint* );
00104         void    setChildList( list<COME_Joint*> );
00105         void    setLim( COME_Matrix );
00106         void    vpRefreshInvLim( void );
00107         void    vpAddShape( COME_BioStructure *shape );
00108         void    vpAddChild( COME_Joint *child );
00109         void    vpAddDof( COME_Dof *dof );
00110         void    vpMakeLim( void );
00111         void    vpPrintLim( void );
00112         void    vpMakeGims( COME_Matrix composite );
00114         //void  setFlexionTo( float value ){ };
00115         //virtual void  setAductionTo( float value ){ };
00116         //virtual void  setTwistTo( float value ){ };
00117 
00118 };
00119 
00120 
00121 
00122 #endif

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