2 This file is part of the simulation module of 3dengfx.
4 Copyright (c) 2005 John Tsiombikas <nuclear@siggraph.org>
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
27 #include "3dengfx/object.hpp"
29 class RigidBody : Object {
35 RigidBody(dWorldID world);
41 virtual void set_position(const Vector3 &pos, unsigned long time = XFORM_LOCAL_PRS);
42 virtual void set_rotation(const Quaternion &rot, unsigned long time = XFORM_LOCAL_PRS);
43 virtual void set_rotation(const Vector3 &euler, unsigned long time = XFORM_LOCAL_PRS);
45 virtual void translate(const Vector3 &trans, unsigned long time = XFORM_LOCAL_PRS);
46 virtual void rotate(const Quaternion &rot, unsigned long time = XFORM_LOCAL_PRS);
47 virtual void rotate(const Vector3 &euler, unsigned long time = XFORM_LOCAL_PRS);
48 virtual void rotate(const Matrix3x3 &rmat, unsigned long time = XFORM_LOCAL_PRS);
51 class RigidSim : public Simulation {
54 std::list<Object*> obj_list;
56 virtual void run(unsigned long msec);
62 void set_gravity(const Vector3 &gvec);
63 void add_object(Object *obj);