aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/ode-0.9/contrib/dRay/dxRay.h
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/ode-0.9/contrib/dRay/dxRay.h')
-rw-r--r--libraries/ode-0.9/contrib/dRay/dxRay.h32
1 files changed, 32 insertions, 0 deletions
diff --git a/libraries/ode-0.9/contrib/dRay/dxRay.h b/libraries/ode-0.9/contrib/dRay/dxRay.h
new file mode 100644
index 0000000..0fd1d2d
--- /dev/null
+++ b/libraries/ode-0.9/contrib/dRay/dxRay.h
@@ -0,0 +1,32 @@
1struct dxRay{
2 dReal Length;
3};
4
5inline void Decompose(const dMatrix3 Matrix, dVector3 Right, dVector3 Up, dVector3 Direction){
6 Right[0] = Matrix[0 * 4 + 0];
7 Right[1] = Matrix[1 * 4 + 0];
8 Right[2] = Matrix[2 * 4 + 0];
9 Right[3] = Matrix[3 * 4 + 0];
10 Up[0] = Matrix[0 * 4 + 1];
11 Up[1] = Matrix[1 * 4 + 1];
12 Up[2] = Matrix[2 * 4 + 1];
13 Up[3] = Matrix[3 * 4 + 1];
14 Direction[0] = Matrix[0 * 4 + 2];
15 Direction[1] = Matrix[1 * 4 + 2];
16 Direction[2] = Matrix[2 * 4 + 2];
17 Direction[3] = Matrix[3 * 4 + 2];
18}
19
20inline void Decompose(const dMatrix3 Matrix, dVector3 Vectors[3]){
21 Decompose(Matrix, Vectors[0], Vectors[1], Vectors[2]);
22}
23
24inline dContactGeom* CONTACT(int Flags, dContactGeom* Contacts, int Index, int Stride){
25 dIASSERT(Index >= 0 && Index < (Flags & 0x0ffff));
26 return ((dContactGeom*)(((char*)Contacts) + (Index * Stride)));
27}
28
29int dCollidePR(dxGeom* RayGeom, dxGeom* PlaneGeom, int Flags, dContactGeom* Contacts, int Stride);
30int dCollideSR(dxGeom* RayGeom, dxGeom* SphereGeom, int Flags, dContactGeom* Contacts, int Stride);
31int dCollideBR(dxGeom* RayGeom, dxGeom* BoxGeom, int Flags, dContactGeom* Contacts, int Stride);
32int dCollideCCR(dxGeom* RayGeom, dxGeom* CCylinderGeom, int Flags, dContactGeom* Contacts, int Stride); \ No newline at end of file