Project::OSiRiON - Git repositories
Project::OSiRiON
News . About . Screenshots . Downloads . Forum . Wiki . Tracker . Git
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStijn Buys <ingar@osirion.org>2011-05-06 17:08:21 +0000
committerStijn Buys <ingar@osirion.org>2011-05-06 17:08:21 +0000
commite7a0b54c4717afdfa12a8847d5bc72b7b68290b4 (patch)
tree015dc7cc0f75c4405f5d07e137533d5dbc761598 /src/model/mapfile.cc
parentebe064bf159a5c6e90f2bbe902efa16c6e654ff8 (diff)
Import submodel clip
Diffstat (limited to 'src/model/mapfile.cc')
-rw-r--r--src/model/mapfile.cc23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/model/mapfile.cc b/src/model/mapfile.cc
index b05880f..0abbdbd 100644
--- a/src/model/mapfile.cc
+++ b/src/model/mapfile.cc
@@ -1864,11 +1864,23 @@ Model * MapFile::load(std::string const &name)
}
}
- /* TODO
- *
- * import submodel collision meshes
- */
-
+ // import submodel collisionmodel meshes
+ if (mapfile.map_load_clip && submodel_model->collisionmodel()) {
+ for (CollisionModel::CollisionMeshes::iterator cmit = submodel_model->collisionmodel()->meshes().begin();
+ cmit != submodel_model->collisionmodel()->meshes().end(); cmit++) {
+
+ CollisionMesh *meshsrc = (*cmit);
+ CollisionMesh *meshdst = new CollisionMesh(*meshsrc);
+
+ meshdst->set_type(meshsrc->type());
+ meshdst->set_scale(meshsrc->scale() * tag_submodel->scale());
+
+ meshdst->set_location(tag_submodel->location() + tag_submodel->axis() * (meshsrc->location() - submodel_model->origin()) * tag_submodel->scale());
+ meshdst->set_axis(tag_submodel->axis() * meshsrc->axis());
+
+ model->collisionmodel()->add_mesh(meshdst);
+ }
+ }
// copy light tags
for (Model::Lights::const_iterator lit = submodel_model->lights().begin(); lit != submodel_model->lights().end(); lit++) {
@@ -1906,6 +1918,7 @@ Model * MapFile::load(std::string const &name)
tag_dock->get_location().assign(tag_submodel->location() + tag_submodel->axis() * (tag_dock->location() - submodel_model->origin()) * tag_submodel->scale());
}
}
+
delete tag_submodel;
}