Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::sla::RotfinderBoilerplate< MAX_ITER > Struct Template Reference
+ Collaboration diagram for Slic3r::sla::RotfinderBoilerplate< MAX_ITER >:

Public Member Functions

 RotfinderBoilerplate (const ModelObject &mo, const RotOptimizeParams &p)
 
void statusfn ()
 
bool stopcond ()
 

Static Public Member Functions

static TriangleMesh get_mesh_to_rotate (const ModelObject &mo)
 

Public Attributes

int status = 0
 
int prev_status = 0
 
TriangleMesh mesh
 
unsigned max_tries
 
const RotOptimizeParamsparams
 

Static Public Attributes

static constexpr unsigned MAX_TRIES = MAX_ITER
 

Detailed Description

template<unsigned MAX_ITER>
struct Slic3r::sla::RotfinderBoilerplate< MAX_ITER >

Constructor & Destructor Documentation

◆ RotfinderBoilerplate()

template<unsigned MAX_ITER>
Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::RotfinderBoilerplate ( const ModelObject mo,
const RotOptimizeParams p 
)
inline
312 , max_tries(p.accuracy() * MAX_TRIES)
313 , params{p}
314 {}
static TriangleMesh get_mesh_to_rotate(const ModelObject &mo)
Definition Rotfinder.cpp:298
static constexpr unsigned MAX_TRIES
Definition Rotfinder.cpp:289
TriangleMesh mesh
Definition Rotfinder.cpp:292
const RotOptimizeParams & params
Definition Rotfinder.cpp:294
unsigned max_tries
Definition Rotfinder.cpp:293

Member Function Documentation

◆ get_mesh_to_rotate()

template<unsigned MAX_ITER>
static TriangleMesh Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::get_mesh_to_rotate ( const ModelObject mo)
inlinestatic
299 {
300 TriangleMesh mesh = mo.raw_mesh();
301
302 ModelInstance *mi = mo.instances[0];
303 const Geometry::Transformation trafo = mi->get_transformation();
304 Transform3d trafo_instance = trafo.get_scaling_factor_matrix() * trafo.get_mirror_matrix();
305 mesh.transform(trafo_instance);
306
307 return mesh;
308 }
void transform(const Transform3d &t, bool fix_left_handed=false)
Definition TriangleMesh.cpp:330
Eigen::Transform< double, 3, Eigen::Affine, Eigen::DontAlign > Transform3d
Definition Point.hpp:81

References Slic3r::Geometry::Transformation::get_mirror_matrix(), Slic3r::Geometry::Transformation::get_scaling_factor_matrix(), Slic3r::ModelInstance::get_transformation(), Slic3r::ModelObject::instances, Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::mesh, Slic3r::ModelObject::raw_mesh(), and Slic3r::TriangleMesh::transform().

+ Here is the call graph for this function:

◆ statusfn()

template<unsigned MAX_ITER>
void Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::statusfn ( )
inline
316 {
317 int s = status * 100 / max_tries;
318 if (s != prev_status) {
319 params.statuscb()(s);
320 prev_status = s;
321 }
322
323 ++status;
324 }
const RotOptimizeStatusCB & statuscb() const
Definition Rotfinder.hpp:41
int status
Definition Rotfinder.cpp:291
int prev_status
Definition Rotfinder.cpp:291

References Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::max_tries, Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::params, Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::prev_status, Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::status, and Slic3r::sla::RotOptimizeParams::statuscb().

+ Here is the call graph for this function:

◆ stopcond()

template<unsigned MAX_ITER>
bool Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::stopcond ( )
inline
326{ return ! params.statuscb()(-1); }

References Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::params, and Slic3r::sla::RotOptimizeParams::statuscb().

+ Here is the call graph for this function:

Member Data Documentation

◆ MAX_TRIES

template<unsigned MAX_ITER>
constexpr unsigned Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::MAX_TRIES = MAX_ITER
staticconstexpr

◆ max_tries

template<unsigned MAX_ITER>
unsigned Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::max_tries

◆ mesh

◆ params

◆ prev_status

template<unsigned MAX_ITER>
int Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::prev_status = 0

◆ status

template<unsigned MAX_ITER>
int Slic3r::sla::RotfinderBoilerplate< MAX_ITER >::status = 0

The documentation for this struct was generated from the following file: