// flattens everything to a single mesh TriangleMesh Model::raw_mesh() const { TriangleMesh mesh; for (ModelObjectPtrs::const_iterator o = this->objects.begin(); o != this->objects.end(); ++o) { mesh.merge((*o)->raw_mesh()); } return mesh; }
TriangleMesh ModelObject::raw_mesh() const { TriangleMesh mesh; for (ModelVolumePtrs::const_iterator v = this->volumes.begin(); v != this->volumes.end(); ++v) { if ((*v)->modifier) continue; mesh.merge((*v)->mesh); } return mesh; }
// flattens all volumes and instances into a single mesh TriangleMesh ModelObject::mesh() const { TriangleMesh mesh; TriangleMesh raw_mesh = this->raw_mesh(); for (ModelInstancePtrs::const_iterator i = this->instances.begin(); i != this->instances.end(); ++i) { TriangleMesh m(raw_mesh); (*i)->transform_mesh(&m); mesh.merge(m); } return mesh; }