#include "whiteout_c_common.h"
#include <cstdint>
#include <string>
#include <vector>
#include <whiteout/vector_types.h>
extern "C" {
void whiteout_Bytes_free(whiteout_Bytes buf) {
if (!buf._owner) return;
delete static_cast<std::vector<uint8_t>*>(buf._owner);
}
void whiteout_CString_free(whiteout_CString str) {
if (!str._owner) return;
delete static_cast<std::string*>(str._owner);
}
whiteout_Vector2f* whiteout_Vector2f_new(void) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f());
}
void whiteout_Vector2f_delete(whiteout_Vector2f* self) {
delete reinterpret_cast<whiteout::Vector2f*>(self);
}
float whiteout_Vector2f_get_x(const whiteout_Vector2f* self) {
return reinterpret_cast<const whiteout::Vector2f*>(self)->x;
}
void whiteout_Vector2f_set_x(whiteout_Vector2f* self, float value) {
reinterpret_cast<whiteout::Vector2f*>(self)->x = value;
}
float whiteout_Vector2f_get_y(const whiteout_Vector2f* self) {
return reinterpret_cast<const whiteout::Vector2f*>(self)->y;
}
void whiteout_Vector2f_set_y(whiteout_Vector2f* self, float value) {
reinterpret_cast<whiteout::Vector2f*>(self)->y = value;
}
float whiteout_Vector2f_dot(const whiteout_Vector2f* self, const whiteout_Vector2f* other) {
return reinterpret_cast<const whiteout::Vector2f*>(self)->dot((*reinterpret_cast<const whiteout::Vector2f*>(other)));
}
float whiteout_Vector2f_length(const whiteout_Vector2f* self) {
return reinterpret_cast<const whiteout::Vector2f*>(self)->length();
}
float whiteout_Vector2f_length_squared(const whiteout_Vector2f* self) {
return reinterpret_cast<const whiteout::Vector2f*>(self)->length_squared();
}
void whiteout_Vector2f_normalize(whiteout_Vector2f* self) {
reinterpret_cast<whiteout::Vector2f*>(self)->normalize();
}
whiteout_Vector2f* whiteout_Vector2f_normalized(const whiteout_Vector2f* self) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f(reinterpret_cast<const whiteout::Vector2f*>(self)->normalized()));
}
whiteout_Vector2f* whiteout_Vector2f_add(const whiteout_Vector2f* self, const whiteout_Vector2f* other) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f((*reinterpret_cast<const whiteout::Vector2f*>(self)) + (*reinterpret_cast<const whiteout::Vector2f*>(other))));
}
whiteout_Vector2f* whiteout_Vector2f_sub(const whiteout_Vector2f* self, const whiteout_Vector2f* other) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f((*reinterpret_cast<const whiteout::Vector2f*>(self)) - (*reinterpret_cast<const whiteout::Vector2f*>(other))));
}
whiteout_Vector2f* whiteout_Vector2f_mul(const whiteout_Vector2f* self, const whiteout_Vector2f* other) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f((*reinterpret_cast<const whiteout::Vector2f*>(self)) * (*reinterpret_cast<const whiteout::Vector2f*>(other))));
}
whiteout_Vector2f* whiteout_Vector2f_div(const whiteout_Vector2f* self, const whiteout_Vector2f* other) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f((*reinterpret_cast<const whiteout::Vector2f*>(self)) / (*reinterpret_cast<const whiteout::Vector2f*>(other))));
}
whiteout_Vector2f* whiteout_Vector2f_mul_scalar(const whiteout_Vector2f* self, float scalar) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f((*reinterpret_cast<const whiteout::Vector2f*>(self)) * scalar));
}
whiteout_Vector2f* whiteout_Vector2f_div_scalar(const whiteout_Vector2f* self, float scalar) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f((*reinterpret_cast<const whiteout::Vector2f*>(self)) / scalar));
}
whiteout_Vector2f* whiteout_Vector2f_negate(const whiteout_Vector2f* self) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f(-(*reinterpret_cast<const whiteout::Vector2f*>(self))));
}
int32_t whiteout_Vector2f_equals(const whiteout_Vector2f* self, const whiteout_Vector2f* other) {
return ((*reinterpret_cast<const whiteout::Vector2f*>(self)) == (*reinterpret_cast<const whiteout::Vector2f*>(other))) ? 1 : 0;
}
whiteout_Vector2f* whiteout_Vector2f_lerp(const whiteout_Vector2f* start, const whiteout_Vector2f* end, float t) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f(whiteout::Vector2f::lerp((*reinterpret_cast<const whiteout::Vector2f*>(start)), (*reinterpret_cast<const whiteout::Vector2f*>(end)), t)));
}
whiteout_Vector2f* whiteout_Vector2f_tcb_in_tangent(const whiteout_Vector2f* prev, const whiteout_Vector2f* current, const whiteout_Vector2f* next, float tension, float continuity, float bias) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f(whiteout::Vector2f::tcb_in_tangent((*reinterpret_cast<const whiteout::Vector2f*>(prev)), (*reinterpret_cast<const whiteout::Vector2f*>(current)), (*reinterpret_cast<const whiteout::Vector2f*>(next)), tension, continuity, bias)));
}
whiteout_Vector2f* whiteout_Vector2f_tcb_out_tangent(const whiteout_Vector2f* prev, const whiteout_Vector2f* current, const whiteout_Vector2f* next, float tension, float continuity, float bias) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f(whiteout::Vector2f::tcb_out_tangent((*reinterpret_cast<const whiteout::Vector2f*>(prev)), (*reinterpret_cast<const whiteout::Vector2f*>(current)), (*reinterpret_cast<const whiteout::Vector2f*>(next)), tension, continuity, bias)));
}
whiteout_Vector2f* whiteout_Vector2f_bezier_lerp(const whiteout_Vector2f* start, const whiteout_Vector2f* outtan, const whiteout_Vector2f* intan, const whiteout_Vector2f* end, float t) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f(whiteout::Vector2f::bezier_lerp((*reinterpret_cast<const whiteout::Vector2f*>(start)), (*reinterpret_cast<const whiteout::Vector2f*>(outtan)), (*reinterpret_cast<const whiteout::Vector2f*>(intan)), (*reinterpret_cast<const whiteout::Vector2f*>(end)), t)));
}
whiteout_Vector2f* whiteout_Vector2f_hermite_lerp(const whiteout_Vector2f* prev, const whiteout_Vector2f* start, const whiteout_Vector2f* end, const whiteout_Vector2f* next, float t) {
return reinterpret_cast<whiteout_Vector2f*>(new whiteout::Vector2f(whiteout::Vector2f::hermite_lerp((*reinterpret_cast<const whiteout::Vector2f*>(prev)), (*reinterpret_cast<const whiteout::Vector2f*>(start)), (*reinterpret_cast<const whiteout::Vector2f*>(end)), (*reinterpret_cast<const whiteout::Vector2f*>(next)), t)));
}
whiteout_Vector3f* whiteout_Vector3f_new(void) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f());
}
void whiteout_Vector3f_delete(whiteout_Vector3f* self) {
delete reinterpret_cast<whiteout::Vector3f*>(self);
}
float whiteout_Vector3f_get_x(const whiteout_Vector3f* self) {
return reinterpret_cast<const whiteout::Vector3f*>(self)->x;
}
void whiteout_Vector3f_set_x(whiteout_Vector3f* self, float value) {
reinterpret_cast<whiteout::Vector3f*>(self)->x = value;
}
float whiteout_Vector3f_get_y(const whiteout_Vector3f* self) {
return reinterpret_cast<const whiteout::Vector3f*>(self)->y;
}
void whiteout_Vector3f_set_y(whiteout_Vector3f* self, float value) {
reinterpret_cast<whiteout::Vector3f*>(self)->y = value;
}
float whiteout_Vector3f_get_z(const whiteout_Vector3f* self) {
return reinterpret_cast<const whiteout::Vector3f*>(self)->z;
}
void whiteout_Vector3f_set_z(whiteout_Vector3f* self, float value) {
reinterpret_cast<whiteout::Vector3f*>(self)->z = value;
}
float whiteout_Vector3f_dot(const whiteout_Vector3f* self, const whiteout_Vector3f* other) {
return reinterpret_cast<const whiteout::Vector3f*>(self)->dot((*reinterpret_cast<const whiteout::Vector3f*>(other)));
}
float whiteout_Vector3f_length(const whiteout_Vector3f* self) {
return reinterpret_cast<const whiteout::Vector3f*>(self)->length();
}
float whiteout_Vector3f_length_squared(const whiteout_Vector3f* self) {
return reinterpret_cast<const whiteout::Vector3f*>(self)->length_squared();
}
void whiteout_Vector3f_normalize(whiteout_Vector3f* self) {
reinterpret_cast<whiteout::Vector3f*>(self)->normalize();
}
whiteout_Vector3f* whiteout_Vector3f_normalized(const whiteout_Vector3f* self) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(reinterpret_cast<const whiteout::Vector3f*>(self)->normalized()));
}
whiteout_Vector3f* whiteout_Vector3f_add(const whiteout_Vector3f* self, const whiteout_Vector3f* other) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f((*reinterpret_cast<const whiteout::Vector3f*>(self)) + (*reinterpret_cast<const whiteout::Vector3f*>(other))));
}
whiteout_Vector3f* whiteout_Vector3f_sub(const whiteout_Vector3f* self, const whiteout_Vector3f* other) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f((*reinterpret_cast<const whiteout::Vector3f*>(self)) - (*reinterpret_cast<const whiteout::Vector3f*>(other))));
}
whiteout_Vector3f* whiteout_Vector3f_mul(const whiteout_Vector3f* self, const whiteout_Vector3f* other) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f((*reinterpret_cast<const whiteout::Vector3f*>(self)) * (*reinterpret_cast<const whiteout::Vector3f*>(other))));
}
whiteout_Vector3f* whiteout_Vector3f_div(const whiteout_Vector3f* self, const whiteout_Vector3f* other) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f((*reinterpret_cast<const whiteout::Vector3f*>(self)) / (*reinterpret_cast<const whiteout::Vector3f*>(other))));
}
whiteout_Vector3f* whiteout_Vector3f_mul_scalar(const whiteout_Vector3f* self, float scalar) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f((*reinterpret_cast<const whiteout::Vector3f*>(self)) * scalar));
}
whiteout_Vector3f* whiteout_Vector3f_div_scalar(const whiteout_Vector3f* self, float scalar) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f((*reinterpret_cast<const whiteout::Vector3f*>(self)) / scalar));
}
whiteout_Vector3f* whiteout_Vector3f_negate(const whiteout_Vector3f* self) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(-(*reinterpret_cast<const whiteout::Vector3f*>(self))));
}
int32_t whiteout_Vector3f_equals(const whiteout_Vector3f* self, const whiteout_Vector3f* other) {
return ((*reinterpret_cast<const whiteout::Vector3f*>(self)) == (*reinterpret_cast<const whiteout::Vector3f*>(other))) ? 1 : 0;
}
whiteout_Vector3f* whiteout_Vector3f_lerp(const whiteout_Vector3f* start, const whiteout_Vector3f* end, float t) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(whiteout::Vector3f::lerp((*reinterpret_cast<const whiteout::Vector3f*>(start)), (*reinterpret_cast<const whiteout::Vector3f*>(end)), t)));
}
whiteout_Vector3f* whiteout_Vector3f_tcb_in_tangent(const whiteout_Vector3f* prev, const whiteout_Vector3f* current, const whiteout_Vector3f* next, float tension, float continuity, float bias) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(whiteout::Vector3f::tcb_in_tangent((*reinterpret_cast<const whiteout::Vector3f*>(prev)), (*reinterpret_cast<const whiteout::Vector3f*>(current)), (*reinterpret_cast<const whiteout::Vector3f*>(next)), tension, continuity, bias)));
}
whiteout_Vector3f* whiteout_Vector3f_tcb_out_tangent(const whiteout_Vector3f* prev, const whiteout_Vector3f* current, const whiteout_Vector3f* next, float tension, float continuity, float bias) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(whiteout::Vector3f::tcb_out_tangent((*reinterpret_cast<const whiteout::Vector3f*>(prev)), (*reinterpret_cast<const whiteout::Vector3f*>(current)), (*reinterpret_cast<const whiteout::Vector3f*>(next)), tension, continuity, bias)));
}
whiteout_Vector3f* whiteout_Vector3f_bezier_lerp(const whiteout_Vector3f* start, const whiteout_Vector3f* outtan, const whiteout_Vector3f* intan, const whiteout_Vector3f* end, float t) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(whiteout::Vector3f::bezier_lerp((*reinterpret_cast<const whiteout::Vector3f*>(start)), (*reinterpret_cast<const whiteout::Vector3f*>(outtan)), (*reinterpret_cast<const whiteout::Vector3f*>(intan)), (*reinterpret_cast<const whiteout::Vector3f*>(end)), t)));
}
whiteout_Vector3f* whiteout_Vector3f_hermite_lerp(const whiteout_Vector3f* prev, const whiteout_Vector3f* start, const whiteout_Vector3f* end, const whiteout_Vector3f* next, float t) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(whiteout::Vector3f::hermite_lerp((*reinterpret_cast<const whiteout::Vector3f*>(prev)), (*reinterpret_cast<const whiteout::Vector3f*>(start)), (*reinterpret_cast<const whiteout::Vector3f*>(end)), (*reinterpret_cast<const whiteout::Vector3f*>(next)), t)));
}
whiteout_Vector4f* whiteout_Vector4f_new(void) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f());
}
void whiteout_Vector4f_delete(whiteout_Vector4f* self) {
delete reinterpret_cast<whiteout::Vector4f*>(self);
}
float whiteout_Vector4f_get_x(const whiteout_Vector4f* self) {
return reinterpret_cast<const whiteout::Vector4f*>(self)->x;
}
void whiteout_Vector4f_set_x(whiteout_Vector4f* self, float value) {
reinterpret_cast<whiteout::Vector4f*>(self)->x = value;
}
float whiteout_Vector4f_get_y(const whiteout_Vector4f* self) {
return reinterpret_cast<const whiteout::Vector4f*>(self)->y;
}
void whiteout_Vector4f_set_y(whiteout_Vector4f* self, float value) {
reinterpret_cast<whiteout::Vector4f*>(self)->y = value;
}
float whiteout_Vector4f_get_z(const whiteout_Vector4f* self) {
return reinterpret_cast<const whiteout::Vector4f*>(self)->z;
}
void whiteout_Vector4f_set_z(whiteout_Vector4f* self, float value) {
reinterpret_cast<whiteout::Vector4f*>(self)->z = value;
}
float whiteout_Vector4f_get_w(const whiteout_Vector4f* self) {
return reinterpret_cast<const whiteout::Vector4f*>(self)->w;
}
void whiteout_Vector4f_set_w(whiteout_Vector4f* self, float value) {
reinterpret_cast<whiteout::Vector4f*>(self)->w = value;
}
float whiteout_Vector4f_dot(const whiteout_Vector4f* self, const whiteout_Vector4f* other) {
return reinterpret_cast<const whiteout::Vector4f*>(self)->dot((*reinterpret_cast<const whiteout::Vector4f*>(other)));
}
float whiteout_Vector4f_length(const whiteout_Vector4f* self) {
return reinterpret_cast<const whiteout::Vector4f*>(self)->length();
}
float whiteout_Vector4f_length_squared(const whiteout_Vector4f* self) {
return reinterpret_cast<const whiteout::Vector4f*>(self)->length_squared();
}
void whiteout_Vector4f_normalize(whiteout_Vector4f* self) {
reinterpret_cast<whiteout::Vector4f*>(self)->normalize();
}
whiteout_Vector4f* whiteout_Vector4f_normalized(const whiteout_Vector4f* self) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f(reinterpret_cast<const whiteout::Vector4f*>(self)->normalized()));
}
whiteout_Vector4f* whiteout_Vector4f_add(const whiteout_Vector4f* self, const whiteout_Vector4f* other) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f((*reinterpret_cast<const whiteout::Vector4f*>(self)) + (*reinterpret_cast<const whiteout::Vector4f*>(other))));
}
whiteout_Vector4f* whiteout_Vector4f_sub(const whiteout_Vector4f* self, const whiteout_Vector4f* other) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f((*reinterpret_cast<const whiteout::Vector4f*>(self)) - (*reinterpret_cast<const whiteout::Vector4f*>(other))));
}
whiteout_Vector4f* whiteout_Vector4f_mul(const whiteout_Vector4f* self, const whiteout_Vector4f* other) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f((*reinterpret_cast<const whiteout::Vector4f*>(self)) * (*reinterpret_cast<const whiteout::Vector4f*>(other))));
}
whiteout_Vector4f* whiteout_Vector4f_div(const whiteout_Vector4f* self, const whiteout_Vector4f* other) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f((*reinterpret_cast<const whiteout::Vector4f*>(self)) / (*reinterpret_cast<const whiteout::Vector4f*>(other))));
}
whiteout_Vector4f* whiteout_Vector4f_mul_scalar(const whiteout_Vector4f* self, float scalar) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f((*reinterpret_cast<const whiteout::Vector4f*>(self)) * scalar));
}
whiteout_Vector4f* whiteout_Vector4f_div_scalar(const whiteout_Vector4f* self, float scalar) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f((*reinterpret_cast<const whiteout::Vector4f*>(self)) / scalar));
}
whiteout_Vector4f* whiteout_Vector4f_negate(const whiteout_Vector4f* self) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f(-(*reinterpret_cast<const whiteout::Vector4f*>(self))));
}
int32_t whiteout_Vector4f_equals(const whiteout_Vector4f* self, const whiteout_Vector4f* other) {
return ((*reinterpret_cast<const whiteout::Vector4f*>(self)) == (*reinterpret_cast<const whiteout::Vector4f*>(other))) ? 1 : 0;
}
whiteout_Vector4f* whiteout_Vector4f_lerp(const whiteout_Vector4f* start, const whiteout_Vector4f* end, float t) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f(whiteout::Vector4f::lerp((*reinterpret_cast<const whiteout::Vector4f*>(start)), (*reinterpret_cast<const whiteout::Vector4f*>(end)), t)));
}
whiteout_Vector4f* whiteout_Vector4f_tcb_in_tangent(const whiteout_Vector4f* prev, const whiteout_Vector4f* current, const whiteout_Vector4f* next, float tension, float continuity, float bias) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f(whiteout::Vector4f::tcb_in_tangent((*reinterpret_cast<const whiteout::Vector4f*>(prev)), (*reinterpret_cast<const whiteout::Vector4f*>(current)), (*reinterpret_cast<const whiteout::Vector4f*>(next)), tension, continuity, bias)));
}
whiteout_Vector4f* whiteout_Vector4f_tcb_out_tangent(const whiteout_Vector4f* prev, const whiteout_Vector4f* current, const whiteout_Vector4f* next, float tension, float continuity, float bias) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f(whiteout::Vector4f::tcb_out_tangent((*reinterpret_cast<const whiteout::Vector4f*>(prev)), (*reinterpret_cast<const whiteout::Vector4f*>(current)), (*reinterpret_cast<const whiteout::Vector4f*>(next)), tension, continuity, bias)));
}
whiteout_Vector4f* whiteout_Vector4f_bezier_lerp(const whiteout_Vector4f* start, const whiteout_Vector4f* outtan, const whiteout_Vector4f* intan, const whiteout_Vector4f* end, float t) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f(whiteout::Vector4f::bezier_lerp((*reinterpret_cast<const whiteout::Vector4f*>(start)), (*reinterpret_cast<const whiteout::Vector4f*>(outtan)), (*reinterpret_cast<const whiteout::Vector4f*>(intan)), (*reinterpret_cast<const whiteout::Vector4f*>(end)), t)));
}
whiteout_Vector4f* whiteout_Vector4f_hermite_lerp(const whiteout_Vector4f* prev, const whiteout_Vector4f* start, const whiteout_Vector4f* end, const whiteout_Vector4f* next, float t) {
return reinterpret_cast<whiteout_Vector4f*>(new whiteout::Vector4f(whiteout::Vector4f::hermite_lerp((*reinterpret_cast<const whiteout::Vector4f*>(prev)), (*reinterpret_cast<const whiteout::Vector4f*>(start)), (*reinterpret_cast<const whiteout::Vector4f*>(end)), (*reinterpret_cast<const whiteout::Vector4f*>(next)), t)));
}
whiteout_Quaternion* whiteout_Quaternion_new(void) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion());
}
void whiteout_Quaternion_delete(whiteout_Quaternion* self) {
delete reinterpret_cast<whiteout::Quaternion*>(self);
}
float whiteout_Quaternion_get_x(const whiteout_Quaternion* self) {
return reinterpret_cast<const whiteout::Quaternion*>(self)->x;
}
void whiteout_Quaternion_set_x(whiteout_Quaternion* self, float value) {
reinterpret_cast<whiteout::Quaternion*>(self)->x = value;
}
float whiteout_Quaternion_get_y(const whiteout_Quaternion* self) {
return reinterpret_cast<const whiteout::Quaternion*>(self)->y;
}
void whiteout_Quaternion_set_y(whiteout_Quaternion* self, float value) {
reinterpret_cast<whiteout::Quaternion*>(self)->y = value;
}
float whiteout_Quaternion_get_z(const whiteout_Quaternion* self) {
return reinterpret_cast<const whiteout::Quaternion*>(self)->z;
}
void whiteout_Quaternion_set_z(whiteout_Quaternion* self, float value) {
reinterpret_cast<whiteout::Quaternion*>(self)->z = value;
}
float whiteout_Quaternion_get_w(const whiteout_Quaternion* self) {
return reinterpret_cast<const whiteout::Quaternion*>(self)->w;
}
void whiteout_Quaternion_set_w(whiteout_Quaternion* self, float value) {
reinterpret_cast<whiteout::Quaternion*>(self)->w = value;
}
float whiteout_Quaternion_dot(const whiteout_Quaternion* self, const whiteout_Quaternion* other) {
return reinterpret_cast<const whiteout::Quaternion*>(self)->dot((*reinterpret_cast<const whiteout::Quaternion*>(other)));
}
float whiteout_Quaternion_length(const whiteout_Quaternion* self) {
return reinterpret_cast<const whiteout::Quaternion*>(self)->length();
}
float whiteout_Quaternion_length_squared(const whiteout_Quaternion* self) {
return reinterpret_cast<const whiteout::Quaternion*>(self)->length_squared();
}
void whiteout_Quaternion_normalize(whiteout_Quaternion* self) {
reinterpret_cast<whiteout::Quaternion*>(self)->normalize();
}
whiteout_Quaternion* whiteout_Quaternion_normalized(const whiteout_Quaternion* self) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(reinterpret_cast<const whiteout::Quaternion*>(self)->normalized()));
}
whiteout_Quaternion* whiteout_Quaternion_add(const whiteout_Quaternion* self, const whiteout_Quaternion* other) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion((*reinterpret_cast<const whiteout::Quaternion*>(self)) + (*reinterpret_cast<const whiteout::Quaternion*>(other))));
}
whiteout_Quaternion* whiteout_Quaternion_sub(const whiteout_Quaternion* self, const whiteout_Quaternion* other) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion((*reinterpret_cast<const whiteout::Quaternion*>(self)) - (*reinterpret_cast<const whiteout::Quaternion*>(other))));
}
whiteout_Quaternion* whiteout_Quaternion_mul(const whiteout_Quaternion* self, const whiteout_Quaternion* other) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion((*reinterpret_cast<const whiteout::Quaternion*>(self)) * (*reinterpret_cast<const whiteout::Quaternion*>(other))));
}
whiteout_Quaternion* whiteout_Quaternion_mul_scalar(const whiteout_Quaternion* self, float scalar) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion((*reinterpret_cast<const whiteout::Quaternion*>(self)) * scalar));
}
whiteout_Quaternion* whiteout_Quaternion_div_scalar(const whiteout_Quaternion* self, float scalar) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion((*reinterpret_cast<const whiteout::Quaternion*>(self)) / scalar));
}
whiteout_Quaternion* whiteout_Quaternion_negate(const whiteout_Quaternion* self) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(-(*reinterpret_cast<const whiteout::Quaternion*>(self))));
}
int32_t whiteout_Quaternion_equals(const whiteout_Quaternion* self, const whiteout_Quaternion* other) {
return ((*reinterpret_cast<const whiteout::Quaternion*>(self)) == (*reinterpret_cast<const whiteout::Quaternion*>(other))) ? 1 : 0;
}
whiteout_Quaternion* whiteout_Quaternion_conjugate(const whiteout_Quaternion* self) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(reinterpret_cast<const whiteout::Quaternion*>(self)->conjugate()));
}
whiteout_Quaternion* whiteout_Quaternion_inverse(const whiteout_Quaternion* self) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(reinterpret_cast<const whiteout::Quaternion*>(self)->inverse()));
}
whiteout_Quaternion* whiteout_Quaternion_log(const whiteout_Quaternion* self) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(reinterpret_cast<const whiteout::Quaternion*>(self)->log()));
}
whiteout_Quaternion* whiteout_Quaternion_exp(const whiteout_Quaternion* self) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(reinterpret_cast<const whiteout::Quaternion*>(self)->exp()));
}
whiteout_Vector3f* whiteout_Quaternion_to_euler_angles(const whiteout_Quaternion* self) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(reinterpret_cast<const whiteout::Quaternion*>(self)->to_euler_angles()));
}
whiteout_Vector3f* whiteout_Quaternion_rotate_vector(const whiteout_Quaternion* self, const whiteout_Vector3f* v) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(reinterpret_cast<const whiteout::Quaternion*>(self)->rotate_vector((*reinterpret_cast<const whiteout::Vector3f*>(v)))));
}
whiteout_Quaternion* whiteout_Quaternion_identity(void) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(whiteout::Quaternion::identity()));
}
whiteout_Quaternion* whiteout_Quaternion_from_axis_angle(const whiteout_Vector3f* axis, float angle_rad) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(whiteout::Quaternion::from_axis_angle((*reinterpret_cast<const whiteout::Vector3f*>(axis)), angle_rad)));
}
whiteout_Quaternion* whiteout_Quaternion_from_euler_angles(const whiteout_Vector3f* euler_rad) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(whiteout::Quaternion::from_euler_angles((*reinterpret_cast<const whiteout::Vector3f*>(euler_rad)))));
}
whiteout_Quaternion* whiteout_Quaternion_slerp(const whiteout_Quaternion* a, const whiteout_Quaternion* b, float t) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(whiteout::Quaternion::slerp((*reinterpret_cast<const whiteout::Quaternion*>(a)), (*reinterpret_cast<const whiteout::Quaternion*>(b)), t)));
}
whiteout_Quaternion* whiteout_Quaternion_squad(const whiteout_Quaternion* start, const whiteout_Quaternion* outtan, const whiteout_Quaternion* inttan, const whiteout_Quaternion* end, float t) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(whiteout::Quaternion::squad((*reinterpret_cast<const whiteout::Quaternion*>(start)), (*reinterpret_cast<const whiteout::Quaternion*>(outtan)), (*reinterpret_cast<const whiteout::Quaternion*>(inttan)), (*reinterpret_cast<const whiteout::Quaternion*>(end)), t)));
}
whiteout_Quaternion* whiteout_Quaternion_ln_dif(const whiteout_Quaternion* a, const whiteout_Quaternion* b) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(whiteout::Quaternion::ln_dif((*reinterpret_cast<const whiteout::Quaternion*>(a)), (*reinterpret_cast<const whiteout::Quaternion*>(b)))));
}
whiteout_Matrix33f* whiteout_Matrix33f_new(void) {
return reinterpret_cast<whiteout_Matrix33f*>(new whiteout::Matrix33f());
}
void whiteout_Matrix33f_delete(whiteout_Matrix33f* self) {
delete reinterpret_cast<whiteout::Matrix33f*>(self);
}
size_t whiteout_Matrix33f_dim(void) { return 3; }
float whiteout_Matrix33f_get_at(const whiteout_Matrix33f* self, size_t row, size_t col) {
return reinterpret_cast<const whiteout::Matrix33f*>(self)->data[row][col];
}
void whiteout_Matrix33f_set_at(whiteout_Matrix33f* self, size_t row, size_t col, float value) {
reinterpret_cast<whiteout::Matrix33f*>(self)->data[row][col] = value;
}
whiteout_Matrix33f* whiteout_Matrix33f_add(const whiteout_Matrix33f* self, const whiteout_Matrix33f* other) {
return reinterpret_cast<whiteout_Matrix33f*>(new whiteout::Matrix33f((*reinterpret_cast<const whiteout::Matrix33f*>(self)) + (*reinterpret_cast<const whiteout::Matrix33f*>(other))));
}
whiteout_Matrix33f* whiteout_Matrix33f_sub(const whiteout_Matrix33f* self, const whiteout_Matrix33f* other) {
return reinterpret_cast<whiteout_Matrix33f*>(new whiteout::Matrix33f((*reinterpret_cast<const whiteout::Matrix33f*>(self)) - (*reinterpret_cast<const whiteout::Matrix33f*>(other))));
}
whiteout_Matrix33f* whiteout_Matrix33f_mul(const whiteout_Matrix33f* self, const whiteout_Matrix33f* other) {
return reinterpret_cast<whiteout_Matrix33f*>(new whiteout::Matrix33f((*reinterpret_cast<const whiteout::Matrix33f*>(self)) * (*reinterpret_cast<const whiteout::Matrix33f*>(other))));
}
whiteout_Matrix33f* whiteout_Matrix33f_mul_scalar(const whiteout_Matrix33f* self, float scalar) {
return reinterpret_cast<whiteout_Matrix33f*>(new whiteout::Matrix33f((*reinterpret_cast<const whiteout::Matrix33f*>(self)) * scalar));
}
whiteout_Matrix33f* whiteout_Matrix33f_identity(void) {
return reinterpret_cast<whiteout_Matrix33f*>(new whiteout::Matrix33f(whiteout::Matrix33f::identity()));
}
whiteout_Matrix33f* whiteout_Matrix33f_zero(void) {
return reinterpret_cast<whiteout_Matrix33f*>(new whiteout::Matrix33f(whiteout::Matrix33f::zero()));
}
whiteout_Matrix44f* whiteout_Matrix44f_new(void) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f());
}
void whiteout_Matrix44f_delete(whiteout_Matrix44f* self) {
delete reinterpret_cast<whiteout::Matrix44f*>(self);
}
size_t whiteout_Matrix44f_dim(void) { return 4; }
float whiteout_Matrix44f_get_at(const whiteout_Matrix44f* self, size_t row, size_t col) {
return reinterpret_cast<const whiteout::Matrix44f*>(self)->data[row][col];
}
void whiteout_Matrix44f_set_at(whiteout_Matrix44f* self, size_t row, size_t col, float value) {
reinterpret_cast<whiteout::Matrix44f*>(self)->data[row][col] = value;
}
whiteout_Matrix44f* whiteout_Matrix44f_add(const whiteout_Matrix44f* self, const whiteout_Matrix44f* other) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f((*reinterpret_cast<const whiteout::Matrix44f*>(self)) + (*reinterpret_cast<const whiteout::Matrix44f*>(other))));
}
whiteout_Matrix44f* whiteout_Matrix44f_sub(const whiteout_Matrix44f* self, const whiteout_Matrix44f* other) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f((*reinterpret_cast<const whiteout::Matrix44f*>(self)) - (*reinterpret_cast<const whiteout::Matrix44f*>(other))));
}
whiteout_Matrix44f* whiteout_Matrix44f_mul(const whiteout_Matrix44f* self, const whiteout_Matrix44f* other) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f((*reinterpret_cast<const whiteout::Matrix44f*>(self)) * (*reinterpret_cast<const whiteout::Matrix44f*>(other))));
}
whiteout_Matrix44f* whiteout_Matrix44f_mul_scalar(const whiteout_Matrix44f* self, float scalar) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f((*reinterpret_cast<const whiteout::Matrix44f*>(self)) * scalar));
}
whiteout_Matrix44f* whiteout_Matrix44f_identity(void) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::identity()));
}
whiteout_Matrix44f* whiteout_Matrix44f_zero(void) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::zero()));
}
whiteout_Matrix44f* whiteout_Matrix44f_translation(const whiteout_Vector3f* t) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::translation((*reinterpret_cast<const whiteout::Vector3f*>(t)))));
}
whiteout_Matrix44f* whiteout_Matrix44f_rotation(const whiteout_Quaternion* q) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::rotation((*reinterpret_cast<const whiteout::Quaternion*>(q)))));
}
whiteout_Matrix44f* whiteout_Matrix44f_scaling(const whiteout_Vector3f* s) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::scaling((*reinterpret_cast<const whiteout::Vector3f*>(s)))));
}
whiteout_Matrix44f* whiteout_Matrix44f_compose(const whiteout_Vector3f* translation, const whiteout_Quaternion* rotation, const whiteout_Vector3f* scale) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::compose((*reinterpret_cast<const whiteout::Vector3f*>(translation)), (*reinterpret_cast<const whiteout::Quaternion*>(rotation)), (*reinterpret_cast<const whiteout::Vector3f*>(scale)))));
}
whiteout_Matrix44f* whiteout_Matrix44f_inverse(const whiteout_Matrix44f* m) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::inverse((*reinterpret_cast<const whiteout::Matrix44f*>(m)))));
}
whiteout_Matrix44f* whiteout_Matrix44f_rotation_x(float angle) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::rotation_x(angle)));
}
whiteout_Matrix44f* whiteout_Matrix44f_rotation_y(float angle) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::rotation_y(angle)));
}
whiteout_Matrix44f* whiteout_Matrix44f_rotation_z(float angle) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::rotation_z(angle)));
}
whiteout_Matrix44f* whiteout_Matrix44f_look_at_rh(const whiteout_Vector3f* eye, const whiteout_Vector3f* target, const whiteout_Vector3f* up) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::look_at_rh((*reinterpret_cast<const whiteout::Vector3f*>(eye)), (*reinterpret_cast<const whiteout::Vector3f*>(target)), (*reinterpret_cast<const whiteout::Vector3f*>(up)))));
}
whiteout_Matrix44f* whiteout_Matrix44f_look_at_lh(const whiteout_Vector3f* eye, const whiteout_Vector3f* target, const whiteout_Vector3f* up) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::look_at_lh((*reinterpret_cast<const whiteout::Vector3f*>(eye)), (*reinterpret_cast<const whiteout::Vector3f*>(target)), (*reinterpret_cast<const whiteout::Vector3f*>(up)))));
}
whiteout_Matrix44f* whiteout_Matrix44f_look_at_lh_sgcompat(const whiteout_Vector3f* eye, const whiteout_Vector3f* target, const whiteout_Vector3f* up) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::look_at_lh_sgcompat((*reinterpret_cast<const whiteout::Vector3f*>(eye)), (*reinterpret_cast<const whiteout::Vector3f*>(target)), (*reinterpret_cast<const whiteout::Vector3f*>(up)))));
}
whiteout_Matrix44f* whiteout_Matrix44f_perspective_fov_rh(float fovY, float aspect, float nearZ, float farZ) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::perspective_fov_rh(fovY, aspect, nearZ, farZ)));
}
whiteout_Matrix44f* whiteout_Matrix44f_perspective_fov_lh(float fovY, float aspect, float nearZ, float farZ) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::perspective_fov_lh(fovY, aspect, nearZ, farZ)));
}
whiteout_Matrix44f* whiteout_Matrix44f_perspective_diag_sgcompat(float fovDiagonal, float aspect, float nearZ, float farZ) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::perspective_diag_sgcompat(fovDiagonal, aspect, nearZ, farZ)));
}
whiteout_Matrix44f* whiteout_Matrix44f_orthographic_rh(float width, float height, float nearZ, float farZ) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(whiteout::Matrix44f::orthographic_rh(width, height, nearZ, farZ)));
}
whiteout_Matrix44f* whiteout_Matrix44f_transpose(const whiteout_Matrix44f* self) {
return reinterpret_cast<whiteout_Matrix44f*>(new whiteout::Matrix44f(reinterpret_cast<const whiteout::Matrix44f*>(self)->transpose()));
}
whiteout_Vector3f* whiteout_Matrix44f_extract_translation(const whiteout_Matrix44f* self) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(reinterpret_cast<const whiteout::Matrix44f*>(self)->extract_translation()));
}
whiteout_Quaternion* whiteout_Matrix44f_extract_rotation(const whiteout_Matrix44f* self) {
return reinterpret_cast<whiteout_Quaternion*>(new whiteout::Quaternion(reinterpret_cast<const whiteout::Matrix44f*>(self)->extract_rotation()));
}
whiteout_Vector3f* whiteout_Matrix44f_extract_scale(const whiteout_Matrix44f* self) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(reinterpret_cast<const whiteout::Matrix44f*>(self)->extract_scale()));
}
whiteout_Vector3f* whiteout_cross(const whiteout_Vector3f* a, const whiteout_Vector3f* b) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(whiteout::cross(*reinterpret_cast<const whiteout::Vector3f*>(a), *reinterpret_cast<const whiteout::Vector3f*>(b))));
}
whiteout_Vector3f* whiteout_transform_point(const whiteout_Vector3f* v, const whiteout_Matrix44f* m) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(whiteout::transform_point(*reinterpret_cast<const whiteout::Vector3f*>(v), *reinterpret_cast<const whiteout::Matrix44f*>(m))));
}
whiteout_Vector3f* whiteout_transform_normal(const whiteout_Vector3f* v, const whiteout_Matrix44f* m) {
return reinterpret_cast<whiteout_Vector3f*>(new whiteout::Vector3f(whiteout::transform_normal(*reinterpret_cast<const whiteout::Vector3f*>(v), *reinterpret_cast<const whiteout::Matrix44f*>(m))));
}
}