|
Robotran C Documentation
|
Go to the documentation of this file.
8 #ifndef MBS_LOAD_JSON_h
9 #define MBS_LOAD_JSON_h
166 int mission,
int verbose);
181 int mission,
int verbose);
196 int mission,
int verbose);
214 JsonNode* node,
int mission,
int verbose);
325 int mission,
int verbose);
407 int mission,
int verbose);
434 int* err,
int mission,
int verbose);
458 char **joint_parent,
int mission,
const char *key);
548 char *geometry,
int allow_new,
int *err);
MbsLoadOptions * opts
Contains the options that must be used when loading the project.
Definition: mbs_load_struct.h:99
JsonNode * json_mkbool(bool b)
Definition: json.c:500
int mbs_info_extforces_json_binder(MbsInfos *mbs_info, JsonNode *node, int mission)
Read or update a external forces list json node with the infos.
Definition: mbs_load_json.c:2693
int n_rod
Definition: mbs_infos_struct.h:249
MbsInfoRefPoint * endpoint1
Definition: mbs_infos_struct.h:212
MbsInfoCuts * cuts
Definition: mbs_infos_struct.h:433
#define MBS_BASENAME
Definition: mbs_define.h:37
JsonNode * mbs_info_init_and_binderJSON_rtn(MbsInfos *mbs_infos, const char *mbs_json_name, int *err, int mission, int verbose)
Init and bind the MBS information contained in the .json file.
Definition: mbs_load_json.c:91
#define MBS_INFO_UPDATER
Definition: mbs_define.h:24
double * pt
Array with the coordinates (x, y, z) of the point relative to the origin of the body expressed in the...
Definition: mbs_infos_struct.h:105
int mbs_info_solid_json_binder(MbsInfoSolid *mbs_info_solid, JsonNode *node, int mission)
Read or update a solid cut json node with the infos.
Definition: mbs_load_json.c:1062
char * name
Definition: mbs_infos_struct.h:83
MbsInfoBody * mbs_new_info_body(void)
Definition: mbs_loader_public.c:741
char * structure_name
Name of the structure, filled if the parameter is a structure.
Definition: mbs_infos_struct.h:336
int Vit
1 if the computation of the sensor linear velocity has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:89
MbsInfoRefPoint * endpoint2
Definition: mbs_infos_struct.h:213
JsonNode * json_mkobject(void)
Definition: json.c:531
#define MBS_INFO_FAILURE
Definition: mbs_define.h:32
Definition: mbs_infos_struct.h:177
void mbs_msg(const char *msg,...)
Send a message.
Definition: mbs_message.c:87
double * scale
Scale (x, y, z) of the inline, Set to NULL to not update it.
Definition: mbs_saver_struct.h:40
char * bodyname
Name of the body that bear the reference point (origin of the joint chain until first body encounter)...
Definition: mbs_infos_struct.h:52
int verbose
Verbosity level (not yet implemented everywhere):
Definition: mbs_infos_struct.h:493
Declare required stuffs to update mbs files from MbsData state and user wishes.
void * loaded_structure
Pointer to the loaded mbs file specific structure (related to file format).
Definition: mbs_load_struct.h:126
int prj_relative_url
True (1) if the shape url (shape_url) start for project folder (without initial path separator).
Definition: mbs_saver_struct.h:47
char * name
Definition: mbs_infos_struct.h:221
int mbs_json_tab(JsonNode *node, double ***tab_ptr, int size_1, int size_2, const char *key, int mission)
Link between array (2D) value and the specific key of a Json node or the current node.
Definition: mbs_json.c:777
char * get_char_cpy(const char *fmt,...)
Copy the provided formatted string into a newly allocated memory.
Definition: useful_functions.c:235
int mbs_info_links_json_binder(MbsInfoLinks *mbs_info_links, JsonNode *node, int mission)
Read or update a links list json node with the infos.
Definition: mbs_load_json.c:2211
double * value_list
Vector (index starting at 1) containing the values retrieved from the multibody file.
Definition: mbs_infos_struct.h:299
char * name
Name of the parameter in the user model.
Definition: mbs_infos_struct.h:282
int mbs_json_set_double(JsonNode *node, double value)
Set a double into a node.
Definition: mbs_json.c:398
int n_out
Number of OUTPUT user IO in the system.
Definition: mbs_infos_struct.h:396
MbsInfoBodytree * mbs_new_info_bodytree(void)
Definition: mbs_loader_public.c:797
double * rotation
Rotation (around x, y, z) of the inline, Set to NULL to not update it.
Definition: mbs_saver_struct.h:42
struct JsonNode::@8::@10 children
int mbs_info_base_json_binder(MbsInfoBase *mbs_info_base, JsonNode *node, int mission)
Read or update the information in base node to MbsInfoBase.
Definition: mbs_load_json.c:314
int mbs_json_axis(JsonNode *axis_node, int *axis_int, int mission)
Read or update the information in an axis node with an integer.
Definition: mbs_load_json.c:3570
Structure defining the parent point of a body.
Definition: mbs_infos_struct.h:50
double qdd0
Initial acceleration of the joint.
Definition: mbs_infos_struct.h:138
int mbs_info_rod_json_binder(MbsInfoRod *mbs_info_rod, JsonNode *node, int mission)
Read or update a rod json node with the infos.
Definition: mbs_load_json.c:1007
int mbs_info_link_json_binder(MbsInfoLink *link_info, JsonNode *link_node, int mission)
Read or update a link (point to point or 3D) json node with the infos.
Definition: mbs_load_json.c:2342
char * joint_parent
parent joint of the current body (should be always NULL, if it is a parent point) ExtForce on a joint...
Definition: mbs_infos_struct.h:85
MbsInfoBase * base
Definition: mbs_infos_struct.h:431
int mbs_info_user_model_json_binder(MbsInfoUserModel *um_info, JsonNode *um_node, int mission, int verbose)
Read or update a user model json node with the infos.
Definition: mbs_load_json.c:1789
int mbs_info_joints_list_json_binder(MbsInfos *mbs_infos, JsonNode *joints_node, int mission)
To Be Defined.
Definition: mbs_load_json.c:2972
int n_base_point
Number of point of interest (extremities of joint bearing a sensor plus anchor point) defined on the ...
Definition: mbs_infos_struct.h:122
int on_base
True (1) if the shape is on the basebody.
Definition: mbs_saver_struct.h:62
@ IGNORE_LOADED
Definition: mbs_load_struct.h:95
char * body_name
Name of the body holding the point.
Definition: mbs_infos_struct.h:104
MbsInfoSolid * mbs_new_info_solid(void)
Definition: mbs_loader_public.c:928
@ KEEP_LOADED
Definition: mbs_load_struct.h:95
void mbs_error_msg(int err, const char *msg,...)
Send an error message.
Definition: mbs_message.c:131
double * get_dvec_0(int l_v)
create (with memory allocation) a vector (length l_v) of doubles, starting at index 0....
Definition: mbs_1D_array.c:1318
JsonNode * json_first_child(const JsonNode *node)
Definition: json.c:479
#define _MBS_ERR_LOW_FILES
Low Level error number Error during opening/writing files = -9.
Definition: mbs_errors_names.h:157
MbsInfoUserIO ** user_IO_list
The detail of each user IO in the system.
Definition: mbs_infos_struct.h:398
bool bool_
Definition: json.h:53
MbsInfoUserCstr * mbs_new_info_user_cstr(void)
Definition: mbs_loader_public.c:1267
This structure contains all informations about a joint.
Definition: mbs_infos_struct.h:130
Definition: mbs_infos_struct.h:246
int visible
Flag to show the shape (1) or hide it (0). Set to -1 to not update it.
Definition: mbs_saver_struct.h:109
int mbs_json_get_string(JsonNode *node, char **str_ptr)
Get the node value content as a string.
Definition: mbs_json.c:522
int mbs_info_link_json_binder(MbsInfoLink *mbs_info_link, JsonNode *node, int mission)
Read or update a link (point to point or 3D) json node with the infos.
Definition: mbs_load_json.c:2342
void free_ivec_0(int *vec)
release memory for a vector of integers, starting with index 0
Definition: mbs_1D_array.c:853
int mbs_info_bodies_json_binder(MbsInfos *mbs_infos, JsonNode *bdies_node, int mission)
Definition: mbs_load_json.c:633
#define json_foreach(i, object_or_array)
Definition: json.h:100
int Omp
1 if the computation of the sensor angular acceleration has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:93
int Om
1 if the computation of the sensor angular velocity has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:90
int mbs_strcmp(const char *__s1, const char *__s2)
Compare two char with strcmp.
Definition: useful_functions.c:569
int mbs_info_sensors_json_binder(MbsInfos *mbs_info, JsonNode *node, int mission)
Read or update a sensors list json node with the infos.
Definition: mbs_load_json.c:2527
int mbs_info_init_and_binderJSON(MbsInfos *mbs_infos, const char *mbs_json_name, int mission, int verbose)
Init and bind the MBS information contained in the .json file.
Definition: mbs_load_json.c:21
int n_usercstr
Definition: mbs_infos_struct.h:404
void free_dmat_0(double **mat)
release memory for a matrix of doubles, starting at index 0
Definition: mbs_matrix.c:683
MbsInfoRefPoint * parent_point
parent point of the sensor (NULL if it is a parent joint)
Definition: mbs_infos_struct.h:84
int mbs_json_joint_nature(JsonNode *nature_node, int *nature_int, int mission)
Read or update the information in an joint nature node with an integer.
Definition: mbs_load_json.c:3641
double * gravity
Array with the component (x, y, z) of the gravity vector expressed in the inertial frame.
Definition: mbs_infos_struct.h:121
int mbs_info_user_IO_json_binder(MbsInfoUserIO *mbs_info_user_IO, JsonNode *node, int mission)
Definition: mbs_load_json.c:2005
int n_ball
Definition: mbs_infos_struct.h:248
JsonNode * prev
Definition: json.h:45
double mass
Mass of the body.
Definition: mbs_infos_struct.h:168
int mbs_info_bodytree_json_binder(MbsInfos *mbs_infos, JsonNode *node, int mission)
Read or update the information in tree->bodies node to MbsInfoBase fields.
MbsInfoParameter * mbs_new_info_parameter(void)
Definition: mbs_loader_public.c:1088
MbsInfoSensor * mbs_new_info_sensor(void)
Definition: mbs_loader_public.c:540
@ JSON_OBJECT
Definition: json.h:36
int mbs_info_sensors_json_binder(MbsInfos *mbs_info, JsonNode *sensors_node, int mission)
Read or update a sensors list json node with the infos.
Definition: mbs_load_json.c:2527
int size
Number of values in the user IO.
Definition: mbs_infos_struct.h:379
int Acc
1 if the computation of the sensor linear acceleration has been asked, 0 otherwise....
Definition: mbs_infos_struct.h:71
void mbs_warning_msg(const char *msg,...)
Send a warning message.
Definition: mbs_message.c:100
int mbs_body_joint_recursive_linker(MbsInfos *mbs_info, int *ind_body_joint, int mission, int body_index)
Definition: mbs_load_json.c:3044
Definition: mbs_infos_struct.h:429
int mbs_json_cmp_string(JsonNode *node, char *string)
Compare a string node content with a string.
Definition: mbs_json.c:509
int n_base_sensor
Number of sensor on the basebody.
Definition: mbs_infos_struct.h:454
int mbs_info_links_json_binder(MbsInfoLinks *links_info, JsonNode *links_node, int mission)
Read or update a links list json node with the infos.
Definition: mbs_load_json.c:2211
This header includes the functions to bind the JSON information to the MbsInfos structure.
int type
Nature of the user IO:
Definition: mbs_infos_struct.h:377
double * position
Position (x, y, z) of the inline, Set to NULL to not update it.
Definition: mbs_saver_struct.h:38
JsonNode * next
Definition: json.h:45
char * name
Name of the point.
Definition: mbs_infos_struct.h:103
char * name
Definition: mbs_infos_struct.h:260
int mbs_json_inertia(JsonNode *bdy_node, MbsInfoBody *mbs_info_body, int mission)
Translate the inertia key of a node from array (3,3) in node to array (6) in info.
Definition: mbs_load_json.c:3712
MbsInfoSensor * sensor
Pointer to a sensor structure if a sensor is defined on the point.
Definition: mbs_infos_struct.h:107
int mbs_info_sensor_json_binder(MbsInfoSensor *mbs_info_sensor, JsonNode *node, int mission)
Read or update a sensor json node with the infos.
Definition: mbs_load_json.c:2437
int mbs_json_axis(JsonNode *axis_node, int *axis_int, int mission)
Read or update the information in an axis node with an integer.
Definition: mbs_load_json.c:3570
int mbs_info_json_linker(MbsInfos *mbs_info, int mission)
Definition: mbs_load_json.c:3258
int mbs_tree_cleaner(MbsInfos *mbs_info, int mission)
Correct the parents of joints.
Definition: mbs_load_json.c:3081
JsonNode * json_mkarray(void)
Definition: json.c:526
int mbs_info_base_json_binder(MbsInfoBase *mbs_info_base, JsonNode *base_node, int mission)
Binders /////////////////////////////.
Definition: mbs_load_json.c:314
MbsInfoPoint ** base_point_list
Array of pointers to the MDS_point_strct describing each point of the MBS.
Definition: mbs_infos_struct.h:123
int mbs_info_user_cstr_json_binder(MbsInfoUserCstr *mbs_info_user_cstr, JsonNode *node, int mission)
Definition: mbs_load_json.c:2121
char * name
Name of the joint.
Definition: mbs_infos_struct.h:132
double ** get_dmat_0(int nb_r, int nb_c)
create (with memory allocation) a [nb_r times nb_c] matrix of doubles, starting at index 0 The functi...
Definition: mbs_matrix.c:603
int mbs_info_joint_json_binder(MbsInfoJoint *mbs_info_joint, JsonNode *node, int mission, int verbose)
Read or update the information in joints node to MbsInfoBase, MbsInfoJoints.
Definition: mbs_load_json.c:2779
#define _MBS_ERR_MOD_SPEC_19
Generic error number Module specific errors range from -11 to -19 please read the error message a...
Definition: mbs_errors_names.h:220
int mbs_info_user_model_json_binder(MbsInfoUserModel *um_info, JsonNode *um_node, int mission, int verbose)
Read or update a user model json node with the infos.
Definition: mbs_load_json.c:1789
Definition: mbs_infos_struct.h:235
int mbs_info_synch_shape(JsonNode *shape, UpdateInline *up_in, UpdateShape *up_sh)
Synchronize, or fill with default value, a shape Json object node.
Definition: mbs_load_json.c:4153
MbsInfoUserIO * mbs_new_info_user_IO(void)
Definition: mbs_loader_public.c:1232
MbsInfoJoint * mbs_new_info_joint(void)
Definition: mbs_loader_public.c:696
MbsInfoRod ** rod_list
Definition: mbs_infos_struct.h:253
int mbs_info_body_json_binder(MbsInfoBody *mbs_info_body, JsonNode *bdy_node, int mission)
Read or update the information from body node to its MbsInfo.
Definition: mbs_load_json.c:524
Definition: mbs_infos_struct.h:351
int mbs_info_ref_point_json_binder(MbsInfoRefPoint *mbs_info_ref_point, JsonNode *node, int mission)
Definition: mbs_load_json.c:899
JsonNode * json_mkstring(const char *s)
Definition: json.c:514
int * get_ivec_1(int l_v)
create (with memory allocation) a vector (length l_v) of integers, starting at index 1
Definition: mbs_1D_array.c:834
int mbs_info_update_shapes_json(MbsLoader *mbs_loader, UpdateInline *up_in, UpdateShape *up_sh, int allow_new)
Update, or create this shape/inline and all next in the linked list.
Definition: mbs_load_json.c:4452
MbsInfoParameter ** parameter_list
Definition: mbs_infos_struct.h:356
This header defines MbsInfos loading/deleting functions.
MbsInfoPoint ** point_list
Array of pointers to the MDS_point_strct describing each point of current body.
Definition: mbs_infos_struct.h:173
struct UpdateInline * next
Pointer to next inline to be updated.
Definition: mbs_saver_struct.h:52
MbsInfoRefPoint * endpoint1
Definition: mbs_infos_struct.h:262
double * height
DEPRECATED for Json formatted project.
Definition: mbs_saver_struct.h:95
int mbs_info_links3d_json_binder(MbsInfoLinks *mbs_info_links, JsonNode *node, int mission)
Definition: mbs_load_json.c:2389
MbsInfoUserIOs * mbs_new_info_user_IOs(void)
Definition: mbs_loader_public.c:1252
MbsInfoBall * mbs_new_info_ball(void)
Definition: mbs_loader_public.c:858
char * shape_name
Name of the shape in the shape list.
Definition: mbs_saver_struct.h:31
void json_delete(JsonNode *node)
Definition: json.c:407
double * inertia
Array with the inertia tensor (Ixx, Ixy, Ixz, Iyy, Iyz, Izz) of the body relative to the center of ma...
Definition: mbs_infos_struct.h:170
JsonNode * json_get_body_3Dshapes(JsonNode *body_node, int create, int *err)
Return the shapes array on the provided body node.
Definition: mbs_load_json.c:3975
int mbs_info_user_models_json_binder(MbsInfoUserModels *ums_info, JsonNode *ums_node, int mission, int verbose)
Read or update the user models list json node with the infos.
Definition: mbs_load_json.c:1910
int mbs_info_extforce_json_binder(MbsInfoExtforce *force_info, JsonNode *force_node, int mission)
Read or update a external force json node with the infos.
Definition: mbs_load_json.c:2612
JsonNode * json_find_element(JsonNode *array, int index)
Definition: json.c:448
int actuated
For inverse dynamic only: 1 if actuated, 0 otherwise.
Definition: mbs_infos_struct.h:140
int Pos
1 if the computation of the sensor position has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:87
JsonNode * mbs_info_init_and_binderJSON_rtn(MbsInfos *mbs_infos, const char *mbs_json_name, int *err, int mission, int verbose)
Init and bind the MBS information contained in the .json file.
Definition: mbs_load_json.c:91
@ SHAPE_INLINE
Definition: mbs_saver_struct.h:18
int Jdqd
1 if the computation of the sensor jdqd term has been asked, 0 otherwise. Mutually exclusive with Acc...
Definition: mbs_infos_struct.h:92
char * name
Definition: mbs_infos_struct.h:210
int mbs_info_cuts_json_binder(MbsInfoCuts *mbs_info_cuts, JsonNode *node, int mission)
Read or update the cuts list json node with the infos.
Definition: mbs_load_json.c:1109
MbsInfoJoint * find_joint_with_parent_in_joint_list(MbsInfos *mbs_infos, char *jointname)
Definition: mbs_loader_public.c:1602
MbsInfoSensor ** sensor_list
Pointer to a list of sensor.
Definition: mbs_infos_struct.h:482
int type
Type of the parameter between 1 and 7.
Definition: mbs_infos_struct.h:285
int mbs_info_init_and_binderJSON(MbsInfos *mbs_infos, const char *mbs_json_name, int mission, int verbose)
Init and bind the MBS information contained in the .json file.
Definition: mbs_load_json.c:21
int mbs_adapt_joint_nature(MbsInfoJoint *joint_info, int verbose)
Check the symbols definition and changes the nature to locked if compatible.
Definition: mbs_loader_public.c:1664
double qd0
Initial velocity of the joint.
Definition: mbs_infos_struct.h:137
char * joint_parent
parent joint of the current body (NULL if it is a parent point)
Definition: mbs_infos_struct.h:64
char * description
Description of the user model.
Definition: mbs_infos_struct.h:354
MbsInfoUserIOs * user_IOs
Definition: mbs_infos_struct.h:436
Description of a user model parameter loaded from the mbs file.
Definition: mbs_infos_struct.h:280
MbsInfoLinks * mbs_new_info_links(void)
Definition: mbs_loader_public.c:1044
int Om
1 if the computation of the sensor angular velocity has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:70
char * structure_header
Header name with path (relative or absolute) of header describing a structure parameter.
Definition: mbs_infos_struct.h:338
void mbs_msg_v(int v_opt, int v_lvl, const char *msg,...)
Send a message only of the message level is lower than the verbosity option.
Definition: mbs_message.c:143
Definition: mbs_load_struct.h:97
void * val_ptr
Pointer to the memory storing the value.
Definition: mbs_infos_struct.h:322
int json_is_on_base(JsonNode *parent)
Check if a parent node (of body or joint) is the base.
Definition: mbs_load_json.c:3825
int n_parameter
Definition: mbs_infos_struct.h:355
char * reference_joint
joint of the reference frame - relative sensor (NULL if the sensor is relative to the base)....
Definition: mbs_infos_struct.h:65
int Acc
1 if the computation of the sensor linear acceleration has been asked, 0 otherwise....
Definition: mbs_infos_struct.h:91
MbsInfoRefPoint * endpoint2
Definition: mbs_infos_struct.h:240
int mbs_info_tree_json_binder(MbsInfos *mbs_infos, JsonNode *node, int mission)
Read or update the information from tree node to all MbsInfos.
Definition: mbs_load_json.c:750
#define MSG_PRE
Definition: mbs_load_json.c:17
int mbs_json_info_to_loader(MbsLoader *mbs_loader, const char *filename)
Load and store the specified json file into the MbsLoader.
Definition: mbs_load_json.c:37
char * key
Definition: json.h:48
int type
Joint type: T1=1, T2=2, T3=3, R1=4, R2=5, R3=6.
Definition: mbs_infos_struct.h:133
MbsInfoExtforce * mbs_new_info_extforce(void)
Definition: mbs_loader_public.c:571
int mbs_json_parent(JsonNode *node, MbsInfoRefPoint **point_parent, char **joint_parent, int mission, const char *key)
Link between a parent infomation and a parent node.
Definition: mbs_load_json.c:344
#define _MBS_ERR_LOW_NULL_PTR
Low Level error number A called symbolic or user function is set to NULL;.
Definition: mbs_errors_names.h:142
int mbs_info_ball_json_binder(MbsInfoBall *ball_info, JsonNode *ball_node, int mission)
Read or update a ball json node with the infos.
Definition: mbs_load_json.c:960
double * rotation
Rotation (around x, y, z) of the inline, Set to NULL to not update it.
Definition: mbs_saver_struct.h:104
JsonNode * json_get_shape(JsonNode *shapes_node, char *shape_name, char *geometry, int allow_new, int *err)
Return the shape matching the name and geometry from the given list.
Definition: mbs_load_json.c:4055
int count_json_elements(JsonNode *node)
Counts the number of element in the json node.
Definition: mbs_json.c:32
Definition: mbs_infos_struct.h:389
double * convert_dvec_1_to_0(double *src, int size, int free_src)
Copy a dvec1 into a new allocated dvec0.
Definition: mbs_1D_array.c:1419
int mbs_json_bool(JsonNode *node, int *val_ptr, char *key, int mission, int allow_missing)
Link between bool value (int) and the specific key of a Json node or the current node.
Definition: mbs_json.c:855
char * name
Name of the user IO.
Definition: mbs_infos_struct.h:373
int n_user_IO
Number of user IO in the system.
Definition: mbs_infos_struct.h:392
@ JSON_LOADED
Definition: mbs_load_struct.h:95
double transparency
Transparency (1 is invisible, 0 is fully visible) of the inline, Set to negative value to not update ...
Definition: mbs_saver_struct.h:107
JsonNode * json_get_body(JsonNode *bodies_node, char *body_name, int create, int *err)
Find the first body with matching name inside the bodies list.
Definition: mbs_load_json.c:3898
int ** user_cstr_mat
Definition: mbs_infos_struct.h:406
double transparency
Transparency (1 is invisible, 0 is fully visible) of the inline, Set to negative value to not update ...
Definition: mbs_saver_struct.h:44
JsonNode * json_get_basebody(JsonNode *bodies_node, int create, int *err)
Find the first body linked to the base inside the bodies list.
Definition: mbs_load_json.c:3842
#define MBS_INFO_INIT
Definition: mbs_define.h:27
Definition: mbs_infos_struct.h:402
MbsInfoLink ** link_list
Definition: mbs_infos_struct.h:270
char * name
Definition: mbs_infos_struct.h:237
Definition: mbs_infos_struct.h:267
#define MSG_ERR
Definition: mbs_load_json.c:16
ShapeIds shape_nature
Indicate if the shape is a box, cylinder, cone or sphere:
Definition: mbs_saver_struct.h:75
MbsInfoBase * mbs_new_info_base(void)
Definition: mbs_loader_public.c:661
int mbs_info_json_linker(MbsInfos *mbs_info, int mission)
Definition: mbs_load_json.c:3258
int mbs_info_point_list_json_binder(MbsInfoPoint ***point_list, JsonNode *node, int mission, char *body_name, int *n_point)
Link between points array value and all "points" key of a Json object node.
Definition: mbs_load_json.c:1262
MbsInfoRefPoint * parent
Definition: mbs_infos_struct.h:150
int mbs_info_body_json_binder(MbsInfoBody *mbs_info_body, JsonNode *node, int mission)
Read or update the information from body node to its MbsInfo.
Definition: mbs_load_json.c:524
@ SHAPE_BOX
Definition: mbs_saver_struct.h:14
int n_sensor
Number of sensor in the model (includes the sensors on the base).
Definition: mbs_infos_struct.h:452
MbsInfoBody ** body_list
Definition: mbs_infos_struct.h:180
int mbs_info_update_shapes_json(MbsLoader *mbs_loader, UpdateInline *up_in, UpdateShape *up_sh, int allow_new)
Update, or create this shape/inline and all next in the linked list.
Definition: mbs_load_json.c:4452
int n_point
Number of point defined on the body.
Definition: mbs_infos_struct.h:172
MbsInfoUserCstr * user_cstr
Definition: mbs_infos_struct.h:437
double * radius
DEPRECATED for Json formatted project.
Definition: mbs_saver_struct.h:90
int Pos
1 if the computation of the sensor position has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:67
This structure contains all informations about a body.
Definition: mbs_infos_struct.h:158
MbsInfoRefPoint * mbs_new_info_ref_point(void)
Definition: mbs_loader_public.c:509
@ JSON_STRING
Definition: json.h:33
int on_base
True (1) if the shape is on the basebody.
Definition: mbs_saver_struct.h:27
Definition: mbs_infos_struct.h:258
int mbs_info_sensor_json_binder(MbsInfoSensor *sensor_info, JsonNode *sensor_node, int mission)
Read or update a sensor json node with the infos.
Definition: mbs_load_json.c:2437
int mbs_json_joint_nature(JsonNode *nature_node, int *nature_int, int mission)
Read or update the information in an joint nature node with an integer.
Definition: mbs_load_json.c:3641
int mbs_info_point_json_binder(MbsInfoPoint *mbs_info_point, JsonNode *node, int mission)
Definition: mbs_load_json.c:1493
double * convert_dvec_0_to_1(double *src, int size, int free_src)
Copy a dvec0 into a new allocated dvec1.
Definition: mbs_1D_array.c:1403
MbsInfoExtforce * extforce
Pointer to an external force sensor structure if it is defined on the point.
Definition: mbs_infos_struct.h:108
JsonNode * json_get_body_3Dshapes(JsonNode *body_node, int create, int *err)
Return the shapes array on the provided body node.
Definition: mbs_load_json.c:3975
MbsInfos * mbs_infos
Contains the multibody structure with more informations than used by computation.
Definition: mbs_load_struct.h:103
char * string_name
Pointer containing the string name (if type is 8). NULL otherwise.
Definition: mbs_infos_struct.h:303
int mbs_info_json_binder(MbsInfos *mbs_infos, JsonNode *root_node, int mission, int verbose)
Read or update the information from root node to all MbsInfo.
Definition: mbs_load_json.c:138
int mbs_info_user_models_json_binder(MbsInfoUserModels *ums_info, JsonNode *ums_node, int mission, int verbose)
Read or update the user models list json node with the infos.
Definition: mbs_load_json.c:1910
JsonNode * load_and_create_json(const char *mbs_json_filename, int *err)
Definition: mbs_json.c:116
MbsInfoLinks * links
Definition: mbs_infos_struct.h:434
int mbs_info_user_IOs_json_binder(MbsInfoUserIOs *mbs_info_user_IOs, JsonNode *node, int mission, int verbose)
Read the user Input output variables list json node with the infos.
Definition: mbs_load_json.c:2053
int mbs_info_cuts_json_binder(MbsInfoCuts *cuts_info, JsonNode *cuts_node, int mission)
Read or update the cuts list json node with the infos.
Definition: mbs_load_json.c:1109
char * name
Name of the sensor.
Definition: mbs_infos_struct.h:62
int mbs_json_string(JsonNode *node, char **str_ptr, const char *key, int mission, int allow_missing)
Link between string value and the specific key of a Json node.
Definition: mbs_json.c:436
ShapeIds
Definition: mbs_saver_struct.h:12
int constr_process
Definition: mbs_infos_struct.h:405
JsonNode * json_find_member(JsonNode *object, const char *name)
Definition: json.c:465
int n_solid
Definition: mbs_infos_struct.h:250
int * get_ivec_0(int l_v)
create (with memory allocation) a vector (length l_v) of integers, starting at index 0....
Definition: mbs_1D_array.c:818
Definition: mbs_infos_struct.h:370
int visible
Flag to show the shape (1) or hide it (0). Set to -1 to not update it.
Definition: mbs_saver_struct.h:50
char * joint_parent
parent joint of the current body (NULL if it is a parent point)
Definition: mbs_infos_struct.h:163
Definition: mbs_infos_struct.h:219
int n_value
Number of values in the parameter.
Definition: mbs_infos_struct.h:297
int n_user_model
Definition: mbs_infos_struct.h:362
double * com
Array with the coordinate (x, y, z) of the center of mass of the body relative to the origin of the b...
Definition: mbs_infos_struct.h:169
This structure contains all information about a sensor defined on the MBS structure.
Definition: mbs_infos_struct.h:60
int json_is_on_base(JsonNode *parent)
Check if a parent node (of body or joint) is the base.
Definition: mbs_load_json.c:3825
int mbs_info_parameter_json_binder(MbsInfoParameter *param_info, JsonNode *param_node, int mission, int verbose)
Read or update a user model parameter json node with the infos.
Definition: mbs_load_json.c:1541
int symb_q
Flag to generate symbol for position.
Definition: mbs_infos_struct.h:146
char * structure_lutfile
File and path (relative or absolute) to the file containing the Look-up-Table dats.
Definition: mbs_infos_struct.h:345
#define _MBS_ERR_MOD_SPEC_18
Genericerror number Module specific errors range from -11 to -19 please read the error message an...
Definition: mbs_errors_names.h:214
Define modifications to be done on a basic shape.
Definition: mbs_saver_struct.h:59
int mbs_info_coordinates_json_binder(double *coordinates_pointer, JsonNode *node, int mission)
Definition: mbs_load_json.c:919
int nature
Nature of the joint: independent=1, dependent=2, driven=3, locked=4.
Definition: mbs_infos_struct.h:134
Structure handling the informations defined on the base of the MBS.
Definition: mbs_infos_struct.h:119
int Rot
1 if the computation of the sensor rotation matrix has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:68
int mbs_json_info_to_loader(MbsLoader *mbs_loader, const char *filename)
Load and store the specified json file into the MbsLoader.
Definition: mbs_load_json.c:37
int mbs_json_inertia(JsonNode *bdy_node, MbsInfoBody *mbs_info_body, int mission)
Translate the inertia key of a node from array (3,3) in node to array (6) in info.
Definition: mbs_load_json.c:3712
#define MBS_INFO_CMP
Definition: mbs_define.h:28
MbsInfoPoint * mbs_new_info_point(void)
Definition: mbs_loader_public.c:600
This structure handle everything that a point on a MBS structure can handle (sensor,...
Definition: mbs_infos_struct.h:101
int n_joint
Number of joints in the model
Definition: mbs_infos_struct.h:480
#define MBS_VERBOSE_WARNING
Definition: mbs_define.h:46
@ SHAPE_CONE
Definition: mbs_saver_struct.h:16
JsonTag tag
Definition: json.h:50
char * pointname
Name of the reference point on the previous body.
Definition: mbs_infos_struct.h:53
MbsInfoRefPoint * endpoint1
Definition: mbs_infos_struct.h:223
JsonNode * json_get_shape(JsonNode *shapes_node, char *shape_name, char *geometry, int allow_new, int *err)
Return the shape matching the name and geometry from the given list.
Definition: mbs_load_json.c:4055
int mbs_tree_cleaner(MbsInfos *mbs_info, int mission)
Correct the parents of joints.
Definition: mbs_load_json.c:3081
void * mbs_free(void *__ptr)
Free the pointor ptr and set it to NULL.
Definition: useful_functions.c:21
MbsInfoBody * children_body
Body direct children of the joint.
Definition: mbs_infos_struct.h:152
MbsInfoSolid ** solid_list
Definition: mbs_infos_struct.h:254
int mbs_json_get_double(JsonNode *node, double *val_ptr)
Get the node value content a double.
Definition: mbs_json.c:346
int mbs_info_user_cstr_json_binder(MbsInfoUserCstr *mbs_info_user_cstr, JsonNode *node, int mission)
Definition: mbs_load_json.c:2121
int mbs_info_extforces_json_binder(MbsInfos *mbs_info, JsonNode *forces_node, int mission)
Read or update a external forces list json node with the infos.
Definition: mbs_load_json.c:2693
MbsInfoRefPoint * endpoint1
Definition: mbs_infos_struct.h:239
MbsInfoBodytree * bodytree
Definition: mbs_infos_struct.h:432
JsonNode * json_get_body(JsonNode *bodies_node, char *body_name, int create, int *err)
Find the first body with matching name inside the bodies list.
Definition: mbs_load_json.c:3898
void json_append_member(JsonNode *object, const char *key, JsonNode *value)
Definition: json.c:584
double * scale
DEPRECATED for Json formatted project.
Definition: mbs_saver_struct.h:102
int mbs_info_ref_point_json_binder(MbsInfoRefPoint *mbs_info_ref_point, JsonNode *node, int mission)
Definition: mbs_load_json.c:899
double * position
Definition: mbs_saver_struct.h:97
int verbose
Verbosity level (not yet implemented everywhere): Verbosity level propagated to other compatible modu...
Definition: mbs_load_struct.h:43
int n_base_extforce
Number of external force on the basebody.
Definition: mbs_infos_struct.h:461
double length
Definition: mbs_infos_struct.h:226
void free_ivec_1(int *vec)
release memory for a vector of integers, starting with index 1
Definition: mbs_1D_array.c:858
int mbs_json_set_string(JsonNode *node, const char *string)
Set a char into a node.
Definition: mbs_json.c:569
MbsInfoUserModel ** user_model_list
Definition: mbs_infos_struct.h:363
int mbs_info_links3d_json_binder(MbsInfoLinks *mbs_info_links, JsonNode *node, int mission)
Definition: mbs_load_json.c:2389
MbsInfoUserModel * mbs_new_info_user_model(void)
Definition: mbs_loader_public.c:1159
@ SHAPE_CYLINDER
Definition: mbs_saver_struct.h:15
MbsInfoBall ** ball_list
Definition: mbs_infos_struct.h:252
MbsInfoCuts * mbs_new_info_cuts(void)
Definition: mbs_loader_public.c:961
Definition: mbs_infos_struct.h:208
int mbs_info_extforce_json_binder(MbsInfoExtforce *mbs_info_extf, JsonNode *node, int mission)
Read or update a external force json node with the infos.
Definition: mbs_load_json.c:2612
MbsInfoJoint ** joint_list
Array of pointers to the MDS_joint_strct describing each joint leaving the body.
Definition: mbs_infos_struct.h:166
MbsInfoRefPoint * parent_point
parent point of the sensor (NULL if it is a parent joint)
Definition: mbs_infos_struct.h:63
int mbs_info_user_IO_json_binder(MbsInfoUserIO *mbs_info_user_IO, JsonNode *node, int mission)
Definition: mbs_load_json.c:2005
int Rot
1 if the computation of the sensor rotation matrix has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:88
int mbs_json_double(JsonNode *node, double *val_ptr, char *key, int mission, int allow_missing)
Link between double value and the specific key of a Json node or the current node.
Definition: mbs_json.c:286
double * get_dvec_1(int l_v)
create (with memory allocation) a vector (length l_v) of doubles, starting at index 1
Definition: mbs_1D_array.c:1334
MbsInfoUserModels * mbs_new_info_user_models(void)
Definition: mbs_loader_public.c:1196
char * description
Description of the parameter in the user model.
Definition: mbs_infos_struct.h:283
int n_body
Definition: mbs_infos_struct.h:179
@ SHAPE_NONE
Definition: mbs_saver_struct.h:13
void free_dvec_0(double *vec)
release memory for a vector of doubles, starting at index 0
Definition: mbs_1D_array.c:1353
int loaded_nature
Flag to specifying either if the deep mbs file specific structure must be kept in memory (before load...
Definition: mbs_load_struct.h:123
MbsInfoRefPoint * endpoint2
Definition: mbs_infos_struct.h:224
#define MBS_INFO_SUCCESS
Definition: mbs_define.h:30
char * shape_name
Name of the shape in the shape list.
Definition: mbs_saver_struct.h:67
MbsInfoUserModels * user_models
Definition: mbs_infos_struct.h:435
double q0
Initial position of the joint.
Definition: mbs_infos_struct.h:136
struct UpdateShape * next
Pointer to next shape to be updated.
Definition: mbs_saver_struct.h:111
#define MBS_INFO_READER
Definition: mbs_define.h:23
Declare saver structure and enumeration.
int mbs_info_point_json_binder(MbsInfoPoint *mbs_info_point, JsonNode *node, int mission)
Definition: mbs_load_json.c:1493
char * string_
Definition: json.h:56
int mbs_info_json_binder(MbsInfos *mbs_infos, JsonNode *root_node, int mission, int verbose)
Read or update the information from root node to all MbsInfo.
Definition: mbs_load_json.c:138
int mbs_body_joint_recursive_linker(MbsInfos *mbs_info, int *ind_body_joint, int mission, int body_index)
Definition: mbs_load_json.c:3044
int symb_qdd
Flag to generate symbol for acceleration.
Definition: mbs_infos_struct.h:148
void json_append_element(JsonNode *array, JsonNode *element)
Definition: json.c:568
int mbs_info_user_IOs_json_binder(MbsInfoUserIOs *mbs_info_user_IOs, JsonNode *node, int mission, int verbose)
Read the user Input output variables list json node with the infos.
Definition: mbs_load_json.c:2053
@ JSON_ARRAY
Definition: json.h:35
MbsInfoExtforce ** extforce_list
Pointer to a list of external force sensor
Definition: mbs_infos_struct.h:484
char * base_body_name
baseBodyName as defined in the base body in mbs/json file
Definition: mbs_infos_struct.h:124
JsonNode * parent
Definition: json.h:44
char * body_name
Name of the body with the shape, disregarded if on_base is true.
Definition: mbs_saver_struct.h:29
char * name
Definition: mbs_infos_struct.h:353
int Jac
1 if the computation of the sensor Jacobian ( ) has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:94
char * joint_parent
Definition: mbs_infos_struct.h:151
MbsInfoLink ** link3D_list
Definition: mbs_infos_struct.h:273
char * name
Name of the body.
Definition: mbs_infos_struct.h:160
int mbs_info_ball_json_binder(MbsInfoBall *mbs_info_ball, JsonNode *node, int mission)
Read or update a ball json node with the infos.
Definition: mbs_load_json.c:960
#define MBS_INFO_COUNTER
Definition: mbs_define.h:26
int flag_PRJPATH
Flag to indicate that the path to the data file start from the project path (stored as "PRJPATH" in m...
Definition: mbs_infos_struct.h:343
int mbs_json_parent(JsonNode *node, MbsInfoRefPoint **point_parent, char **joint_parent, int mission, const char *key)
Link between a parent infomation and a parent node.
Definition: mbs_load_json.c:344
int mbs_info_joints_list_json_binder(MbsInfos *mbs_infos, JsonNode *joints_node, int mission)
To Be Defined.
Definition: mbs_load_json.c:2972
#define MBS_INFO_WARNING
Definition: mbs_define.h:31
char * body_name
Name of the body with the shape, disregarded if on_base is true.
Definition: mbs_saver_struct.h:64
int Jdqd
1 if the computation of the sensor jdqd term has been asked, 0 otherwise. Mutually exclusive with Acc...
Definition: mbs_infos_struct.h:72
int n_link
Definition: mbs_infos_struct.h:269
double number_
Definition: json.h:59
char * mbsname
Name of the project in the multibody system file.
Definition: mbs_infos_struct.h:442
char * padversion
Version number of the MBsysPAD that last modified the file.
Definition: mbs_infos_struct.h:444
int n_extforce
Number of external force in the model (includes the forces on the base).
Definition: mbs_infos_struct.h:459
double * size
The behavior of this field depend of the loaded project format.
Definition: mbs_saver_struct.h:85
Define modification to be done on a inline.
Definition: mbs_saver_struct.h:25
MbsInfoLink * mbs_new_info_link(void)
Definition: mbs_loader_public.c:1014
int mbs_json_array(JsonNode *node, double **tab_ptr, int *size, const char *key, int mission, int allow_missing)
Link an array (1D) value and the specific key of a Json node or the current node.
Definition: mbs_json.c:605
MbsInfoRefPoint * point_parent
Description of the parent point of the current body. (NULL if it is a parent joint)
Definition: mbs_infos_struct.h:162
int mbs_info_coordinates_json_binder(double *coordinates_pointer, JsonNode *node, int mission)
Definition: mbs_load_json.c:919
int n_in
Number of INPUT user IO in the system.
Definition: mbs_infos_struct.h:394
JsonNode * json_get_basebody(JsonNode *bodies_node, int create, int *err)
Find the first body linked to the base inside the bodies list.
Definition: mbs_load_json.c:3842
int mbs_info_synch_shape(JsonNode *shape, UpdateInline *up_in, UpdateShape *up_sh)
Synchronize, or fill with default value, a shape Json object node.
Definition: mbs_load_json.c:4153
int mbs_info_solid_json_binder(MbsInfoSolid *solid_info, JsonNode *solid_node, int mission)
Read or update a solid cut json node with the infos.
Definition: mbs_load_json.c:1062
MbsInfoRod * mbs_new_info_rod(void)
Definition: mbs_loader_public.c:890
@ SHAPE_SPHERE
Definition: mbs_saver_struct.h:17
int count_json_array_elements(JsonNode *node)
Counts the number of element in the Json array.
Definition: mbs_json.c:18
int mbs_info_parameter_json_binder(MbsInfoParameter *mbs_info_parameter, JsonNode *node, int mission, int verbose)
Read or update a user model parameter json node with the infos.
Definition: mbs_load_json.c:1541
Definition: mbs_infos_struct.h:360
int mbs_info_joint_json_binder(MbsInfoJoint *joint_info, JsonNode *joint_node, int mission, int verbose)
Read or update the information in joints node to MbsInfoBase, MbsInfoJoints.
Definition: mbs_load_json.c:2779
int Omp
1 if the computation of the sensor angular acceleration has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:73
int mbs_info_point_list_json_binder(MbsInfoPoint ***point_list, JsonNode *node, int mission, char *body_name, int *n_point)
Link between points array value and all "points" key of a Json object node.
Definition: mbs_load_json.c:1262
int mbs_info_rod_json_binder(MbsInfoRod *rod_info, JsonNode *rod_node, int mission)
Read or update a rod json node with the infos.
Definition: mbs_load_json.c:1007
int mbs_info_tree_json_binder(MbsInfos *mbs_infos, JsonNode *tree_node, int mission)
Read or update the information from tree node to all MbsInfos.
Definition: mbs_load_json.c:750
int n_link3D
Definition: mbs_infos_struct.h:272
JsonNode * json_mknumber(double n)
Definition: json.c:519
int symb_qd
Flag to generate symbol for velocity.
Definition: mbs_infos_struct.h:147
MbsInfoRefPoint * endpoint2
Definition: mbs_infos_struct.h:263
int Vit
1 if the computation of the sensor linear velocity has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:69
MbsInfoJoint ** all_joint_list
Ordered list of all joints in the model
Definition: mbs_infos_struct.h:478
This structure contains all information about an external force sensor defined on the MBS structure.
Definition: mbs_infos_struct.h:81
char * shape_url
Path to the shape file.
Definition: mbs_saver_struct.h:34
int Jac
1 if the computation of the sensor Jacobian ( ) has been asked, 0 otherwise.
Definition: mbs_infos_struct.h:74
int n_joint
Number of joints leaving the body.
Definition: mbs_infos_struct.h:165