#include "mbs_set.h"
#include <stdio.h>
#include <stdlib.h>
#include "useful_functions.h"
#include "mbs_message.h"
#include "mbs_errors_names.h"
Functions | |
void | mbs_set_nb_userc (MbsData *mbs_data, int Nuserc) |
Set the number of user constraints and update the related structures. More... | |
void | mbs_set_qu (MbsData *mbs_data, int qu) |
set a variable to independent partition More... | |
void | mbs_set_qv (MbsData *mbs_data, int qv) |
set a variable to dependent partition More... | |
void | mbs_set_qdriven (MbsData *mbs_data, int qdriven) |
set a variable to driven partition More... | |
void | mbs_set_qlocked (MbsData *mbs_data, int qlocked) |
set a variable to locked partition More... | |
void | mbs_set_qa (MbsData *mbs_data, int qa) |
set a variable to actuated partition More... | |
void | mbs_unset_qa (MbsData *mbs_data, int qa) |
unset a variable from the actuated partition More... | |
void | mbs_empty_qa (MbsData *mbs_data) |
Remove all joints from the actuated partition. More... | |
void | udpate_nq (MbsData *mbs_data, int new_nqu, int new_nqv, int new_nqc, int new_nqdriven, int new_nqlocked) |
DEPRECATED; do not use: update the nq variables, SHOULD not be used The function still works, however the number of joint of a specific nature should have been updated at the same time as the nature of the joint was changed. More... | |
int | add_mbs_q_elem (int *q_vec, int nq, int new_q) |
add a new index in a q vector It does not modify the vector and vector size if the index is already in the q vector. More... | |
int | remove_mbs_q_elem (int *q_vec, int nq, int old_q) |
remove an old index in a q vector It does not modify the vector and vector size if the index is not in the q vector. More... | |
void | print_mbs_q_all (MbsData *mbs_data) |
print the vectors qu, qv, qc, qdriven and qlocked More... | |
void | print_mbs_q_vec (int *q_vec, int nq) |
print a vector of indexes with first elem in brackets More... | |
Creation date: 11/06/2015
(c) Universite catholique de Louvain
int add_mbs_q_elem | ( | int * | q_vec, |
int | nq, | ||
int | new_q | ||
) |
add a new index in a q vector It does not modify the vector and vector size if the index is already in the q vector.
[in,out] | q_vec | original q vector, have to be initialized at size njoint |
[in] | nq | number of elements in the original vector |
[in] | new_q | new index to add |
void mbs_empty_qa | ( | MbsData * | mbs_data | ) |
Remove all joints from the actuated partition.
[in,out] | mbs_data | MbsData structure to modify |
This function must be called after mbs_load()
void mbs_set_nb_userc | ( | MbsData * | mbs_data, |
int | Nuserc | ||
) |
Set the number of user constraints and update the related structures.
[in,out] | mbs_data | MbsData structure to modify |
[in] | Nuserc | number of user constraints |
This function must be called between mbs_load() and mbs_new_part() in 'main.c'
void mbs_set_qa | ( | MbsData * | mbs_data, |
int | qa | ||
) |
set a variable to actuated partition
[in,out] | mbs_data | MbsData structure to modify |
[in] | qa | variable to set to actuated |
This function must be called after mbs_load()
void mbs_set_qdriven | ( | MbsData * | mbs_data, |
int | qdriven | ||
) |
set a variable to driven partition
[in,out] | mbs_data | MbsData structure to modify |
[in] | qdriven | variable to set to driven |
This function must be called between mbs_load() and mbs_new_part() in 'main.c'
void mbs_set_qlocked | ( | MbsData * | mbs_data, |
int | qlocked | ||
) |
set a variable to locked partition
[in,out] | mbs_data | MbsData structure to modify |
[in] | qlocked | variable to set to locked |
This function must be called between mbs_load() and mbs_new_part() in 'main.c'
void mbs_set_qu | ( | MbsData * | mbs_data, |
int | qu | ||
) |
set a variable to independent partition
[in,out] | mbs_data | MbsData structure to modify |
[in] | qu | variable to set to independent |
This function must be called between mbs_load() and mbs_new_part() in 'main.c'
void mbs_set_qv | ( | MbsData * | mbs_data, |
int | qv | ||
) |
set a variable to dependent partition
[in,out] | mbs_data | MbsData structure to modify |
[in] | qv | variable to set to dependent |
This function must be called between mbs_load() and mbs_new_part() in 'main.c'
void mbs_unset_qa | ( | MbsData * | mbs_data, |
int | qa | ||
) |
unset a variable from the actuated partition
[in,out] | mbs_data | MbsData structure to modify |
[in] | qa | variable to unset form the actuated partition |
This function must be called after mbs_load()
void print_mbs_q_all | ( | MbsData * | mbs_data | ) |
print the vectors qu, qv, qc, qdriven and qlocked
[in] | mbs_data | MbsData structure to modify |
void print_mbs_q_vec | ( | int * | q_vec, |
int | nq | ||
) |
print a vector of indexes with first elem in brackets
[in] | q_vec | vector to print |
[in] | nq | size of the vector - 1 |
int remove_mbs_q_elem | ( | int * | q_vec, |
int | nq, | ||
int | old_q | ||
) |
remove an old index in a q vector It does not modify the vector and vector size if the index is not in the q vector.
[in,out] | q_vec | original q vector, have to be initialized at size njoint |
[in] | nq | number of elements in the original vector |
[in] | old_q | old index to remove |
void udpate_nq | ( | MbsData * | mbs_data, |
int | new_nqu, | ||
int | new_nqv, | ||
int | new_nqc, | ||
int | new_nqdriven, | ||
int | new_nqlocked | ||
) |
DEPRECATED; do not use: update the nq variables, SHOULD not be used The function still works, however the number of joint of a specific nature should have been updated at the same time as the nature of the joint was changed.
[in,out] | mbs_data | MbsData structure to modify |
[in] | new_nqu | the new number of independent joints |
[in] | new_nqv | the new number of dependent joints |
[in] | new_nqc | the new number of driven and locked joints |
[in] | new_nqdriven | the new number of driven joint |
[in] | new_nqlocked | the new number of locked joint |