add overloaded vec_new (with macro tricks)
This commit is contained in:
parent
e457f1ff81
commit
3eedcceb09
81
sweet_math_short.c
Normal file
81
sweet_math_short.c
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
#include "sweet_math.h"
|
||||||
|
|
||||||
|
vec2 vec2_new_2f(float x, float y)
|
||||||
|
{
|
||||||
|
vec2 v;
|
||||||
|
v.x = x;
|
||||||
|
v.y = y;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec2 vec2_new_v3(vec3 w)
|
||||||
|
{
|
||||||
|
vec2 v;
|
||||||
|
v.x = w.x;
|
||||||
|
v.y = w.y;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 vec3_new_3f(float x, float y, float z)
|
||||||
|
{
|
||||||
|
vec3 v;
|
||||||
|
v.x = x;
|
||||||
|
v.y = y;
|
||||||
|
v.z = z;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 vec3_new_v2_1f(vec2 w, float z)
|
||||||
|
{
|
||||||
|
vec3 v;
|
||||||
|
v.x = w.x;
|
||||||
|
v.y = w.y;
|
||||||
|
v.z = z;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec3 vec3_new_v4(vec4 w)
|
||||||
|
{
|
||||||
|
vec3 v;
|
||||||
|
v.x = w.x;
|
||||||
|
v.y = w.y;
|
||||||
|
v.z = w.z;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 vec4_new_4f(float x, float y, float z, float w)
|
||||||
|
{
|
||||||
|
vec4 v;
|
||||||
|
v.x = x;
|
||||||
|
v.y = y;
|
||||||
|
v.z = z;
|
||||||
|
v.w = w;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 vec4_new_v2_2f(vec2 u, float z, float w)
|
||||||
|
{
|
||||||
|
vec4 v;
|
||||||
|
v.x = u.x;
|
||||||
|
v.y = u.y;
|
||||||
|
v.z = z;
|
||||||
|
v.w = w;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 vec4_new_v3_1f(vec3 u, float w)
|
||||||
|
{
|
||||||
|
vec4 v;
|
||||||
|
v.x = u.x;
|
||||||
|
v.y = u.y;
|
||||||
|
v.z = u.z;
|
||||||
|
v.w = w;
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
vec4 vec4_new_v4 (vec4 v)
|
||||||
|
{
|
||||||
|
return v;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -21,6 +21,24 @@
|
|||||||
|
|
||||||
#include "sweet_math.h"
|
#include "sweet_math.h"
|
||||||
|
|
||||||
|
#define VEC2_BUILDER(_1, _2, NAME, ...) NAME
|
||||||
|
#define VEC3_BUILDER(_1, _2, _3, NAME, ...) NAME
|
||||||
|
#define VEC4_BUILDER(_1, _2, _3, _4, NAME, ...) NAME
|
||||||
|
|
||||||
|
#define vec2_new(...) VEC2_BUILDER(__VA_ARGS__, vec2_new_2f, vec2_new_v3)(__VA_ARGS__)
|
||||||
|
#define vec3_new(...) VEC3_BUILDER(__VA_ARGS__, vec3_new_3f, vec3_new_v2_1f, vec3_new_v4)(__VA_ARGS__)
|
||||||
|
#define vec4_new(...) VEC4_BUILDER(__VA_ARGS__, vec4_new_4f, vec4_new_v2_2f, vec4_new_v3_1f, vec4_new_v4)(__VA_ARGS__)
|
||||||
|
|
||||||
|
vec2 vec2_new_2f(float x, float y);
|
||||||
|
vec2 vec2_new_v3(vec3 w);
|
||||||
|
vec3 vec3_new_3f(float x, float y, float z);
|
||||||
|
vec3 vec3_new_v2_1f(vec2 w, float z);
|
||||||
|
vec3 vec3_new_v4(vec4 w);
|
||||||
|
vec4 vec4_new_4f(float x, float y, float z, float w);
|
||||||
|
vec4 vec4_new_v2_2f(vec2 u, float z, float w);
|
||||||
|
vec4 vec4_new_v3_1f(vec3 u, float w);
|
||||||
|
vec4 vec4_new_v4 (vec4 v);
|
||||||
|
|
||||||
#define radian_2_degree(radian) radian * 57.2957795130823208767981548
|
#define radian_2_degree(radian) radian * 57.2957795130823208767981548
|
||||||
#define degree_2_radian(degree) degree * 0.01745329251994329576923690768488
|
#define degree_2_radian(degree) degree * 0.01745329251994329576923690768488
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user