|
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:95
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:2685
int n_rod
Definition: mbs_infos_struct.h:249
MbsInfoRefPoint * endpoint1
Definition: mbs_infos_struct.h:212
MbsInfoCuts * cuts
Definition: mbs_infos_struct.h:429
#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:736
char * structure_name
Name of the structure, filled if the parameter is a structure.
Definition: mbs_infos_struct.h:332
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:485
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:122
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:751
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:2203
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:394
int n_out
Number of OUTPUT user IO in the system.
Definition: mbs_infos_struct.h:392
MbsInfoBodytree * mbs_new_info_bodytree(void)
Definition: mbs_loader_public.c:792
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:3556
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:2334
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:427
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:2963
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:61
@ IGNORE_LOADED
Definition: mbs_load_struct.h:91
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:923
@ KEEP_LOADED
Definition: mbs_load_struct.h:91
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:1055
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:394
bool bool_
Definition: json.h:53
MbsInfoUserCstr * mbs_new_info_user_cstr(void)
Definition: mbs_loader_public.c:1256
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:92
int mbs_json_get_string(JsonNode *node, char **str_ptr)
Get the node value content as a string.
Definition: mbs_json.c:514
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:2334
void free_ivec_0(int *vec)
release memory for a vector of integers, starting with index 0
Definition: mbs_1D_array.c:590
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:568
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:2519
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:400
void free_dmat_0(double **mat)
release memory for a matrix of doubles, starting at index 0
Definition: mbs_matrix.c:374
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:3627
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:1997
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:1083
MbsInfoSensor * mbs_new_info_sensor(void)
Definition: mbs_loader_public.c:535
@ 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:2519
int size
Number of values in the user IO.
Definition: mbs_infos_struct.h:375
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:3035
Definition: mbs_infos_struct.h:425
int mbs_json_cmp_string(JsonNode *node, char *string)
Compare a string node content with a string.
Definition: mbs_json.c:501
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:2203
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:373
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:3698
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:2429
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:3556
int mbs_info_json_linker(MbsInfos *mbs_info, int mission)
Definition: mbs_load_json.c:3249
int mbs_tree_cleaner(MbsInfos *mbs_info, int mission)
Correct the parents of joints.
Definition: mbs_load_json.c:3072
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:2113
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:294
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:2770
#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:4139
MbsInfoUserIO * mbs_new_info_user_IO(void)
Definition: mbs_loader_public.c:1221
MbsInfoJoint * mbs_new_info_joint(void)
Definition: mbs_loader_public.c:691
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:347
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:571
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:4416
MbsInfoParameter ** parameter_list
Definition: mbs_infos_struct.h:352
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
Height, except for SHAPE_BOX and SHAPE_SPHERE, of the shape.
Definition: mbs_saver_struct.h:80
int mbs_info_links3d_json_binder(MbsInfoLinks *mbs_info_links, JsonNode *node, int mission)
Definition: mbs_load_json.c:2381
MbsInfoUserIOs * mbs_new_info_user_IOs(void)
Definition: mbs_loader_public.c:1241
MbsInfoBall * mbs_new_info_ball(void)
Definition: mbs_loader_public.c:853
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:3961
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:1902
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:2604
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:1589
MbsInfoSensor ** sensor_list
Pointer to a list of sensor.
Definition: mbs_infos_struct.h:474
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:1651
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:350
MbsInfoUserIOs * user_IOs
Definition: mbs_infos_struct.h:432
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:1039
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:334
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:93
void * val_ptr
Pointer to the memory storing the value.
Definition: mbs_infos_struct.h:305
int json_is_on_base(JsonNode *parent)
Check if a parent node (of body or joint) is the base.
Definition: mbs_load_json.c:3811
int n_parameter
Definition: mbs_infos_struct.h:351
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:566
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:87
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:4041
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:385
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:1144
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:829
char * name
Name of the user IO.
Definition: mbs_infos_struct.h:369
int n_user_IO
Number of user IO in the system.
Definition: mbs_infos_struct.h:388
@ JSON_LOADED
Definition: mbs_load_struct.h:91
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:89
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:3884
int ** user_cstr_mat
Definition: mbs_infos_struct.h:402
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:3828
#define MBS_INFO_INIT
Definition: mbs_define.h:27
Definition: mbs_infos_struct.h:398
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:68
MbsInfoBase * mbs_new_info_base(void)
Definition: mbs_loader_public.c:656
int mbs_info_json_linker(MbsInfos *mbs_info, int mission)
Definition: mbs_load_json.c:3249
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.
Definition: mbs_infos_struct.h:448
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:4416
int n_point
Number of point defined on the body.
Definition: mbs_infos_struct.h:172
MbsInfoUserCstr * user_cstr
Definition: mbs_infos_struct.h:433
double * radius
Radius, except for SHAPE_BOX, of the shape. Set to NULL to not update it.
Definition: mbs_saver_struct.h:78
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:504
@ 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:2429
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:3627
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:1128
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:3961
MbsInfos * mbs_infos
Contains the multibody structure with more informations than used by computation.
Definition: mbs_load_struct.h:99
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:1902
JsonNode * load_and_create_json(const char *mbs_json_filename, int *err)
Definition: mbs_json.c:116
MbsInfoLinks * links
Definition: mbs_infos_struct.h:430
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:2045
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:432
ShapeIds
Definition: mbs_saver_struct.h:12
int constr_process
Definition: mbs_infos_struct.h:401
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:555
Definition: mbs_infos_struct.h:366
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:358
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:3811
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:341
#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:3698
#define MBS_INFO_CMP
Definition: mbs_define.h:28
MbsInfoPoint * mbs_new_info_point(void)
Definition: mbs_loader_public.c:595
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:472
#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:4041
int mbs_tree_cleaner(MbsInfos *mbs_info, int mission)
Correct the parents of joints.
Definition: mbs_load_json.c:3072
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:342
int mbs_info_user_cstr_json_binder(MbsInfoUserCstr *mbs_info_user_cstr, JsonNode *node, int mission)
Definition: mbs_load_json.c:2113
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:2685
MbsInfoRefPoint * endpoint1
Definition: mbs_infos_struct.h:239
MbsInfoBodytree * bodytree
Definition: mbs_infos_struct.h:428
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:3884
void json_append_member(JsonNode *object, const char *key, JsonNode *value)
Definition: json.c:584
double * scale
Scale (x, y, z) of the shape, Set to NULL to not update it.
Definition: mbs_saver_struct.h:85
int mbs_info_ref_point_json_binder(MbsInfoRefPoint *mbs_info_ref_point, JsonNode *node, int mission)
Definition: mbs_load_json.c:899
double * position
Position (x, y, z) of the shape, Set to NULL to not update it.
Definition: mbs_saver_struct.h:83
int verbose
Verbosity level (not yet implemented everywhere): Verbosity level propagated to other compatible modu...
Definition: mbs_load_struct.h:39
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:595
int mbs_json_set_string(JsonNode *node, const char *string)
Set a char into a node.
Definition: mbs_json.c:561
MbsInfoUserModel ** user_model_list
Definition: mbs_infos_struct.h:359
int mbs_info_links3d_json_binder(MbsInfoLinks *mbs_info_links, JsonNode *node, int mission)
Definition: mbs_load_json.c:2381
MbsInfoUserModel * mbs_new_info_user_model(void)
Definition: mbs_loader_public.c:1154
@ 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:956
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:2604
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:1997
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:1071
MbsInfoUserModels * mbs_new_info_user_models(void)
Definition: mbs_loader_public.c:1188
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:1090
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:119
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:65
MbsInfoUserModels * user_models
Definition: mbs_infos_struct.h:431
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:94
#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:3035
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:2045
@ JSON_ARRAY
Definition: json.h:35
MbsInfoExtforce ** extforce_list
Pointer to a list of external force sensor
Definition: mbs_infos_struct.h:476
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:349
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:339
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:2963
#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:63
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:438
char * padversion
Version number of the MBsysPAD that last modified the file.
Definition: mbs_infos_struct.h:440
int n_extforce
Number of external force in the model.
Definition: mbs_infos_struct.h:453
double * size
Size, SHAPE_BOX only, along x, y, z. Set to NULL to not update it.
Definition: mbs_saver_struct.h:76
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:1009
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:597
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:390
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:3828
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:4139
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:885
@ 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:356
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:2770
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:470
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