28#if !defined(GRAPHENE_H_INSIDE) && !defined(GRAPHENE_COMPILATION)
29#error "Only graphene.h can be included directly."
#define GRAPHENE_END_DECLS
#define GRAPHENE_BEGIN_DECLS
GRAPHENE_AVAILABLE_IN_1_4 void graphene_ray_get_position_at(const graphene_ray_t *r, float t, graphene_point3d_t *position)
GRAPHENE_AVAILABLE_IN_1_10 graphene_ray_intersection_kind_t graphene_ray_intersect_sphere(const graphene_ray_t *r, const graphene_sphere_t *s, float *t_out)
GRAPHENE_AVAILABLE_IN_1_4 graphene_ray_t * graphene_ray_init(graphene_ray_t *r, const graphene_point3d_t *origin, const graphene_vec3_t *direction)
GRAPHENE_AVAILABLE_IN_1_4 void graphene_ray_get_closest_point_to_point(const graphene_ray_t *r, const graphene_point3d_t *p, graphene_point3d_t *res)
GRAPHENE_AVAILABLE_IN_1_4 graphene_ray_t * graphene_ray_alloc(void)
GRAPHENE_AVAILABLE_IN_1_10 graphene_ray_intersection_kind_t graphene_ray_intersect_triangle(const graphene_ray_t *r, const graphene_triangle_t *t, float *t_out)
GRAPHENE_AVAILABLE_IN_1_10 bool graphene_ray_intersects_triangle(const graphene_ray_t *r, const graphene_triangle_t *t)
GRAPHENE_AVAILABLE_IN_1_4 float graphene_ray_get_distance_to_point(const graphene_ray_t *r, const graphene_point3d_t *p)
GRAPHENE_AVAILABLE_IN_1_10 graphene_ray_intersection_kind_t graphene_ray_intersect_box(const graphene_ray_t *r, const graphene_box_t *b, float *t_out)
GRAPHENE_AVAILABLE_IN_1_4 float graphene_ray_get_distance_to_plane(const graphene_ray_t *r, const graphene_plane_t *p)
GRAPHENE_AVAILABLE_IN_1_4 graphene_ray_t * graphene_ray_init_from_ray(graphene_ray_t *r, const graphene_ray_t *src)
GRAPHENE_AVAILABLE_IN_1_4 bool graphene_ray_equal(const graphene_ray_t *a, const graphene_ray_t *b)
graphene_ray_intersection_kind_t
@ GRAPHENE_RAY_INTERSECTION_KIND_NONE
@ GRAPHENE_RAY_INTERSECTION_KIND_LEAVE
@ GRAPHENE_RAY_INTERSECTION_KIND_ENTER
GRAPHENE_AVAILABLE_IN_1_10 bool graphene_ray_intersects_sphere(const graphene_ray_t *r, const graphene_sphere_t *s)
GRAPHENE_AVAILABLE_IN_1_10 bool graphene_ray_intersects_box(const graphene_ray_t *r, const graphene_box_t *b)
GRAPHENE_AVAILABLE_IN_1_4 void graphene_ray_get_direction(const graphene_ray_t *r, graphene_vec3_t *direction)
GRAPHENE_AVAILABLE_IN_1_4 void graphene_ray_free(graphene_ray_t *r)
GRAPHENE_AVAILABLE_IN_1_4 void graphene_ray_get_origin(const graphene_ray_t *r, graphene_point3d_t *origin)
GRAPHENE_AVAILABLE_IN_1_4 graphene_ray_t * graphene_ray_init_from_vec3(graphene_ray_t *r, const graphene_vec3_t *origin, const graphene_vec3_t *direction)
#define GRAPHENE_AVAILABLE_IN_1_4
#define GRAPHENE_AVAILABLE_IN_1_10
CURL_EXTERN CURLMcode curl_socket_t s
GRAPHENE_PRIVATE_FIELD(graphene_vec3_t, direction)
GRAPHENE_PRIVATE_FIELD(graphene_vec3_t, origin)