Commit f7ec8612 authored by Nicolas Docquier's avatar Nicolas Docquier
Browse files

Merge branch 'release_1.9.3' into 'master'

Release 1.9.3

See merge request !38
parents 5b482bfa f5bf1066
......@@ -14,40 +14,40 @@
#include "mbs_dirdyn.h"
/*! \brief user own initialization functions
*
*
* \param[in,out] mbs_data data structure of the model
* \param[in,out] mbs_dd general structure of the direct dynamic module (for advance users)
*
* For beginners, it is advised to only use the MbsData structure.
* The field MbsDirdyn is provided for more advance users.
*/
void user_init(MbsData *mbs_data, MbsDirdyn *mbs_dd)
void user_dirdyn_init(MbsData *mbs_data, MbsDirdyn *mbs_dd)
{
}
/*! \brief user own loop functions
*
*
* \param[in,out] mbs_data data structure of the model
* \param[in,out] mbs_dd general structure of the direct dynamic module (for advance users)
*
* For beginners, it is advised to only use the MbsData structure.
* The field MbsDirdyn is provided for more advance users.
*/
void user_loop(MbsData *mbs_data, MbsDirdyn *mbs_dd)
void user_dirdyn_loop(MbsData *mbs_data, MbsDirdyn *mbs_dd)
{
}
/*! \brief user own finishing functions
*
*
* \param[in,out] mbs_data data structure of the model
* \param[in,out] mbs_dd general structure of the direct dynamic module (for advance users)
*
* For beginners, it is advised to only use the MbsData structure.
* The field MbsDirdyn is provided for more advance users.
*/
void user_finish(MbsData *mbs_data, MbsDirdyn *mbs_dd)
void user_dirdyn_finish(MbsData *mbs_data, MbsDirdyn *mbs_dd)
{
}
......@@ -130,6 +130,19 @@ function(increment_include_file arg0)
endfunction()
## -- PATHS CMAKE LIBRARIES -- ##
# list path strings as "${arg1}${i}${arg2}"
# where i is in the range [0 ; arg3]
# -> arg0 contains the resulting list
function(list_paths arg0 arg1 arg2 arg3)
set (CUR_LIST "")
foreach(i RANGE ${arg3})
set (CUR_LIST ${CUR_LIST} "${arg1}${i}${arg2}")
endforeach ( )
set (${arg0} ${CUR_LIST} PARENT_SCOPE)
endfunction ( )
# * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
# CHECKING SYMBOLIC FILES
......
......@@ -9,7 +9,6 @@
# J3D_PATH : libraries -> for linkage or during the execution (Windows)
#
if (UNIX)
if (APPLE)
......@@ -55,70 +54,13 @@ else (UNIX)
## ---- WINDOWS ---- ##
# possible paths for: 'j3dcore-ogl.dll'
list_paths(TRIAL_PATHS_DLL "C:/Program\ Files/Java/jdk1.7.0_" "/jre/bin" 99)
set(TRIAL_PATHS_DLL
C:/Program\ Files/Java/jdk1.7.0_40/jre/bin
C:/Program\ Files/Java/jdk1.7.0_41/jre/bin
C:/Program\ Files/Java/jdk1.7.0_42/jre/bin
C:/Program\ Files/Java/jdk1.7.0_43/jre/bin
C:/Program\ Files/Java/jdk1.7.0_44/jre/bin
C:/Program\ Files/Java/jdk1.7.0_45/jre/bin
C:/Program\ Files/Java/jdk1.7.0_46/jre/bin
C:/Program\ Files/Java/jdk1.7.0_47/jre/bin
C:/Program\ Files/Java/jdk1.7.0_48/jre/bin
C:/Program\ Files/Java/jdk1.7.0_49/jre/bin
C:/Program\ Files/Java/jdk1.7.0_50/jre/bin
C:/Program\ Files/Java/jdk1.7.0_51/jre/bin
C:/Program\ Files/Java/jdk1.7.0_52/jre/bin
C:/Program\ Files/Java/jdk1.7.0_53/jre/bin
C:/Program\ Files/Java/jdk1.7.0_54/jre/bin
C:/Program\ Files/Java/jdk1.7.0_55/jre/bin
C:/Program\ Files/Java/jdk1.7.0_56/jre/bin
C:/Program\ Files/Java/jdk1.7.0_57/jre/bin
C:/Program\ Files/Java/jdk1.7.0_58/jre/bin
C:/Program\ Files/Java/jdk1.7.0_59/jre/bin
C:/Program\ Files/Java/jdk1.7.0_60/jre/bin
C:/Program\ Files/Java/jdk1.7.0_61/jre/bin
C:/Program\ Files/Java/jdk1.7.0_62/jre/bin
C:/Program\ Files/Java/jdk1.7.0_63/jre/bin
C:/Program\ Files/Java/jdk1.7.0_64/jre/bin
C:/Program\ Files/Java/jdk1.7.0_65/jre/bin
C:/Program\ Files/Java/jdk1.7.0_66/jre/bin
C:/Program\ Files/Java/jdk1.7.0_67/jre/bin
C:/Program\ Files/Java/jdk1.7.0_68/jre/bin
C:/Program\ Files/Java/jdk1.7.0_69/jre/bin
C:/Program\ Files/Java/jdk1.7.0_70/jre/bin
C:/Program\ Files/Java/jdk1.7.0_71/jre/bin
C:/Program\ Files/Java/jdk1.7.0_72/jre/bin
C:/Program\ Files/Java/jdk1.7.0_73/jre/bin
C:/Program\ Files/Java/jdk1.7.0_74/jre/bin
C:/Program\ Files/Java/jdk1.7.0_75/jre/bin
C:/Program\ Files/Java/jdk1.7.0_76/jre/bin
C:/Program\ Files/Java/jdk1.7.0_77/jre/bin
C:/Program\ Files/Java/jdk1.7.0_78/jre/bin
C:/Program\ Files/Java/jdk1.7.0_79/jre/bin
C:/Program\ Files/Java/jdk1.7.0_80/jre/bin
C:/Program\ Files/Java/jdk1.7.0_81/jre/bin
C:/Program\ Files/Java/jdk1.7.0_82/jre/bin
C:/Program\ Files/Java/jdk1.7.0_83/jre/bin
C:/Program\ Files/Java/jdk1.7.0_84/jre/bin
C:/Program\ Files/Java/jdk1.7.0_85/jre/bin
C:/Program\ Files/Java/jdk1.7.0_86/jre/bin
C:/Program\ Files/Java/jdk1.7.0_87/jre/bin
C:/Program\ Files/Java/jdk1.7.0_88/jre/bin
C:/Program\ Files/Java/jdk1.7.0_89/jre/bin
C:/Program\ Files/Java/jdk1.7.0_90/jre/bin
C:/Program\ Files/Java/jdk1.7.0_91/jre/bin
C:/Program\ Files/Java/jdk1.7.0_92/jre/bin
C:/Program\ Files/Java/jdk1.7.0_93/jre/bin
C:/Program\ Files/Java/jdk1.7.0_94/jre/bin
C:/Program\ Files/Java/jdk1.7.0_95/jre/bin
C:/Program\ Files/Java/jdk1.7.0_96/jre/bin
C:/Program\ Files/Java/jdk1.7.0_97/jre/bin
C:/Program\ Files/Java/jdk1.7.0_98/jre/bin
C:/Program\ Files/Java/jdk1.7.0_99/jre/bin
${TRIAL_PATHS_DLL}
C:/Program\ Files/Java/jdk1.8.0/jre/bin
C:/Program\ Files/Java/Java3D/1.5.2/bin
)
)
find_path(J3D_PATH j3dcore-ogl.dll ${TRIAL_PATHS_DLL})
......
This diff is collapsed.
......@@ -22,12 +22,14 @@ if (APPLE)
set(TRIAL_PATHS_INC_LIBXML_1
/usr/bin/libxml 2.framework/Headers/libxml
/usr/include/libxml2/libxml
/usr/local/include/libxml2/libxml
)
# possible paths for: 'libxml/tree.h'
set(TRIAL_PATHS_INC_LIBXML_2
/usr/bin/libxml 2.framework/Headers
/usr/include/libxml2
/usr/local/include/libxml2
)
# possible paths for: 'libxml2.dylib'
......
......@@ -35,6 +35,27 @@ set(CMAKE_AUX ${ROBOTRAN_SOURCE_DIR}/cmake_aux)
set(CMAKE_AUX_BIN ${PROJECT_BINARY_DIR}/cmake_aux)
add_subdirectory (${CMAKE_AUX}/libraries/ ${CMAKE_AUX_BIN}/libraries/)
if (WIN32)
## --- WIN32 or WIN64 DETECTION --- ##
if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) # 64bit Windows
SET(WIN_LIB_DIRECTORY win64_include_lib)
else( ) # 32bit Windows
SET(WIN_LIB_DIRECTORY win32_include_lib)
endif( )
## ---- WINDOWS DLL FILES ---- ##
# copy all the dll (except 'jvm.dll') used for Windows
# these dll files are copied in the Executable directory (Debug or Release)
file(COPY ${ROBOTRAN_SOURCE_DIR}/${WIN_LIB_DIRECTORY}/dll/ DESTINATION ${CMAKE_BINARY_DIR}/Debug)
file(COPY ${ROBOTRAN_SOURCE_DIR}/${WIN_LIB_DIRECTORY}/dll/ DESTINATION ${CMAKE_BINARY_DIR}/Release)
endif ( )
# Libxml2
xml_lib(gen_user)
......@@ -82,9 +103,6 @@ add_executable (${Executable} ${SOURCE_FILES})
target_link_libraries (${Executable} ${LIBXML2_LIBRARIES})
if (WIN32)
file(COPY ${ROBOTRAN_SOURCE_DIR}/win64_include_lib/dll/libxml2.dll DESTINATION ${CMAKE_BINARY_DIR}/Debug)
endif ( )
# math external library (for Unix): linkage
if (UNIX)
......
......@@ -124,7 +124,7 @@ void mbs_print_user_models(MDS_gen_strct* gen, char *fileoutC, char *fileoutH)
if( gen->user_models->user_model_list[i]->parameter_list[j]->type == 6)
{
char* structHeader = gen->user_models->user_model_list[i]->parameter_list[j]->structure_header;
if (!strstr(headerInclude, structHeader)){
if (strlen(structHeader) && !strstr(headerInclude, structHeader)){
char* oldHeaderInclude = headerInclude;
headerInclude = malloc(strlen(oldHeaderInclude)+strlen(structHeader)+12+1);//+13 for '#include ""\n', +1 for the zero-terminator
......
......@@ -5,8 +5,8 @@
MbsData* mbs_load(const char* mbs_filename){
MDS_gen_strct *mds;
MbsData *mbs_data;
MbsData *mbs_data;
mds = MDS_mbs_reader(mbs_filename);
mbs_data = MDS_create_MBSdataStruct(mds);
free_MDS_gen_strct(mds);
......@@ -15,7 +15,7 @@ MbsData* mbs_load(const char* mbs_filename){
strcpy(mbs_data->mbs_filename, mbs_filename);
return mbs_data;
return mbs_data;
}
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
......@@ -25,8 +25,8 @@ MbsData* mbs_load(const char* mbs_filename){
int* q_MBSdataStruct;
if(nq)
{
int i;
int i;
q_MBSdataStruct = (int*) calloc(nq+1,sizeof(int));
q_MBSdataStruct[0] = nq;
for(i=0; i<nq; i++)
......@@ -68,8 +68,8 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
}else{
s->Nloopc = mds_gen_strct->cuts->n_rod + 3 * mds_gen_strct->cuts->n_ball + 6 * mds_gen_strct->cuts->n_solid;
}
s->Nuserc = 0;
s->Nuserc = 0;
s->Ncons = s->Nloopc + s->Nuserc;
//s->nhu = 8; // caution WEMOOV dependent !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
......@@ -83,7 +83,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
s->Nlink = 0;
s->Nlink3D = 0;
}
s->Nsensor = mds_gen_strct->n_sensor;
s->Nxfrc = mds_gen_strct->n_extforce;
......@@ -111,12 +111,12 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
{
for(j=0; j<3; j++)
{
s->dpt[j+1][i+1] = mds_gen_strct->point_list[i]->pt[j];
s->dpt[j+1][i+1] = mds_gen_strct->point_list[i]->pt[j];
mds_gen_strct->point_list[i]->d_pt[j]->MBSdata_d_ptr = &(s->dpt[j+1][i+1]);
}
}
}
else
else
for(i=1;i<=3;i++)
s->dpt[i] = NULL;
......@@ -130,7 +130,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
s->l[i] = (double*) calloc(s->njoint+1,sizeof(double));
s->l[i][0] = (double) s->njoint;
}
s->m = (double*) calloc(s->njoint+1,sizeof(double));
s->m[0] = (double) s->njoint;
......@@ -146,23 +146,23 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
ind_joint = ind_joint + mds_gen_strct->bodytree->body_list[i]->n_joint;
for(j=0; j<3; j++)
{
s->l[j+1][ind_joint] = mds_gen_strct->bodytree->body_list[i]->com[j];
s->l[j+1][ind_joint] = mds_gen_strct->bodytree->body_list[i]->com[j];
}
s->m[ind_joint] = mds_gen_strct->bodytree->body_list[i]->mass;
s->In[1][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[0];
s->In[2][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[1];
s->In[3][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[2];
s->In[4][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[1];
s->In[3][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[2];
s->In[4][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[1];
s->In[5][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[3];
s->In[6][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[4];
s->In[7][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[2];
s->In[6][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[4];
s->In[7][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[2];
s->In[8][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[4];
s->In[9][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[5];
s->In[9][ind_joint] = mds_gen_strct->bodytree->body_list[i]->inertia[5];
}
// g
// g
s->g[0] = 0.0;
copy_double_vec(mds_gen_strct->base->gravity, &(s->g[1]), 3);
......@@ -175,9 +175,9 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
s->qdriven = MDS_translate_q(mds_gen_strct->bodytree->qdriven, mds_gen_strct->bodytree->n_qdriven);
s->qa = MDS_translate_q(mds_gen_strct->bodytree->qa, mds_gen_strct->bodytree->n_qa);
if (s->nhu) // to change
if (s->nhu) // to change
{
s->hu = (int*) calloc(s->nhu+1,sizeof(int));
s->hu[0] = s->nhu;
......@@ -220,7 +220,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
s->qmax = NULL;
// Frc, Trq, Qq, tsim
// frc
s->frc[0] = NULL;
for(i=1;i<=3;i++)
......@@ -258,7 +258,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
// 1 to stop the simulation, 0 otherwise
s->flag_stop = 0;
// Constraint data
// Constraint data
// lrod
if (mds_gen_strct->cuts!=NULL && mds_gen_strct->cuts->n_rod)
......@@ -288,7 +288,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
// Link Data
// Z, Zd, Fl
// Z, Zd, Fl
if (s->Nlink)
{
s->Z = (double*) calloc(s->Nlink+1,sizeof(double));
......@@ -311,7 +311,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
s->Fl = NULL;
}
// l3DWr
// l3DWr
if (s->Nlink3D)
{
s->l3DWr = (double**) calloc(s->Nlink3D+1,sizeof(double*));
......@@ -326,9 +326,9 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
else
s->l3DWr = NULL;
// Ext. Forces Data
// Ext. Forces Data
// xfidpt
// xfidpt
if (s->Nxfrc)
{
s->xfidpt = (int*) calloc(s->Nxfrc+1,sizeof(int));
......@@ -356,7 +356,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
else
s->SWr = NULL;
// Wheel Data
// Wheel Data
// rnom
if (s->Nwheel)
......@@ -391,7 +391,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
s->ux[0] = (double) s->Nux;
s->uxd[0] = (double) s->Nux;
s->ux0[0] = (double) s->Nux;
for(i=0; i<mds_gen_strct->n_state; i++)
{
for(j=0; j<mds_gen_strct->state_list[i]->n_value; j++)
......@@ -409,7 +409,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
s->ux0 = NULL;
}
s->user_IO = mbs_new_user_IO(s);
s->user_IO = mbs_new_user_IO();
#endif
......@@ -436,7 +436,7 @@ MbsData* MDS_create_MBSdataStruct(MDS_gen_strct* mds_gen_strct)
}
//////////////////////////////////////////////////////////////////////////// CAUTION CAUTION
//////////////////////////////////////////////////////////////////////////// CAUTION CAUTION
void mbs_delete_data(MbsData *s)
......@@ -530,7 +530,7 @@ void mbs_delete_data(MbsData *s)
{
free(s->ux);
free(s->uxd);
free(s->ux0);
free(s->ux0);
}
#ifndef SENSORKIN
......@@ -548,7 +548,7 @@ void mbs_delete_data(MbsData *s)
free(s->udd);
}
if (s->nhu) // to change
if (s->nhu) // to change
{
free(s->hu);
}
......
......@@ -992,13 +992,23 @@ MDS_parameter_strct* MDS_parameter_reader(xmlNodePtr node, xmlDocPtr doc)
if(!strcmp((const char*)cur_node->name,"structure"))
{
elementValue = xmlNodeListGetString(doc, cur_node->xmlChildrenNode, 1);
mds_parameter_strct->structure_name = strdup((char*)elementValue);
if (elementValue != NULL){
mds_parameter_strct->structure_name = strdup((char*)elementValue);
}
else{
mds_parameter_strct->structure_name = strdup("");
}
xmlFree(elementValue);
}
if(!strcmp((const char*)cur_node->name,"header"))
{
elementValue = xmlNodeListGetString(doc, cur_node->xmlChildrenNode, 1);
mds_parameter_strct->structure_header = strdup((char*)elementValue);
if (elementValue != NULL){
mds_parameter_strct->structure_header = strdup((char*)elementValue);
}
else{
mds_parameter_strct->structure_header = strdup("");
}
xmlFree(elementValue);
}
}
......@@ -1820,7 +1830,7 @@ MDS_cuts_strct* init_MDS_cuts_strct()
void free_MDS_cuts_strct(MDS_cuts_strct *mds_cuts_strct)
{
int i;
// if there were no cut, nothing ot free
if(mds_cuts_strct==NULL) return;
......@@ -1867,7 +1877,7 @@ MDS_link_strct* init_MDS_link_strct(char* name)
void free_MDS_link_strct(MDS_link_strct *mds_link_strct)
{
free(mds_link_strct->name);
if(mds_link_strct==NULL) return;
if(mds_link_strct->endpoint1!=NULL)
......@@ -1898,10 +1908,10 @@ MDS_links_strct* init_MDS_links_strct()
void free_MDS_links_strct(MDS_links_strct *mds_links_strct)
{
int i;
// if no link, nothing to do
if(mds_links_strct==NULL) return;
if(mds_links_strct->link_list!=NULL)
{
......@@ -1938,7 +1948,10 @@ MDS_parameter_strct* init_MDS_parameter_strct(char* name)
mds_parameter_strct->d_value = NULL;
mds_parameter_strct->is_symmmetric = 0;
mds_parameter_strct->symmetric_parameter_name = NULL;
mds_parameter_strct->symmetric_parameter_name = NULL;
mds_parameter_strct->structure_name = NULL;
mds_parameter_strct->structure_header = NULL;
return mds_parameter_strct;
}
......@@ -1958,7 +1971,15 @@ void free_MDS_parameter_strct(MDS_parameter_strct *mds_parameter_strct)
free_MDS_d_data_strct(mds_parameter_strct->d_value[i]);
}
free(mds_parameter_strct->d_value);
free(mds_parameter_strct->d_value);
if (mds_parameter_strct->structure_header != NULL){
free(mds_parameter_strct->structure_header);
}
if (mds_parameter_strct->structure_name != NULL){
free(mds_parameter_strct->structure_name);
}
free(mds_parameter_strct);
}
......@@ -2008,7 +2029,7 @@ void free_MDS_user_models_strct(MDS_user_models_strct *mds_user_models_strct)
{
int i;
/*free(mds_user_models_strct->name);*/
// if no user model, nothing to do
if(mds_user_models_strct==NULL) return;
......
......@@ -31,10 +31,10 @@
MbsDirdyn* mbs_new_dirdyn(MbsData* mbs_data)
{
MbsAux* mbs_aux;
// Initialize the local data struct
mbs_aux = initMbsAux(mbs_data);
return mbs_new_dirdyn_aux(mbs_data, mbs_aux);
}
......@@ -64,11 +64,11 @@ MbsDirdyn* mbs_new_dirdyn_aux(MbsData* mbs_data, MbsAux* mbs_aux)
opts->max_save_user = 12;
opts->buffersize = -1;
opts->resfilename = NULL;
opts->respath = NULL;
opts->respath = NULL;
opts->animpath = NULL;
opts->realtime = 0;
opts->accelred = 0;
// adaptive time step integrator
dopr_opt = (MbsDirdynOptDopri5*) malloc(sizeof(MbsDirdynOptDopri5));
dopr_opt->flag_use = 0;
......@@ -76,7 +76,7 @@ MbsDirdyn* mbs_new_dirdyn_aux(MbsData* mbs_data, MbsAux* mbs_aux)
dopr_opt->flag_solout_wp = 0;
dopr_opt->verbose = 1;
dopr_opt->rtoler = 1.0e-3;
dopr_opt->atoler = 1.0e-3;
dopr_opt->atoler = 1.0e-6;
dopr_opt->dt_max = 1.0e-3;
dopr_opt->nmax = 1.0e9;
dopr_opt->delta_t_wp = 1.0e-3;
......@@ -119,22 +119,22 @@ void mbs_run_dirdyn(MbsDirdyn* dd, MbsData* mbs_data)
FILE* animFile;
// 1. Initialize the simulation
// - - - - - - - - - - - - - -
// - - - - - - - - - - - - - -
mbs_dirdyn_init(dd, mbs_data);
// 2. Run the simulation
// - - - - - - - - - - -
// - - - - - - - - - - -
mbs_dirdyn_loop(dd, mbs_data);
// 3. Finish the simulation
// - - - - - - - - - - - -
// - - - - - - - - - - - -
mbs_dirdyn_finish(dd, mbs_data);
}
void mbs_dirdyn_save(MbsDirdyn* dd, MbsData *mbs_data, double t){
int i;
#ifdef JAVA
Simu_realtime *realtime;
......@@ -152,7 +152,7 @@ void mbs_dirdyn_save(MbsDirdyn* dd, MbsData *mbs_data, double t){
#ifdef JAVA
realtime = (Simu_realtime*) mbs_data->realtime;
java = realtime->ext->java;
user_realtime_visu(mbs_data, java->nb_q, java->anim_q);
mbs_buffer_save(dd->buffer_visu, t, java->anim_q);
#endif
......@@ -166,8 +166,8 @@ void mbs_dirdyn_init(MbsDirdyn* dd, MbsData* mbs_data)
#ifdef JAVA
Simu_realtime *realtime;
Realtime_java *java;
#endif
#endif
// INITIALIZATION
// - - - - - - - -
......@@ -223,7 +223,7 @@ void mbs_dirdyn_init(MbsDirdyn* dd, MbsData* mbs_data)
dd->dt = dd->options->dt0;
// user intialization
user_init(mbs_data, dd);
user_dirdyn_init(mbs_data, dd);
// Simulation state initialization
for(i=1; i<=mbs_data->nqu; i++)
......@@ -245,7 +245,7 @@ void mbs_dirdyn_init(MbsDirdyn* dd, MbsData* mbs_data)
const char * fnameSuffix[] = {"q", "qd", "qdd", "Qq", "ux", "uxd"};
const int bufferIDs[6] = {BUFFER_Q, BUFFER_QD, BUFFER_QDD, BUFFER_QQ, BUFFER_UX, BUFFER_UXD};