Butis-C/butis/motor.c

97 lines
7 KiB
C

#include "motor.h"
extern inline void bt_motor_reset_fp32(BtMotorFP32* motor);
extern inline void bt_motor_reset_fp64(BtMotorFP64* motor);
extern inline void bt_motor_copy_fp32(const BtMotorFP32* source, BtMotorFP32* destination);
extern inline void bt_motor_copy_fp64(const BtMotorFP64* source, BtMotorFP64* destination);
extern inline void bt_motor_convert_fp64_to_fp32(const BtMotorFP64* source, BtMotorFP32* destination);
extern inline void bt_motor_convert_fp32_to_fp64(const BtMotorFP32* source, BtMotorFP64* destination);
extern inline int bt_motor_is_zero_fp32(const BtMotorFP32* motor);
extern inline int bt_motor_is_zero_fp64(const BtMotorFP64* motor);
extern inline int bt_motor_is_vector_fp32(const BtMotorFP32* motor);
extern inline int bt_motor_is_vector_fp64(const BtMotorFP64* motor);
extern inline int bt_motor_is_momentum_fp32(const BtMotorFP32* motor);
extern inline int bt_motor_is_momentum_fp64(const BtMotorFP64* motor);
extern inline void bt_motor_set_fp32(const BgcVector3FP32* vector, const BgcVector3FP32* momentum, BtMotorFP32* motor);
extern inline void bt_motor_set_fp64(const BgcVector3FP64* vector, const BgcVector3FP64* momentum, BtMotorFP64* motor);
extern inline void bt_motor_set_vector_fp32(const BgcVector3FP32* vector, BtMotorFP32* motor);
extern inline void bt_motor_set_vector_fp64(const BgcVector3FP64* vector, BtMotorFP64* motor);
extern inline void bt_motor_set_momentum_fp32(const BgcVector3FP32* momentum, BtMotorFP32* motor);
extern inline void bt_motor_set_momentum_fp64(const BgcVector3FP64* momentum, BtMotorFP64* motor);
extern inline void bt_motor_set_values_fp32(const float vector_x1, const float vector_x2, const float vector_x3, const float momentum_x1, const float momentum_x2, const float momentum_x3, BtMotorFP32* motor);
extern inline void bt_motor_set_values_fp64(const double vector_x1, const double vector_x2, const double vector_x3, const double momentum_x1, const double momentum_x2, const double momentum_x3, BtMotorFP64* motor);
extern inline void bt_motor_make_fp32(const BgcVector3FP32* point, const BgcVector3FP32* vector, const BgcVector3FP32* momentum, BtMotorFP32* motor);
extern inline void bt_motor_make_fp64(const BgcVector3FP64* point, const BgcVector3FP64* vector, const BgcVector3FP64* momentum, BtMotorFP64* motor);
extern inline void bt_motor_make_with_values_fp32(
const float point_x1, const float point_x2, const float point_x3,
const float vector_x1, const float vector_x2, const float vector_x3,
const float momentum_x1, const float momentum_x2, const float momentum_x3,
BtMotorFP32* motor);
extern inline void bt_motor_make_with_values_fp64(
const double point_x1, const double point_x2, const double point_x3,
const double vector_x1, const double vector_x2, const double vector_x3,
const double momentum_x1, const double momentum_x2, const double momentum_x3,
BtMotorFP64* motor);
extern inline void bt_motor_make_pure_vector_fp32(const BgcVector3FP32* point, const BgcVector3FP32* vector, BtMotorFP32* motor);
extern inline void bt_motor_make_pure_vector_fp64(const BgcVector3FP64* point, const BgcVector3FP64* vector, BtMotorFP64* motor);
extern inline void bt_motor_make_pure_momentum_fp32(const BgcVector3FP32* momentum, BtMotorFP32* motor);
extern inline void bt_motor_make_pure_momentum_fp64(const BgcVector3FP64* momentum, BtMotorFP64* motor);
extern inline void bt_motor_swap_fp32(BtMotorFP32* motor1, BtMotorFP32* motor2);
extern inline void bt_motor_swap_fp64(BtMotorFP64* motor1, BtMotorFP64* motor2);
extern inline void bt_motor_shift_fp32(const BgcVector3FP32* shift, BtMotorFP32* motor);
extern inline void bt_motor_shift_fp64(const BgcVector3FP64* shift, BtMotorFP64* motor);
extern inline void bt_motor_get_shifted_fp32(const BtMotorFP32* motor, const BgcVector3FP32* shift, BtMotorFP32* shifted);
extern inline void bt_motor_get_shifted_fp64(const BtMotorFP64* motor, const BgcVector3FP64* shift, BtMotorFP64* shifted);
extern inline void bt_motor_add_fp32(const BtMotorFP32* motor1, const BtMotorFP32* motor2, BtMotorFP32* sum);
extern inline void bt_motor_add_fp64(const BtMotorFP64* motor1, const BtMotorFP64* motor2, BtMotorFP64* sum);
extern inline void bt_motor_add_scaled_fp32(const BtMotorFP32* basic, const BtMotorFP32* scalable, const float scale, BtMotorFP32* sum);
extern inline void bt_motor_add_scaled_fp64(const BtMotorFP64* basic, const BtMotorFP64* scalable, const double scale, BtMotorFP64* sum);
extern inline void bt_motor_add_vector_fp32(const BtMotorFP32* basic, const BgcVector3FP32* point, const BgcVector3FP32* vector, BtMotorFP32* sum);
extern inline void bt_motor_add_vector_fp64(const BtMotorFP64* basic, const BgcVector3FP64* point, const BgcVector3FP64* vector, BtMotorFP64* sum);
extern inline void bt_motor_add_scaled_vector_fp32(const BtMotorFP32* basic, const BgcVector3FP32* point, const BgcVector3FP32* vector, const float scale, BtMotorFP32* sum);
extern inline void bt_motor_add_scaled_vector_fp64(const BtMotorFP64* basic, const BgcVector3FP64* point, const BgcVector3FP64* vector, const double scale, BtMotorFP64* sum);
extern inline void bt_motor_add_momentum_fp32(const BtMotorFP32* basic, const BgcVector3FP32* momentum, BtMotorFP32* sum);
extern inline void bt_motor_add_momentum_fp64(const BtMotorFP64* basic, const BgcVector3FP64* momentum, BtMotorFP64* sum);
extern inline void bt_motor_add_scaled_momentum_fp32(const BtMotorFP32* basic, const BgcVector3FP32* momentum, const float scale, BtMotorFP32* sum);
extern inline void bt_motor_add_scaled_momentum_fp64(const BtMotorFP64* basic, const BgcVector3FP64* momentum, const double scale, BtMotorFP64* sum);
extern inline void bt_motor_subtract_fp32(const BtMotorFP32* minuend, const BtMotorFP32* subtrahend, BtMotorFP32* difference);
extern inline void bt_motor_subtract_fp64(const BtMotorFP64* minuend, const BtMotorFP64* subtrahend, BtMotorFP64* difference);
extern inline void bt_motor_subtract_vector_fp32(const BtMotorFP32* minuend, const BgcVector3FP32* point, const BgcVector3FP32* vector, BtMotorFP32* difference);
extern inline void bt_motor_subtract_vector_fp64(const BtMotorFP64* minuend, const BgcVector3FP64* point, const BgcVector3FP64* vector, BtMotorFP64* difference);
extern inline void bt_motor_subtract_momentum_fp32(const BtMotorFP32* minuend, const BgcVector3FP32* momentum, BtMotorFP32* difference);
extern inline void bt_motor_subtract_momentum_fp64(const BtMotorFP64* minuend, const BgcVector3FP64* momentum, BtMotorFP64* difference);
extern inline void bt_motor_multiply_fp32(const BtMotorFP32* multiplicand, const float multiplier, BtMotorFP32* product);
extern inline void bt_motor_multiply_fp64(const BtMotorFP64* multiplicand, const double multiplier, BtMotorFP64* product);
extern inline void bt_motor_divide_fp32(const BtMotorFP32* dividend, const float divisor, BtMotorFP32* quotient);
extern inline void bt_motor_divide_fp64(const BtMotorFP64* dividend, const double divisor, BtMotorFP64* quotient);
extern inline int bt_motor_get_central_point_fp32(const BtMotorFP32* motor, BgcVector3FP32* point);
extern inline int bt_motor_get_central_point_fp64(const BtMotorFP64* motor, BgcVector3FP64* point);