Prusa Slicer 2.6.0
Loading...
Searching...
No Matches
Slic3r::Emboss::IProjection Class Referenceabstract

Project 2d point into space Could be plane, sphere, cylindric, ... More...

#include <src/libslic3r/Emboss.hpp>

+ Inheritance diagram for Slic3r::Emboss::IProjection:
+ Collaboration diagram for Slic3r::Emboss::IProjection:

Public Member Functions

virtual ~IProjection ()=default
 
virtual std::pair< Vec3d, Vec3dcreate_front_back (const Point &p) const =0
 convert 2d point to 3d points
 
virtual std::optional< Vec2dunproject (const Vec3d &p, double *depth=nullptr) const =0
 Back projection.
 
virtual Vec3d project (const Vec3d &point) const =0
 Move point with respect to projection direction e.g. Orthogonal projection will move with point by direction e.g. Spherical projection need to use center of projection.
 

Detailed Description

Project 2d point into space Could be plane, sphere, cylindric, ...

Constructor & Destructor Documentation

◆ ~IProjection()

virtual Slic3r::Emboss::IProjection::~IProjection ( )
virtualdefault

Member Function Documentation

◆ create_front_back()

virtual std::pair< Vec3d, Vec3d > Slic3r::Emboss::IProjection::create_front_back ( const Point p) const
pure virtual

convert 2d point to 3d points

Parameters
p2d coordinate
Returns
first - front spatial point second - back spatial point

Implemented in Slic3r::Emboss::ProjectZ, Slic3r::Emboss::ProjectScale, and Slic3r::Emboss::OrthoProject.

Referenced by priv::polygons2model_duplicit(), priv::polygons2model_unique(), priv::set_skip_for_out_of_aoi(), and priv::to_cgal().

+ Here is the caller graph for this function:

◆ project()

virtual Vec3d Slic3r::Emboss::IProject3d::project ( const Vec3d point) const
pure virtualinherited

Move point with respect to projection direction e.g. Orthogonal projection will move with point by direction e.g. Spherical projection need to use center of projection.

Parameters
pointSpatial point coordinate
Returns
Projected spatial point

Implemented in Slic3r::Emboss::ProjectZ, Slic3r::Emboss::ProjectScale, Slic3r::Emboss::OrthoProject3d, and Slic3r::Emboss::OrthoProject.

Referenced by Slic3r::cut2model(), priv::is_patch_inside_of_model(), and priv::set_skip_by_angle().

+ Here is the caller graph for this function:

◆ unproject()

virtual std::optional< Vec2d > Slic3r::Emboss::IProjection::unproject ( const Vec3d p,
double *  depth = nullptr 
) const
pure virtual

Back projection.

Parameters
pPoint to project
depth[optional] Depth of 2d projected point. Be careful number is in 2d scale
Returns
Uprojected point when it is possible

Implemented in Slic3r::Emboss::ProjectZ, Slic3r::Emboss::ProjectScale, and Slic3r::Emboss::OrthoProject.

Referenced by priv::unproject_loops().

+ Here is the caller graph for this function:

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