 |
Project Ne10
An Open Optimized Software Library Project for the ARM Architecture
|
33 #include "NE10_types.h"
35 #ifndef NE10_PHYSICS_H
36 #define NE10_PHYSICS_H
42 ne10_result_t ne10_init_physics (ne10_int32_t is_NEON_available);
49 extern void (*ne10_physics_compute_aabb_vec2f) (ne10_mat2x2f_t *aabb,
53 ne10_uint32_t vertex_count);
54 extern void (*ne10_physics_relative_v_vec2f) (
ne10_vec2f_t *dv,
60 extern void (*ne10_physics_apply_impulse_vec2f) (
ne10_vec3f_t *v_wa,
74 ne10_uint32_t vertex_count);
95 #ifdef ENABLE_NE10_PHYSICS_COMPUTE_AABB_VEC2F_NEON
96 extern void ne10_physics_compute_aabb_vec2f_neon (ne10_mat2x2f_t *aabb,
100 ne10_uint32_t vertex_count);
101 #endif // ENABLE_NE10_PHYSICS_COMPUTE_AABB_VEC2F_NEON
103 #ifdef ENABLE_NE10_PHYSICS_RELATIVE_V_VEC2F_NEON
104 extern void ne10_physics_relative_v_vec2f_neon (
ne10_vec2f_t *dv,
110 asm (
"ne10_physics_relative_v_vec2f_neon");
111 #endif // ENABLE_NE10_PHYSICS_RELATIVE_V_VEC2F_NEON
113 #ifdef ENABLE_NE10_PHYSICS_APPLY_IMPULSE_VEC2F_NEON
114 extern void ne10_physics_apply_impulse_vec2f_neon (
ne10_vec3f_t *v_wa,
122 asm (
"ne10_physics_apply_impulse_vec2f_neon");
123 #endif // ENABLE_NE10_PHYSICS_APPLY_IMPULSE_VEC2F_NEON
void ne10_physics_relative_v_vec2f_c(ne10_vec2f_t *dv, ne10_vec3f_t *v_wa, ne10_vec2f_t *ra, ne10_vec3f_t *v_wb, ne10_vec2f_t *rb, ne10_uint32_t count)
calculate relative velocity at contact.
a 3-tuple of ne10_float32_t values.
void ne10_physics_compute_aabb_vec2f_c(ne10_mat2x2f_t *aabb, ne10_vec2f_t *vertices, ne10_mat2x2f_t *xf, ne10_vec2f_t *radius, ne10_uint32_t vertex_count)
compute AABB for ploygon.
void ne10_physics_apply_impulse_vec2f_c(ne10_vec3f_t *v_wa, ne10_vec3f_t *v_wb, ne10_vec2f_t *ra, ne10_vec2f_t *rb, ne10_vec2f_t *ima, ne10_vec2f_t *imb, ne10_vec2f_t *p, ne10_uint32_t count)
apply contact impulse.
a 2-tuple of ne10_float32_t values.