diff options
author | Stijn Buys <ingar@osirion.org> | 2011-05-05 18:08:45 +0000 |
---|---|---|
committer | Stijn Buys <ingar@osirion.org> | 2011-05-05 18:08:45 +0000 |
commit | 1687737ca713cd0baeca3cf79950ef4877640c99 (patch) | |
tree | f6cfd31c850cec95da491036f1dd772397128549 /src/model/collisionmesh.cc | |
parent | 09d68d3d1d77d45343e3562c0b5e0cd6816d47d3 (diff) |
Initial support for btCompoundShape and the infrastructure required to accomodate multiple meshes per collision model,
added prototype files for signals
Diffstat (limited to 'src/model/collisionmesh.cc')
-rw-r--r-- | src/model/collisionmesh.cc | 27 |
1 files changed, 11 insertions, 16 deletions
diff --git a/src/model/collisionmesh.cc b/src/model/collisionmesh.cc index 5d4505a..5d2328a 100644 --- a/src/model/collisionmesh.cc +++ b/src/model/collisionmesh.cc @@ -26,7 +26,7 @@ void CollisionMesh::shutdown() void CollisionMesh::add(CollisionMesh *collisionmesh) { - collisionmesh_registry[collisionmesh->name()] = collisionmesh; + collisionmesh_registry.push_back(collisionmesh); } void CollisionMesh::clear() @@ -34,26 +34,16 @@ void CollisionMesh::clear() con_debug << " clearing collision meshes" << std::endl; for (Registry::iterator i = collisionmesh_registry.begin(); i != collisionmesh_registry.end(); ++i) { - delete (*i).second; - (*i).second = 0; + delete (*i); + (*i) = 0; } collisionmesh_registry.clear(); } -CollisionMesh *CollisionMesh::find(const std::string &name) -{ - for (Registry::iterator i = collisionmesh_registry.begin(); i != collisionmesh_registry.end(); ++i) { - if ((*i).first.compare(name) == 0) - return (*i).second; - } - - return 0; -} - -CollisionMesh::CollisionMesh(const std::string &name) : - collisionmesh_name(name) +CollisionMesh::CollisionMesh() { + collisionmesh_type = FragmentGroup::None; collisionmesh_size = 0; // btTriangleMesh (bool use32bitIndices=true, bool use4componentVertices=true) collisionmesh_triangles = new btTriangleMesh(true, false); @@ -64,6 +54,11 @@ CollisionMesh::~CollisionMesh() delete collisionmesh_triangles; } +void CollisionMesh::set_type(const FragmentGroup::Type type) +{ + collisionmesh_type = type; +} + void CollisionMesh::add_triangle(const math::Vector3f & v0, const math::Vector3f & v1, const math::Vector3f & v2) { collisionmesh_triangles->addTriangle( @@ -72,7 +67,7 @@ void CollisionMesh::add_triangle(const math::Vector3f & v0, const math::Vector3f to_btVector3(v2), true ); - collisionmesh_size += 1; + collisionmesh_size++; } } // namespace model |