28#if !defined(GRAPHENE_H_INSIDE) && !defined(GRAPHENE_COMPILATION)
29#error "Only graphene.h can be included directly."
46#define GRAPHENE_POINT3D_INIT(_x,_y,_z) (graphene_point3d_t) { .x = (_x), .y = (_y), .z = (_z) }
55#define GRAPHENE_POINT3D_INIT_ZERO GRAPHENE_POINT3D_INIT (0.f, 0.f, 0.f)
#define GRAPHENE_END_DECLS
#define GRAPHENE_BEGIN_DECLS
GRAPHENE_AVAILABLE_IN_1_0 void graphene_point3d_to_vec3(const graphene_point3d_t *p, graphene_vec3_t *v)
GRAPHENE_AVAILABLE_IN_1_0 bool graphene_point3d_equal(const graphene_point3d_t *a, const graphene_point3d_t *b)
GRAPHENE_AVAILABLE_IN_1_0 void graphene_point3d_normalize(const graphene_point3d_t *p, graphene_point3d_t *res)
GRAPHENE_AVAILABLE_IN_1_0 float graphene_point3d_length(const graphene_point3d_t *p)
GRAPHENE_AVAILABLE_IN_1_0 void graphene_point3d_free(graphene_point3d_t *p)
GRAPHENE_AVAILABLE_IN_1_0 void graphene_point3d_interpolate(const graphene_point3d_t *a, const graphene_point3d_t *b, double factor, graphene_point3d_t *res)
GRAPHENE_AVAILABLE_IN_1_0 const graphene_point3d_t * graphene_point3d_zero(void)
GRAPHENE_AVAILABLE_IN_1_0 graphene_point3d_t * graphene_point3d_init(graphene_point3d_t *p, float x, float y, float z)
GRAPHENE_AVAILABLE_IN_1_0 bool graphene_point3d_near(const graphene_point3d_t *a, const graphene_point3d_t *b, float epsilon)
GRAPHENE_AVAILABLE_IN_1_4 void graphene_point3d_normalize_viewport(const graphene_point3d_t *p, const graphene_rect_t *viewport, float z_near, float z_far, graphene_point3d_t *res)
GRAPHENE_AVAILABLE_IN_1_0 float graphene_point3d_dot(const graphene_point3d_t *a, const graphene_point3d_t *b)
GRAPHENE_AVAILABLE_IN_1_0 graphene_point3d_t * graphene_point3d_init_from_point(graphene_point3d_t *p, const graphene_point3d_t *src)
GRAPHENE_AVAILABLE_IN_1_0 graphene_point3d_t * graphene_point3d_alloc(void)
GRAPHENE_AVAILABLE_IN_1_0 void graphene_point3d_scale(const graphene_point3d_t *p, float factor, graphene_point3d_t *res)
GRAPHENE_AVAILABLE_IN_1_0 void graphene_point3d_cross(const graphene_point3d_t *a, const graphene_point3d_t *b, graphene_point3d_t *res)
GRAPHENE_AVAILABLE_IN_1_0 graphene_point3d_t * graphene_point3d_init_from_vec3(graphene_point3d_t *p, const graphene_vec3_t *v)
GRAPHENE_AVAILABLE_IN_1_4 float graphene_point3d_distance(const graphene_point3d_t *a, const graphene_point3d_t *b, graphene_vec3_t *delta)
#define GRAPHENE_AVAILABLE_IN_1_4
#define GRAPHENE_AVAILABLE_IN_1_0