Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/model/mapfile.cc17
1 files changed, 9 insertions, 8 deletions
diff --git a/src/model/mapfile.cc b/src/model/mapfile.cc
index f3f347f..7efd44b 100644
--- a/src/model/mapfile.cc
+++ b/src/model/mapfile.cc
@@ -398,7 +398,7 @@ bool MapFile::read_patchdef()
// http://www.cc.gatech.edu/classes/AY2002/cs4451_spring/groups/group3/index.html#bpatches2
//
// patchvertices[][] are the control points as read from the .map file
- // mesh[][] is a subdivideXsubdivide quad mesh calculated for each set of 9 control points in the patch
+ // mesh[][] is a subdivide X subdivide quad mesh calculated for each set of 9 control points in the patch
// binomial coefficient
const float binom[3] = {1.0f, 2.0f, 1.0f};
@@ -520,7 +520,7 @@ bool MapFile::read_patchdef()
mesh[i+1][j+1] * SCALE,
mesh[i][j+1] * SCALE,
mesh[i][j] * SCALE);
- primitives->add_triangle(triangle);
+ map_collisiontriangles.add(*triangle);
triangle = new Triangle(
mesh[i+1][j+1] * SCALE,
@@ -1201,7 +1201,7 @@ void MapFile::load_fragmentgroup(Model *model, const FragmentGroup::Type class_t
if (map_load_clip) {
// clip materials are loaded into the CollisionMesh
for (Primitives::Triangles::iterator tris_it = primitives->triangles().begin(); tris_it != primitives->triangles().end(); tris_it++) {
- Triangle *triangle = (*tris_it);
+ Triangle *triangle = (*tris_it);
//model->collisionmesh()->add_triangle(triangle->v0(), triangle->v1(), triangle->v2());
map_collisiontriangles.add(*triangle);
}
@@ -1918,17 +1918,18 @@ Model * MapFile::load(std::string const &name)
if (mapfile.map_load_clip) {
if (mapfile.map_collisiontriangles.size()) {
- // create a collision mesh instance for the model
- model->set_collisionmesh(new CollisionMesh(name));
+ CollisionMesh *collisionmesh = new CollisionMesh(name);
// add clip triangles to collision mesh
for (TriangleList::iterator it = mapfile.map_collisiontriangles.begin(); it != mapfile.map_collisiontriangles.end(); it++) {
Triangle *triangle = (*it);
- model->collisionmesh()->add_triangle(triangle->v0() - map_center, triangle->v1() - map_center, triangle->v2() - map_center);
+ collisionmesh->add_triangle(triangle->v0() - map_center, triangle->v1() - map_center, triangle->v2() - map_center);
}
- // add the collision mesh to the registry
- CollisionMesh::add(model->collisionmesh());
+ // register the mesh
+ CollisionMesh::add(collisionmesh);
+ model->set_collisionmesh(collisionmesh);
+
con_debug << " " << mapfile.name() << " " << model->collisionmesh()->size() << " collision triangles" << std::endl;
}
}