comparison include/ne10/NE10_physics.h @ 379:24c3a0663d54 prerelease

Added Ne10 headers within include directory
author andrewm
date Sun, 12 Jun 2016 18:16:20 +0100
parents
children
comparison
equal deleted inserted replaced
378:8db03611ee76 379:24c3a0663d54
1 /*
2 * Copyright 2014-15 ARM Limited and Contributors.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are met:
7 * * Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * * Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 * * Neither the name of ARM Limited nor the
13 * names of its contributors may be used to endorse or promote products
14 * derived from this software without specific prior written permission.
15 *
16 * THIS SOFTWARE IS PROVIDED BY ARM LIMITED AND CONTRIBUTORS "AS IS" AND
17 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
19 * DISCLAIMED. IN NO EVENT SHALL ARM LIMITED AND CONTRIBUTORS BE LIABLE FOR ANY
20 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
22 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
23 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
24 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
25 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
26 */
27
28 /*
29 * NE10 Library : inc/NE10_physics.h
30 */
31
32
33 #include "NE10_types.h"
34
35 #ifndef NE10_PHYSICS_H
36 #define NE10_PHYSICS_H
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 ///////////////////////////
43 // function prototypes:
44 ///////////////////////////
45
46 /* function pointers*/
47 extern void (*ne10_physics_compute_aabb_vec2f) (ne10_mat2x2f_t *aabb,
48 ne10_vec2f_t *vertices,
49 ne10_mat2x2f_t *xf,
50 ne10_vec2f_t *radius,
51 ne10_uint32_t vertex_count);
52 extern void (*ne10_physics_relative_v_vec2f) (ne10_vec2f_t *dv,
53 ne10_vec3f_t *v_wa,
54 ne10_vec2f_t *ra,
55 ne10_vec3f_t *v_wb,
56 ne10_vec2f_t *rb,
57 ne10_uint32_t count);
58 extern void (*ne10_physics_apply_impulse_vec2f) (ne10_vec3f_t *v_wa,
59 ne10_vec3f_t *v_wb,
60 ne10_vec2f_t *ra,
61 ne10_vec2f_t *rb,
62 ne10_vec2f_t *ima,
63 ne10_vec2f_t *imb,
64 ne10_vec2f_t *p,
65 ne10_uint32_t count);
66
67 /* C version*/
68 extern void ne10_physics_compute_aabb_vec2f_c (ne10_mat2x2f_t *aabb,
69 ne10_vec2f_t *vertices,
70 ne10_mat2x2f_t *xf,
71 ne10_vec2f_t *radius,
72 ne10_uint32_t vertex_count);
73 extern void ne10_physics_relative_v_vec2f_c (ne10_vec2f_t *dv,
74 ne10_vec3f_t *v_wa,
75 ne10_vec2f_t *ra,
76 ne10_vec3f_t *v_wb,
77 ne10_vec2f_t *rb,
78 ne10_uint32_t count);
79 extern void ne10_physics_apply_impulse_vec2f_c (ne10_vec3f_t *v_wa,
80 ne10_vec3f_t *v_wb,
81 ne10_vec2f_t *ra,
82 ne10_vec2f_t *rb,
83 ne10_vec2f_t *ima,
84 ne10_vec2f_t *imb,
85 ne10_vec2f_t *p,
86 ne10_uint32_t count);
87
88 /* NEON version*/
89 /**
90 * @addtogroup COLLISION_DETECT
91 * @{
92 */
93 #ifdef ENABLE_NE10_PHYSICS_COMPUTE_AABB_VEC2F_NEON
94 extern void ne10_physics_compute_aabb_vec2f_neon (ne10_mat2x2f_t *aabb,
95 ne10_vec2f_t *vertices,
96 ne10_mat2x2f_t *xf,
97 ne10_vec2f_t *radius,
98 ne10_uint32_t vertex_count);
99 #endif // ENABLE_NE10_PHYSICS_COMPUTE_AABB_VEC2F_NEON
100
101 #ifdef ENABLE_NE10_PHYSICS_RELATIVE_V_VEC2F_NEON
102 extern void ne10_physics_relative_v_vec2f_neon (ne10_vec2f_t *dv,
103 ne10_vec3f_t *v_wa,
104 ne10_vec2f_t *ra,
105 ne10_vec3f_t *v_wb,
106 ne10_vec2f_t *rb,
107 ne10_uint32_t count)
108 asm ("ne10_physics_relative_v_vec2f_neon");
109 #endif // ENABLE_NE10_PHYSICS_RELATIVE_V_VEC2F_NEON
110
111 #ifdef ENABLE_NE10_PHYSICS_APPLY_IMPULSE_VEC2F_NEON
112 extern void ne10_physics_apply_impulse_vec2f_neon (ne10_vec3f_t *v_wa,
113 ne10_vec3f_t *v_wb,
114 ne10_vec2f_t *ra,
115 ne10_vec2f_t *rb,
116 ne10_vec2f_t *ima,
117 ne10_vec2f_t *imb,
118 ne10_vec2f_t *p,
119 ne10_uint32_t count)
120 asm ("ne10_physics_apply_impulse_vec2f_neon");
121 #endif // ENABLE_NE10_PHYSICS_APPLY_IMPULSE_VEC2F_NEON
122 /**
123 * @} end of COLLISION_DETECT group
124 */
125
126
127 #ifdef __cplusplus
128 }
129 #endif
130
131 #endif