Public Member Functions | |
| TriangleCursor ()=delete | |
| TriangleCursor (const Vec3f ¢er_, const Vec3f &source_, float radius_world, const Transform3d &trafo_, const TriangleSelector::ClippingPlane &clipping_plane_, const std::array< const Vec3f, 3 > &vertices) | |
| ~TriangleCursor () override=default | |
| bool | is_mesh_point_inside (const Vec3f &point) const override |
| bool | is_edge_inside_cursor (const TriangleSelector::Triangle &tr, const std::vector< TriangleSelector::Vertex > &vertices) const override |
| bool | is_facet_visible (int facet_idx, const std::vector< Vec3f > &face_normals) const override |
| bool | is_pointer_in_triangle (const Vec3f &p1, const Vec3f &p2, const Vec3f &p3) const override |
| bool | is_pointer_in_triangle (const Triangle &tr, const std::vector< Vertex > &vertices) const |
| virtual int | vertices_inside (const Triangle &tr, const std::vector< Vertex > &vertices) const |
Static Public Member Functions | |
| static std::unique_ptr< Cursor > | build_cursor (const TriangleSelector &source_selector, const TriangleSelector::Triangle &tri) |
| static bool | check_normal (const Vec3f &facet_norm, const Vec3f &camera_dir) |
| static std::unique_ptr< Cursor > | cursor_factory (const Vec3f ¢er, const Vec3f &camera_pos, const float cursor_radius, const CursorType cursor_type, const Transform3d &trafo_matrix, const ClippingPlane &clipping_plane) |
| static std::unique_ptr< Cursor > | cursor_factory (float z_world, const Vec3f &camera_pos, const float height, const Transform3d &trafo_matrix, const ClippingPlane &clipping_plane) |
| static bool | is_facet_visible (const Cursor &cursor, int facet_idx, const std::vector< Vec3f > &face_normals) |
Static Public Attributes | |
| static constexpr float | tolerance = 0.01f |
Protected Attributes | |
| Vec3f | center |
| Transform3f | trafo |
| Vec3f | source |
| bool | uniform_scaling |
| Transform3f | trafo_normal |
| float | radius |
| float | radius_sqr |
| Vec3f | dir = Vec3f(0.f, 0.f, 0.f) |
| ClippingPlane | clipping_plane |
| friend | TriangleSelector |
Static Private Member Functions | |
| static float | point_to_line_dist (const Vec3f &p, const Vec3f &a, const Vec3f &b) |
Private Attributes | |
| const Barycentric | barycentric_ |
Static Private Attributes | |
| static const double | facet_angle_limit = cos(Geometry::deg2rad(5.0)) |
|
delete |
|
inlineexplicit |
References Slic3r::TriangleSelector::SinglePointCursor::SinglePointCursor(), and barycentric_.
|
overridedefault |
|
inlinestatic |
References Slic3r::TriangleSelector::SinglePointCursor::center, Slic3r::TriangleSelector::m_face_normals, Slic3r::TriangleSelector::m_vertices, point_to_line_dist(), Slic3r::TriangleSelector::Cursor::radius, Slic3r::TriangleSelector::Triangle::source_triangle, and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by Slic3r::TriangleSelector::remap_painting().
|
inlinestatic |
References facet_angle_limit.
Referenced by is_facet_visible(), and Slic3r::TriangleSelector::remap_painting().
|
inlinestaticinherited |
References center, Slic3r::TriangleSelector::CIRCLE, Slic3r::TriangleSelector::Cursor::clipping_plane, and Slic3r::TriangleSelector::SPHERE.
Referenced by Slic3r::GUI::GLGizmoPainterBase::gizmo_event().
|
inlinestaticinherited |
References Slic3r::TriangleSelector::Cursor::clipping_plane.
|
inlineoverridevirtual |
Implements Slic3r::TriangleSelector::Cursor.
References barycentric_, Slic3r::TriangleSelector::SinglePointCursor::center, Slic3r::diff(), Slic3r::TriangleSelector::Cursor::dir, Slic3r::segments_intersect_proj(), tolerance, Slic3r::TriangleSelector::Cursor::trafo, Slic3r::TriangleSelector::Cursor::uniform_scaling, and Slic3r::TriangleSelector::Triangle::verts_idxs.
|
inlineoverridevirtual |
Implements Slic3r::TriangleSelector::Cursor.
References check_normal(), and Slic3r::TriangleSelector::Cursor::dir.
|
staticinherited |
References Cursor(), dir, trafo_normal, and uniform_scaling.
|
inlineoverridevirtual |
Implements Slic3r::TriangleSelector::Cursor.
References barycentric_.
|
inherited |
References is_pointer_in_triangle(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
Referenced by is_pointer_in_triangle().
|
overridevirtualinherited |
Implements Slic3r::TriangleSelector::Cursor.
References center, Slic3r::TriangleSelector::Cursor::dir, Slic3r::is_circle_pointer_inside_triangle(), Slic3r::TriangleSelector::Cursor::trafo, and Slic3r::TriangleSelector::Cursor::uniform_scaling.
|
inlinestaticprivate |
Referenced by build_cursor().
|
virtualinherited |
References is_mesh_point_inside(), and Slic3r::TriangleSelector::Triangle::verts_idxs.
|
private |
Referenced by TriangleCursor(), is_edge_inside_cursor(), and is_mesh_point_inside().
|
protectedinherited |
Referenced by SinglePointCursor(), Slic3r::TriangleCursor::build_cursor(), cursor_factory(), Slic3r::TriangleCursor::is_edge_inside_cursor(), Slic3r::TriangleSelector::Circle::is_edge_inside_cursor(), Slic3r::TriangleSelector::Sphere::is_edge_inside_cursor(), Slic3r::TriangleSelector::Circle::is_mesh_point_inside(), Slic3r::TriangleSelector::Sphere::is_mesh_point_inside(), and is_pointer_in_triangle().
|
protectedinherited |
Referenced by Cursor(), Slic3r::TriangleSelector::DoublePointCursor::cursor_factory(), Slic3r::TriangleSelector::SinglePointCursor::cursor_factory(), Slic3r::TriangleSelector::SinglePointCursor::cursor_factory(), Slic3r::TriangleSelector::Capsule2D::is_mesh_point_inside(), Slic3r::TriangleSelector::Capsule3D::is_mesh_point_inside(), Slic3r::TriangleSelector::Circle::is_mesh_point_inside(), and Slic3r::TriangleSelector::Sphere::is_mesh_point_inside().
Referenced by Slic3r::TriangleSelector::DoublePointCursor::DoublePointCursor(), Slic3r::TriangleSelector::SinglePointCursor::SinglePointCursor(), Slic3r::TriangleCursor::is_edge_inside_cursor(), Slic3r::TriangleSelector::Capsule2D::is_edge_inside_cursor(), Slic3r::TriangleCursor::is_facet_visible(), is_facet_visible(), Slic3r::TriangleSelector::Capsule2D::is_mesh_point_inside(), Slic3r::TriangleSelector::Circle::is_mesh_point_inside(), Slic3r::TriangleSelector::DoublePointCursor::is_pointer_in_triangle(), and Slic3r::TriangleSelector::SinglePointCursor::is_pointer_in_triangle().
|
staticprivate |
Referenced by check_normal().
|
protectedinherited |
Referenced by Cursor(), Slic3r::TriangleCursor::build_cursor(), Slic3r::TriangleSelector::Capsule2D::is_edge_inside_cursor(), Slic3r::TriangleSelector::Capsule3D::is_edge_inside_cursor(), Slic3r::TriangleSelector::Sphere::is_edge_inside_cursor(), and Slic3r::TriangleSelector::Capsule2D::is_mesh_point_inside().
|
protectedinherited |
|
protectedinherited |
|
staticconstexpr |
Referenced by is_edge_inside_cursor(), and Slic3r::TriangleSelector::remap_painting().
|
protectedinherited |
Referenced by Cursor(), Slic3r::TriangleSelector::DoublePointCursor::DoublePointCursor(), Slic3r::TriangleSelector::SinglePointCursor::SinglePointCursor(), Slic3r::TriangleCursor::is_edge_inside_cursor(), Slic3r::TriangleSelector::Capsule2D::is_edge_inside_cursor(), Slic3r::TriangleSelector::Capsule3D::is_edge_inside_cursor(), Slic3r::TriangleSelector::Circle::is_edge_inside_cursor(), Slic3r::TriangleSelector::HeightRange::is_edge_inside_cursor(), Slic3r::TriangleSelector::Sphere::is_edge_inside_cursor(), Slic3r::TriangleSelector::Capsule2D::is_mesh_point_inside(), Slic3r::TriangleSelector::Capsule3D::is_mesh_point_inside(), Slic3r::TriangleSelector::Circle::is_mesh_point_inside(), Slic3r::TriangleSelector::HeightRange::is_mesh_point_inside(), Slic3r::TriangleSelector::Sphere::is_mesh_point_inside(), Slic3r::TriangleSelector::DoublePointCursor::is_pointer_in_triangle(), and Slic3r::TriangleSelector::SinglePointCursor::is_pointer_in_triangle().
|
protectedinherited |
Referenced by Cursor(), and is_facet_visible().
|
protectedinherited |
|
protectedinherited |
Referenced by Cursor(), Slic3r::TriangleSelector::DoublePointCursor::DoublePointCursor(), Slic3r::TriangleSelector::SinglePointCursor::SinglePointCursor(), Slic3r::TriangleCursor::is_edge_inside_cursor(), Slic3r::TriangleSelector::Capsule2D::is_edge_inside_cursor(), Slic3r::TriangleSelector::Capsule3D::is_edge_inside_cursor(), Slic3r::TriangleSelector::Circle::is_edge_inside_cursor(), Slic3r::TriangleSelector::Sphere::is_edge_inside_cursor(), is_facet_visible(), Slic3r::TriangleSelector::Capsule2D::is_mesh_point_inside(), Slic3r::TriangleSelector::Capsule3D::is_mesh_point_inside(), Slic3r::TriangleSelector::Circle::is_mesh_point_inside(), Slic3r::TriangleSelector::Sphere::is_mesh_point_inside(), Slic3r::TriangleSelector::DoublePointCursor::is_pointer_in_triangle(), and Slic3r::TriangleSelector::SinglePointCursor::is_pointer_in_triangle().