1 /************************************************************************
2 This file is part of NE.
4 NE is free software: you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation, either version 3 of the License, or
7 (at your option) any later version.
9 NE is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
14 You should have received a copy of the GNU General Public License
15 along with NE. If not, see <http://www.gnu.org/licenses/>.
16 ************************************************************************/
22 #include <ode/odecpp.h>
23 #include <ode/odecpp_collision.h>
32 void setCollide(int (*func
)(Object
*,Object
*)) { m_colfunc
= func
; }
33 int collide(Object
* o
);
35 virtual void update() {}
37 virtual void draw() = 0;
39 dBody
*getBody() { return m_body
; }
40 dGeom
*getGeom() { return m_geom
; }
41 float getMass() { return m_mass
.mass
; }
43 void setPosition(dReal x
, dReal y
, dReal z
);
44 const dReal
*getPosition();
46 void setRotation(const dMatrix3 r
);
47 const dReal
*getRotation();
49 void setQuaternion(const dQuaternion q
);
50 const dReal
*getQuaternion();
52 bool isStatic() { return m_static
; }
53 void setStatic(bool is_static
);
55 virtual std::string
&serialize();
56 virtual void unserialize(std::string
&s
);
68 int (*m_colfunc
)(Object
*,Object
*);