00001 #include "SIGEL_Simulation/SIG_Dyna.h"
00002
00003 SIGEL_Simulation::SIG_Dyna::SIG_Dyna(void* companion) :
00004 DL_dyna(companion)
00005 {
00006 };
00007
00008 SIGEL_Simulation::SIG_Dyna::~SIG_Dyna()
00009 {
00010 };
00011
00012 DL_vector SIGEL_Simulation::SIG_Dyna::getPointForce(DL_point * pd)
00013 {
00014 if ((!Muptodate)||(!Fuptodate))
00015 integrate();
00016
00017 DL_vector d,dw,Fp,minM;
00018 pd->tovector(&d);
00019 to_world(&d,&dw);
00020 M.times(-1,&minM);
00021 minM.crossprod(&dw,&Fp);
00022 Fp.plusis(&F);
00023
00024 return Fp;
00025 };
00026
00027
00028 DL_vector SIGEL_Simulation::SIG_Dyna::getForce()
00029 {
00030 if (!Fuptodate)
00031 integrate();
00032 return F;
00033 };
00034
00035 DL_vector SIGEL_Simulation::SIG_Dyna::getMomentum()
00036 {
00037 if (!Muptodate)
00038 integrate();
00039 return M;
00040 };
00041
00042
00043 DL_vector * SIGEL_Simulation::SIG_Dyna::get_inertiatensor()
00044 {
00045 return &J;
00046 };
00047
00048
00049