1 #ifdef HAVE_CONFIG_H
2 # include "config.h"
3 #endif
4
5 #include "Glue.hpp"
6
7 #include <simgear/bvh/BVHMaterial.hxx>
8 #include "Ground.hpp"
9 namespace yasim {
10
getGroundPlane(const double pos[3],double plane[4],float vel[3],unsigned int & body)11 void Ground::getGroundPlane(const double pos[3],
12 double plane[4], float vel[3],
13 unsigned int &body)
14 {
15 // ground. Calculate a cartesian coordinate for the ground under
16 // us, find the (geodetic) up vector normal to the ground, then
17 // use that to find the final (radius) term of the plane equation.
18 float up[3];
19 Glue::geodUp((double*)pos, up);
20 int i;
21 for(i=0; i<3; i++) plane[i] = up[i];
22 plane[3] = plane[0]*pos[0] + plane[1]*pos[1] + plane[2]*pos[2];
23
24 vel[0] = 0.0;
25 vel[1] = 0.0;
26 vel[2] = 0.0;
27
28 body = 0;
29 }
30
getGroundPlane(const double pos[3],double plane[4],float vel[3],const simgear::BVHMaterial ** material,unsigned int & body)31 void Ground::getGroundPlane(const double pos[3],
32 double plane[4], float vel[3],
33 const simgear::BVHMaterial **material,
34 unsigned int &body)
35 {
36 getGroundPlane(pos,plane,vel,body);
37 }
38
getBody(double t,double bodyToWorld[16],double linearVel[3],double angularVel[3],unsigned int & body)39 bool Ground::getBody(double t, double bodyToWorld[16], double linearVel[3],
40 double angularVel[3], unsigned int &body)
41 {
42 return false;
43 }
44
caughtWire(const double pos[4][3])45 bool Ground::caughtWire(const double pos[4][3])
46 {
47 return false;
48 }
49
getWire(double end[2][3],float vel[2][3])50 bool Ground::getWire(double end[2][3], float vel[2][3])
51 {
52 return false;
53 }
54
releaseWire(void)55 void Ground::releaseWire(void)
56 {
57 }
58
getCatapult(const double pos[3],double end[2][3],float vel[2][3])59 float Ground::getCatapult(const double pos[3], double end[2][3],
60 float vel[2][3])
61 {
62 return 1e10;
63 }
64
65 }; // namespace yasim
66
67