4 * ***** BEGIN GPL LICENSE BLOCK *****
6 * This program is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU General Public License
8 * as published by the Free Software Foundation; either version 2
9 * of the License, or (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 Foundation,
18 * Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
21 * All rights reserved.
23 * The Original Code is: all of this file.
25 * Contributor(s): none yet.
27 * ***** END GPL LICENSE BLOCK *****
32 #include <MT_Scalar.h>
34 // Properties of dynamic objects
35 struct PHY_ShapeProps {
36 MT_Scalar m_mass; // Total mass
37 MT_Scalar m_inertia; // Inertia, should be a tensor some time
38 MT_Scalar m_lin_drag; // Linear drag (air, water) 0 = concrete, 1 = vacuum
39 MT_Scalar m_ang_drag; // Angular drag
40 MT_Scalar m_friction_scaling[3]; // Scaling for anisotropic friction. Component in range [0, 1]
41 bool m_do_anisotropic; // Should I do anisotropic friction?
42 bool m_do_fh; // Should the object have a linear Fh spring?
43 bool m_do_rot_fh; // Should the object have an angular Fh spring?
47 // Properties of collidable objects (non-ghost objects)
48 struct PHY_MaterialProps {
49 MT_Scalar m_restitution; // restitution of energie after a collision 0 = inelastic, 1 = elastic
50 MT_Scalar m_friction; // Coulomb friction (= ratio between the normal en maximum friction force)
51 MT_Scalar m_fh_spring; // Spring constant (both linear and angular)
52 MT_Scalar m_fh_damping; // Damping factor (linear and angular) in range [0, 1]
53 MT_Scalar m_fh_distance; // The range above the surface where Fh is active.
54 bool m_fh_normal; // Should the object slide off slopes?