a small cleanup
This commit is contained in:
parent
95abba5b96
commit
88648c8214
@ -587,6 +587,23 @@ EigenMesh3D to_eigenmesh(const TriangleMesh& tmesh) {
|
||||
|
||||
EigenMesh3D to_eigenmesh(const ModelObject& modelobj) {
|
||||
auto&& rmesh = modelobj.raw_mesh();
|
||||
|
||||
// we need to transform the raw mesh...
|
||||
// currently all the instances share the same x and y rotation and scaling
|
||||
// so we have to extract those from e.g. the first instance and apply to the
|
||||
// raw mesh. This is also true for the support points.
|
||||
// BUT: when the support structure is spawned for each instance than it has
|
||||
// to omit the X, Y rotation and scaling as those have been already applied
|
||||
// or apply an inverse transformation on the support structure after it
|
||||
// has been created.
|
||||
|
||||
// auto rot = modelobj.instances.front()->get_rotation();
|
||||
// auto scaling = modelobj.instances.front()->get_scaling_factor();
|
||||
|
||||
// rmesh.rotate(float(rot(X)), Axis::X);
|
||||
// rmesh.rotate(float(rot(Y)), Axis::Y);
|
||||
// rmesh.scale(scaling);
|
||||
|
||||
auto&& ret = to_eigenmesh(rmesh);
|
||||
auto&& bb = rmesh.bounding_box();
|
||||
ret.ground_level = bb.min(Z);
|
||||
@ -635,9 +652,18 @@ PointSet support_points(const Model& model) {
|
||||
PointSet support_points(const ModelObject& modelobject)
|
||||
{
|
||||
PointSet ret(modelobject.sla_support_points.size(), 3);
|
||||
auto rot = modelobject.instances.front()->get_rotation();
|
||||
// auto scaling = modelobject.instances.front()->get_scaling_factor();
|
||||
|
||||
// Transform3d tr;
|
||||
// tr.rotate(Eigen::AngleAxisd(rot(X), Vec3d::UnitX()) *
|
||||
// Eigen::AngleAxisd(rot(Y), Vec3d::UnitY()));
|
||||
|
||||
long i = 0;
|
||||
for(const Vec3f& msource : modelobject.sla_support_points) {
|
||||
ret.row(i++) = msource.cast<double>();
|
||||
Vec3d&& p = msource.cast<double>();
|
||||
// p = tr * p;
|
||||
ret.row(i++) = p;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
@ -1875,21 +1875,13 @@ void Plater::priv::on_process_completed(wxCommandEvent &evt)
|
||||
case ptSLA:
|
||||
// Update the SLAPrint from the current Model, so that the reload_scene()
|
||||
// pulls the correct data.
|
||||
|
||||
// FIXME: SLAPrint::apply is not ready for this. At this stage it would
|
||||
// invalidate the previous result and the supports would not be available
|
||||
// for rendering.
|
||||
// if (this->update_background_process() & UPDATE_BACKGROUND_PROCESS_RESTART)
|
||||
// this->schedule_background_process();
|
||||
|
||||
{
|
||||
// for(SLAPrintObject * po: sla_print.objects()) {
|
||||
// TriangleMesh&& suppmesh = po->support_mesh();
|
||||
// if(suppmesh.facets_count() > 0) {
|
||||
// ModelObject* mo = model.add_object();
|
||||
// for(const SLAPrintObject::Instance& inst : po->instances() ) {
|
||||
// mo->add_instance(*(mo->instances[inst.instance_id.id]));
|
||||
// mo->add_volume(suppmesh);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
}
|
||||
_3DScene::reload_scene(canvas3D, true);
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user