33 lines
928 B
C
33 lines
928 B
C
#ifndef LINUXCNC_WEB_WASM_SIM_POSEMATH_H
|
|
#define LINUXCNC_WEB_WASM_SIM_POSEMATH_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
enum sim_posemath_result {
|
|
SIM_POSEMATH_OK = 0,
|
|
SIM_POSEMATH_ERR_ARGUMENT = -400,
|
|
SIM_POSEMATH_ERR_NONFINITE = -401,
|
|
SIM_POSEMATH_ERR_DEGENERATE = -402,
|
|
SIM_POSEMATH_ERR_RANGE = -403,
|
|
};
|
|
|
|
typedef struct sim_posemath_cartesian {
|
|
double x;
|
|
double y;
|
|
double z;
|
|
} sim_posemath_cartesian;
|
|
|
|
int sim_posemath_normalize(const sim_posemath_cartesian *input, sim_posemath_cartesian *output);
|
|
int sim_posemath_dot(const sim_posemath_cartesian *left, const sim_posemath_cartesian *right, double *output);
|
|
int sim_posemath_line_point(const sim_posemath_cartesian *start, const sim_posemath_cartesian *end,
|
|
double fraction, sim_posemath_cartesian *output);
|
|
int sim_posemath_is_finite(const sim_posemath_cartesian *value);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|