Classes | |
| class | SymMat |
| struct | Error |
| struct | TriangleInfo |
| struct | VertexInfo |
| struct | EdgeInfo |
| struct | CopyEdgeInfo |
Typedefs | |
| using | Vertices = std::vector<stl_vertex> |
| using | Triangle = stl_triangle_vertex_indices |
| using | Indices = std::vector<stl_triangle_vertex_indices> |
| using | ThrowOnCancel = std::function<void(void)> |
| using | StatusFn = std::function<void(int)> |
| using | Errors = std::vector<Error> |
| using | TriangleInfos = std::vector<TriangleInfo> |
| using | VertexInfos = std::vector<VertexInfo> |
| using | EdgeInfos = std::vector<EdgeInfo> |
| using | CopyEdgeInfos = std::vector<CopyEdgeInfo> |
Functions | |
| Vec3d | create_normal (const Triangle &triangle, const Vertices &vertices) |
| std::array< Vec3d, 3 > | create_vertices (uint32_t id_v1, uint32_t id_v2, const Vertices &vertices) |
| std::array< double, 3 > | vertices_error (const SymMat &q, const std::array< Vec3d, 3 > &vertices) |
| double | calculate_determinant (const SymMat &q) |
| double | calculate_error (uint32_t id_v1, uint32_t id_v2, const SymMat &q, const Vertices &vertices) |
| Vec3f | calculate_vertex (uint32_t id_v1, uint32_t id_v2, const SymMat &q, const Vertices &vertices) |
| Vec3d | calculate_vertex (double det, const SymMat &q) |
| double | vertex_error (const SymMat &q, const Vec3d &vertex) |
| SymMat | create_quadric (const Triangle &t, const Vec3d &n, const Vertices &vertices) |
| std::tuple< TriangleInfos, VertexInfos, EdgeInfos, Errors > | init (const indexed_triangle_set &its, ThrowOnCancel &throw_on_cancel, StatusFn &status_fn) |
| std::optional< uint32_t > | find_triangle_index1 (uint32_t vi, const VertexInfo &v_info, uint32_t ti, const EdgeInfos &e_infos, const Indices &indices) |
| void | reorder_edges (EdgeInfos &e_infos, const VertexInfo &v_info, uint32_t ti0, uint32_t ti1) |
| bool | is_flipped (const Vec3f &new_vertex, uint32_t ti0, uint32_t ti1, const VertexInfo &v_info, const TriangleInfos &t_infos, const EdgeInfos &e_infos, const indexed_triangle_set &its) |
| bool | degenerate (uint32_t vi, uint32_t ti0, uint32_t ti1, const VertexInfo &v_info, const EdgeInfos &e_infos, const Indices &indices) |
| bool | create_no_volume (uint32_t vi0, uint32_t vi1, uint32_t ti0, uint32_t ti1, const VertexInfo &v_info0, const VertexInfo &v_info1, const EdgeInfos &e_infos, const Indices &indices) |
| Vec3d | calculate_3errors (const Triangle &t, const Vertices &vertices, const VertexInfos &v_infos) |
| Error | calculate_error (uint32_t ti, const Triangle &t, const Vertices &vertices, const VertexInfos &v_infos, unsigned char &min_index) |
| void | remove_triangle (EdgeInfos &e_infos, VertexInfo &v_info, uint32_t ti) |
| void | change_neighbors (EdgeInfos &e_infos, VertexInfos &v_infos, uint32_t ti0, uint32_t ti1, uint32_t vi0, uint32_t vi1, uint32_t vi_top0, const Triangle &t1, CopyEdgeInfos &infos, EdgeInfos &e_infos1) |
| void | compact (const VertexInfos &v_infos, const TriangleInfos &t_infos, const EdgeInfos &e_infos, indexed_triangle_set &its) |
Variables | |
| const uint32_t | check_cancel_period = 16 |
| const size_t | max_triangle_count_for_one_vertex = 50 |
| const int | status_init_size = 10 |
| const int | status_normal_size = 25 |
| const int | status_sum_quadric = 25 |
| const int | status_set_offsets = 10 |
| const int | status_calc_errors = 30 |
| const int | status_create_refs = 10 |
| using QuadricEdgeCollapse::CopyEdgeInfos = std::vector<CopyEdgeInfo> |
| using QuadricEdgeCollapse::EdgeInfos = std::vector<EdgeInfo> |
| using QuadricEdgeCollapse::Errors = std::vector<Error> |
| using QuadricEdgeCollapse::Indices = std::vector<stl_triangle_vertex_indices> |
| using QuadricEdgeCollapse::StatusFn = std::function<void(int)> |
| using QuadricEdgeCollapse::ThrowOnCancel = std::function<void(void)> |
| using QuadricEdgeCollapse::Triangle = stl_triangle_vertex_indices |
| using QuadricEdgeCollapse::TriangleInfos = std::vector<TriangleInfo> |
| using QuadricEdgeCollapse::VertexInfos = std::vector<VertexInfo> |
| using QuadricEdgeCollapse::Vertices = std::vector<stl_vertex> |
| Vec3d QuadricEdgeCollapse::calculate_3errors | ( | const Triangle & | t, |
| const Vertices & | vertices, | ||
| const VertexInfos & | v_infos ) |
References calculate_error().
Referenced by calculate_error(), and Slic3r::its_quadric_edge_collapse().
| double QuadricEdgeCollapse::calculate_determinant | ( | const SymMat & | q | ) |
References QuadricEdgeCollapse::SymMat::det().
Referenced by calculate_error(), and calculate_vertex().
| double QuadricEdgeCollapse::calculate_error | ( | uint32_t | id_v1, |
| uint32_t | id_v2, | ||
| const SymMat & | q, | ||
| const Vertices & | vertices ) |
References calculate_determinant(), calculate_vertex(), create_vertices(), vertex_error(), and vertices_error().
Referenced by calculate_3errors(), and Slic3r::its_quadric_edge_collapse().
| Error QuadricEdgeCollapse::calculate_error | ( | uint32_t | ti, |
| const Triangle & | t, | ||
| const Vertices & | vertices, | ||
| const VertexInfos & | v_infos, | ||
| unsigned char & | min_index ) |
References calculate_3errors(), and Slic3r::Error.
References QuadricEdgeCollapse::SymMat::det().
| Vec3f QuadricEdgeCollapse::calculate_vertex | ( | uint32_t | id_v1, |
| uint32_t | id_v2, | ||
| const SymMat & | q, | ||
| const Vertices & | vertices ) |
References calculate_determinant(), calculate_vertex(), create_vertices(), and vertices_error().
Referenced by calculate_error(), calculate_vertex(), and Slic3r::its_quadric_edge_collapse().
| void QuadricEdgeCollapse::change_neighbors | ( | EdgeInfos & | e_infos, |
| VertexInfos & | v_infos, | ||
| uint32_t | ti0, | ||
| uint32_t | ti1, | ||
| uint32_t | vi0, | ||
| uint32_t | vi1, | ||
| uint32_t | vi_top0, | ||
| const Triangle & | t1, | ||
| CopyEdgeInfos & | infos, | ||
| EdgeInfos & | e_infos1 ) |
References QuadricEdgeCollapse::CopyEdgeInfo::count, QuadricEdgeCollapse::VertexInfo::count, QuadricEdgeCollapse::CopyEdgeInfo::move, remove_triangle(), save(), QuadricEdgeCollapse::CopyEdgeInfo::start, QuadricEdgeCollapse::VertexInfo::start, and QuadricEdgeCollapse::EdgeInfo::t_index.
Referenced by Slic3r::its_quadric_edge_collapse().
| void QuadricEdgeCollapse::compact | ( | const VertexInfos & | v_infos, |
| const TriangleInfos & | t_infos, | ||
| const EdgeInfos & | e_infos, | ||
| indexed_triangle_set & | its ) |
References QuadricEdgeCollapse::VertexInfo::count, QuadricEdgeCollapse::EdgeInfo::edge, QuadricEdgeCollapse::TriangleInfo::is_deleted(), QuadricEdgeCollapse::VertexInfo::is_deleted(), QuadricEdgeCollapse::VertexInfo::start, and QuadricEdgeCollapse::EdgeInfo::t_index.
Referenced by Slic3r::its_quadric_edge_collapse().
| bool QuadricEdgeCollapse::create_no_volume | ( | uint32_t | vi0, |
| uint32_t | vi1, | ||
| uint32_t | ti0, | ||
| uint32_t | ti1, | ||
| const VertexInfo & | v_info0, | ||
| const VertexInfo & | v_info1, | ||
| const EdgeInfos & | e_infos, | ||
| const Indices & | indices ) |
References QuadricEdgeCollapse::VertexInfo::count, QuadricEdgeCollapse::VertexInfo::start, and QuadricEdgeCollapse::EdgeInfo::t_index.
Referenced by Slic3r::its_quadric_edge_collapse().
References Slic3r::cross().
Referenced by Slic3r::its_quadric_edge_collapse().
| std::array< Vec3d, 3 > QuadricEdgeCollapse::create_vertices | ( | uint32_t | id_v1, |
| uint32_t | id_v2, | ||
| const Vertices & | vertices ) |
Referenced by calculate_error(), and calculate_vertex().
| bool QuadricEdgeCollapse::degenerate | ( | uint32_t | vi, |
| uint32_t | ti0, | ||
| uint32_t | ti1, | ||
| const VertexInfo & | v_info, | ||
| const EdgeInfos & | e_infos, | ||
| const Indices & | indices ) |
References QuadricEdgeCollapse::VertexInfo::count, QuadricEdgeCollapse::VertexInfo::start, and QuadricEdgeCollapse::EdgeInfo::t_index.
Referenced by Slic3r::its_quadric_edge_collapse().
| std::optional< uint32_t > QuadricEdgeCollapse::find_triangle_index1 | ( | uint32_t | vi, |
| const VertexInfo & | v_info, | ||
| uint32_t | ti, | ||
| const EdgeInfos & | e_infos, | ||
| const Indices & | indices ) |
References QuadricEdgeCollapse::VertexInfo::count, QuadricEdgeCollapse::EdgeInfo::edge, QuadricEdgeCollapse::VertexInfo::start, and QuadricEdgeCollapse::EdgeInfo::t_index.
Referenced by Slic3r::its_quadric_edge_collapse().
| std::tuple< TriangleInfos, VertexInfos, EdgeInfos, Errors > QuadricEdgeCollapse::init | ( | const indexed_triangle_set & | its, |
| ThrowOnCancel & | throw_on_cancel, | ||
| StatusFn & | status_fn ) |
References QuadricEdgeCollapse::VertexInfo::count, QuadricEdgeCollapse::VertexInfo::q, Slic3r::range(), status_normal_size, and status_sum_quadric.
Referenced by Slic3r::its_quadric_edge_collapse().
| bool QuadricEdgeCollapse::is_flipped | ( | const Vec3f & | new_vertex, |
| uint32_t | ti0, | ||
| uint32_t | ti1, | ||
| const VertexInfo & | v_info, | ||
| const TriangleInfos & | t_infos, | ||
| const EdgeInfos & | e_infos, | ||
| const indexed_triangle_set & | its ) |
References QuadricEdgeCollapse::VertexInfo::count, Slic3r::dot(), QuadricEdgeCollapse::EdgeInfo::edge, Slic3r::normal(), QuadricEdgeCollapse::VertexInfo::start, and QuadricEdgeCollapse::EdgeInfo::t_index.
Referenced by Slic3r::its_quadric_edge_collapse().
| void QuadricEdgeCollapse::remove_triangle | ( | EdgeInfos & | e_infos, |
| VertexInfo & | v_info, | ||
| uint32_t | ti ) |
References QuadricEdgeCollapse::VertexInfo::count, and QuadricEdgeCollapse::VertexInfo::start.
Referenced by change_neighbors().
| void QuadricEdgeCollapse::reorder_edges | ( | EdgeInfos & | e_infos, |
| const VertexInfo & | v_info, | ||
| uint32_t | ti0, | ||
| uint32_t | ti1 ) |
References QuadricEdgeCollapse::VertexInfo::count, QuadricEdgeCollapse::VertexInfo::start, and QuadricEdgeCollapse::EdgeInfo::t_index.
Referenced by Slic3r::its_quadric_edge_collapse().
Referenced by calculate_error(), and vertices_error().
| std::array< double, 3 > QuadricEdgeCollapse::vertices_error | ( | const SymMat & | q, |
| const std::array< Vec3d, 3 > & | vertices ) |
References vertex_error().
Referenced by calculate_error(), and calculate_vertex().
| const uint32_t QuadricEdgeCollapse::check_cancel_period = 16 |
Referenced by Slic3r::its_quadric_edge_collapse().
| const size_t QuadricEdgeCollapse::max_triangle_count_for_one_vertex = 50 |
Referenced by Slic3r::its_quadric_edge_collapse().
| const int QuadricEdgeCollapse::status_calc_errors = 30 |
| const int QuadricEdgeCollapse::status_create_refs = 10 |
| const int QuadricEdgeCollapse::status_init_size = 10 |
Referenced by Slic3r::its_quadric_edge_collapse().
| const int QuadricEdgeCollapse::status_normal_size = 25 |
Referenced by init().
| const int QuadricEdgeCollapse::status_set_offsets = 10 |
| const int QuadricEdgeCollapse::status_sum_quadric = 25 |
Referenced by init().