Namespaces | |
| namespace | detail |
Classes | |
| class | const_primitive |
| Gathers the member arrays of a polyhedron primitive into a convenient package. More... | |
| class | primitive |
| Gathers the member arrays of a polyhedron primitive into a convenient package. More... | |
Enumerations | |
| enum | polyhedron_type { POLYGONS = 0, CATMULL_CLARK = 1 } |
Defines allowable polyhedron types. More... | |
Functions | |
| primitive * | create (mesh::primitive &GenericPrimitive) |
| primitive * | create (mesh &Mesh) |
| primitive * | create (mesh &Mesh, const mesh::points_t &Vertices, const mesh::counts_t &VertexCounts, const mesh::indices_t &VertexIndices, imaterial *const Material) |
| const_primitive * | validate (const mesh &Mesh, const mesh::primitive &Primitive) |
| primitive * | validate (const mesh &Mesh, mesh::primitive &Primitive) |
| primitive * | validate (const mesh &Mesh, pipeline_data< mesh::primitive > &Primitive) |
| void | add_triangle (mesh &Mesh, primitive &Polyhedron, const uint_t Shell, const uint_t V1, const uint_t V2, const uint_t V3, imaterial *const Material) |
| Adds a triangle to an existing polyhedron shell. Preconditions: the polyhedron must already contain at least one shell. | |
| void | add_quadrilateral (mesh &Mesh, primitive &Polyhedron, const uint_t Shell, const uint_t V1, const uint_t V2, const uint_t V3, const uint_t V4, imaterial *const Material) |
| Adds a quadrilateral to an existing polyhedron shell. Preconditions: the polyhedron must already contain at least one shell. | |
| void | add_face (mesh &Mesh, primitive &Polyhedron, const uint_t Shell, const mesh::points_t &Vertices, imaterial *const Material) |
| Adds a face to an existing polyhedron shell. Preconditions: the polyhedron must already contain at least one shell. | |
| void | add_face (mesh &Mesh, primitive &Polyhedron, const uint_t Shell, const mesh::points_t &Vertices, const std::vector< mesh::points_t > &Holes, imaterial *const Material) |
| Adds a face with holes to an existing polyhedron shell. Preconditions: the polyhedron must already contain at least one shell. | |
| void | add_grid (mesh &Mesh, primitive &Polyhedron, const uint_t Shell, const uint_t Rows, const uint_t Columns, imaterial *const Material) |
| void | add_cylinder (mesh &Mesh, primitive &Polyhedron, const uint_t Shell, const uint_t Rows, const uint_t Columns, imaterial *const Material) |
| void | add_torus (mesh &Mesh, primitive &Polyhedron, const uint_t Shell, const uint_t Rows, const uint_t Columns, imaterial *const Material) |
| bool_t | is_triangles (const const_primitive &Polyhedron) |
| Returns true iff every face in the given polyhedron is a triangle. | |
| bool_t | is_solid (const const_primitive &Polyhedron) |
| Returns true iff the given polyhedron is a solid (i.e. it has no topological holes). | |
| bool_t | is_sds (const const_primitive &Polyhedron) |
| Returns true iff the given polyhedron should be rendered as a Subdivision surface. | |
| void | create_counterclockwise_edge_lookup (const const_primitive &Polyhedron, mesh::indices_t &CounterclockwiseEdges) |
| Initializes arrays for constant-time lookup of counterclockwise edges. | |
| const point3 | center (const mesh::indices_t &VertexPoints, const mesh::indices_t &ClockwiseEdges, const mesh::points_t &Points, const uint_t EdgeIndex) |
| Calculates the center (average) for an edge loop (returns the origin for degenerate cases). | |
| const normal3 | normal (const mesh::indices_t &VertexPoints, const mesh::indices_t &ClockwiseEdges, const mesh::points_t &Points, const uint_t EdgeIndex) |
| Calculates the normal for an edge loop (returns a zero-length normal for degenerate cases). | |
| const normal3 | normal (const point3 &A, const point3 &B, const point3 &C) |
| Calculates the normal for a triangle (returns a zero-length normal for degenerate cases). | |
| void | create_face_normal_lookup (const mesh &Mesh, const const_primitive &Polyhedron, mesh::normals_t &Normals) |
| Initializes arrays for constant-time lookup from faces to normal vectors. | |
| void | create_point_out_edge_lookup (const mesh::indices_t &VertexPoints, const mesh::indices_t &ClockwiseEdges, std::vector< mesh::indices_t > &AdjacencyList) |
| void | create_edge_adjacency_lookup (const mesh::indices_t &VertexPoints, const mesh::indices_t &ClockwiseEdges, mesh::bools_t &BoundaryEdges, mesh::indices_t &AdjacentEdges) |
| Initializes arrays for constant-time lookup from an edge to the adjacent edge (if any). | |
| void | create_edge_face_lookup (const const_primitive &Polyhedron, mesh::indices_t &EdgeFaces) |
| Initializes an array for constant-time lookup from an edge to the face that owns it. | |
| void | create_loop_edge_count_lookup (const const_primitive &Polyhedron, mesh::counts_t &LoopEdgeCounts) |
| Initializes an array for constant-time lookup from loops to edge counts. | |
| void | create_point_face_lookup (const mesh::indices_t &FaceFirstLoops, const mesh::indices_t &FaceLoopCounts, const mesh::indices_t &LoopFirstEdges, const mesh::indices_t &VertexPoints, const mesh::indices_t &ClockwiseEdges, const mesh::points_t &Points, mesh::indices_t &PointFirstFaces, mesh::counts_t &PointFaceCounts, mesh::indices_t &PointFaces) |
| Initialize arrays for fast lookup from a vertex to its adjacent faces. | |
| void | create_point_face_lookup (const mesh &Mesh, const const_primitive &Polyhedron, std::vector< mesh::indices_t > &AdjacencyList) |
| Creates an adjacency list for fast lookup from a vertex to its adjacent faces. | |
| void | create_point_out_edge_lookup (const mesh &Mesh, const const_primitive &Polyhedron, std::vector< mesh::indices_t > &AdjacencyList) |
| Creates an adjacency list for fast lookup from a vertex to its out-edges. | |
| void | create_point_in_edge_lookup (const mesh &Mesh, const const_primitive &Polyhedron, std::vector< mesh::indices_t > &AdjacencyList) |
| Creates an adjacency list for fast lookup from a vertex to its in-edges. | |
| void | create_point_edge_lookup (const mesh &Mesh, const const_primitive &Polyhedron, std::vector< mesh::indices_t > &AdjacencyList) |
| Creates an adjacency list for fast lookup from a vertex to its incident (in- or out-) edges. | |
| void | create_point_edge_lookup (const mesh::indices_t &VertexPoints, mesh::indices_t &PointEdges, mesh::indices_t &PointFirstEdges, mesh::counts_t &PointEdgeCounts) |
| Initialize arrays for fast lookup from a point index to all edges that start from it. If PointEdgeCounts is filled (by create_vertex_valence_lookup) it is used, otherwise it is created. | |
| void | create_point_valence_lookup (const uint_t PointCount, const mesh::indices_t &VertexPoints, mesh::counts_t &Valences) |
| Initialize Valences array for constant time lookup of vertex valence (number of incoming edges). | |
| void | create_boundary_face_lookup (const mesh::indices_t &FaceFirstLoops, const mesh::indices_t &FaceLoopCounts, const mesh::indices_t &LoopFirstEdges, const mesh::indices_t &ClockwiseEdges, const mesh::bools_t &BoundaryEdges, const mesh::indices_t &AdjacentEdges, mesh::bools_t &BoundaryFaces) |
| Initialise boundary_faces array for constant time lookup of faces that are on the mesh boundary. BoundaryEdges and AdjacentEdges can be created using create_edge_adjacency_lookup. | |
| void | mark_collinear_edges (mesh::indices_t &RedundantEdges, const mesh::selection_t &EdgeSelection, const mesh::points_t &Points, const mesh::indices_t &VertexPoints, const mesh::indices_t &ClockwiseEdges, const mesh::counts_t &VertexValences, const mesh::bools_t &BoundaryEdges, const mesh::indices_t &AdjacentEdges, const double_t Threshold=1e-8) |
| Adds edges that are collinear and with points of valence 1 for boundary edges or valence 2 otherwise to EdgeList. | |
| void | mark_coplanar_edges (const mesh::indices_t &Companions, const mesh::bools_t &BoundaryEdges, const mesh::normals_t &Normals, const mesh::indices_t &EdgeFaces, const mesh::selection_t &FaceSelection, mesh::indices_t &RedundantEdges, const double_t Threshold=1e-8) |
| Marks edges that are shared by coplanar faces among the selected faces. | |
| mesh::primitive * | triangulate (const mesh &Input, const const_primitive &Polyhedron, mesh &Output) |
| Triangulates the input polyhedron, storing the resulting primitive and storing point data in Output. | |
| void | delete_components (const mesh &Mesh, primitive &Polyhedron, const mesh::bools_t &RemovePoints, mesh::bools_t &RemoveEdges, mesh::bools_t &RemoveLoops, mesh::bools_t &RemoveFaces) |
| Removes edges, loops, and faces from a polyhedron, cleaning-up references and attributes. | |
| primitive * | create (mesh &Mesh, const mesh::points_t &Vertices, const mesh::counts_t &VertexCounts, const mesh::indices_t &VertexIndices, const mesh::texture_coordinates_t &TextureCoordinates, imaterial *const Material) |
| void k3d::polyhedron::add_cylinder | ( | mesh & | Mesh, | |
| primitive & | Polyhedron, | |||
| const uint_t | Shell, | |||
| const uint_t | Rows, | |||
| const uint_t | Columns, | |||
| imaterial *const | Material | |||
| ) |
Adds a set of points and faces that form a topological "cylinder" with the given number of rows and columns to an existing polyhedron. The geometry (vertex coordinates) of the cylinder is undefined, and must be set by the caller after add_cylinder() returns. Note that many surfaces-of-revolution can be represented as topological cylinders, including disks, cones, cylinders, hyperboloids, paraboloids, and spheres. Preconditions: the polyhedron must contain at least one shell. Postconditions: the polyhedron contains Rows x Columns new faces and Rows x Columns x 4 new half edges, and the mesh contains (Rows + 1) x Columns new points.
Referenced by module::polyhedron::sources::poly_sphere::on_update_mesh_topology(), module::polyhedron::sources::poly_disk::on_update_mesh_topology(), module::polyhedron::sources::poly_cylinder::on_update_mesh_topology(), module::polyhedron::sources::poly_cube::on_update_mesh_topology(), and module::polyhedron::sources::poly_cone::on_update_mesh_topology().
| void k3d::polyhedron::add_face | ( | mesh & | Mesh, | |
| primitive & | Polyhedron, | |||
| const uint_t | Shell, | |||
| const mesh::points_t & | Vertices, | |||
| const std::vector< mesh::points_t > & | Holes, | |||
| imaterial *const | Material | |||
| ) |
Adds a face with holes to an existing polyhedron shell. Preconditions: the polyhedron must already contain at least one shell.
| void k3d::polyhedron::add_face | ( | mesh & | Mesh, | |
| primitive & | Polyhedron, | |||
| const uint_t | Shell, | |||
| const mesh::points_t & | Vertices, | |||
| imaterial *const | Material | |||
| ) |
Adds a face to an existing polyhedron shell. Preconditions: the polyhedron must already contain at least one shell.
| void k3d::polyhedron::add_grid | ( | mesh & | Mesh, | |
| primitive & | Polyhedron, | |||
| const uint_t | Shell, | |||
| const uint_t | Rows, | |||
| const uint_t | Columns, | |||
| imaterial *const | Material | |||
| ) |
Adds a set of points and faces that form a topological "grid" with the given number of rows and columns to an existing polyhedron. The geometry (vertex coordinates) of the grid is undefined, and must be set by the caller after add_grid() returns. Preconditions: the polyhedron must contain at last one shell. Postconditions: the polyhedron contains Rows x Columns new faces and Rows x Columns x 4 new half edges, and the mesh contains (Rows + 1) x (Columns + 1) new points.
Referenced by module::plot::surface_plot::on_update_mesh_topology(), module::polyhedron::sources::poly_grid::on_update_mesh_topology(), and module::plot::least_squares_plot::on_update_mesh_topology().
| void k3d::polyhedron::add_quadrilateral | ( | mesh & | Mesh, | |
| primitive & | Polyhedron, | |||
| const uint_t | Shell, | |||
| const uint_t | V1, | |||
| const uint_t | V2, | |||
| const uint_t | V3, | |||
| const uint_t | V4, | |||
| imaterial *const | Material | |||
| ) |
Adds a quadrilateral to an existing polyhedron shell. Preconditions: the polyhedron must already contain at least one shell.
Referenced by module::polyhedron::sources::poly_cushion::add_face(), module::polyhedron::sources::poly_sphere::on_update_mesh_topology(), module::polyhedron::sources::poly_cylinder::on_update_mesh_topology(), and module::polyhedron::sources::poly_cube::on_update_mesh_topology().
| void k3d::polyhedron::add_torus | ( | mesh & | Mesh, | |
| primitive & | Polyhedron, | |||
| const uint_t | Shell, | |||
| const uint_t | Rows, | |||
| const uint_t | Columns, | |||
| imaterial *const | Material | |||
| ) |
Adds a set of points and faces that form a topological "torus" with the given number of rows and columns to an existing polyhedron. The geometry (vertex coordinates) of the torus is undefined, and must be set by the caller after add_torus() returns. Preconditions: the polyhedron must contain at least one shell. Postconditions: the polyhedron contains Rows x Columns new faces and Rows x Columns x 4 new half edges, and the mesh contains Rows x Columns new points.
Referenced by module::polyhedron::sources::poly_torus::on_update_mesh_topology().
| void k3d::polyhedron::add_triangle | ( | mesh & | Mesh, | |
| primitive & | Polyhedron, | |||
| const uint_t | Shell, | |||
| const uint_t | V1, | |||
| const uint_t | V2, | |||
| const uint_t | V3, | |||
| imaterial *const | Material | |||
| ) |
Adds a triangle to an existing polyhedron shell. Preconditions: the polyhedron must already contain at least one shell.
Referenced by module::polyhedron::sources::poly_cushion::add_face(), module::polyhedron::sources::poly_sphere::on_update_mesh_topology(), and module::polyhedron::sources::poly_cylinder::on_update_mesh_topology().
| const point3 k3d::polyhedron::center | ( | const mesh::indices_t & | VertexPoints, | |
| const mesh::indices_t & | ClockwiseEdges, | |||
| const mesh::points_t & | Points, | |||
| const uint_t | EdgeIndex | |||
| ) |
Calculates the center (average) for an edge loop (returns the origin for degenerate cases).
Referenced by module::quadrics::logo::add_sphere(), module::quadrics::logo::add_torus(), module::indigo::rectangle_light::draw(), k3d::mesh_reader< k3d::node >::execute(), module::polyhedron::detail::fill_intersections(), module::opengl::painters::nurbs_patch_numbering_painter::on_paint_mesh(), module::opengl::painters::nurbs_curve_numbering_painter::on_paint_mesh(), module::opengl::painters::normal_array_painter::on_paint_mesh(), module::opengl::painters::face_orientation_painter::on_paint_mesh(), module::opengl::painters::face_numbering_painter::on_paint_mesh(), module::opengl::painters::face_normal_painter::on_paint_mesh(), k3d::sds::detail::face_center_calculator::operator()(), module::xtrackcad::document_importer::read_file(), k3d::ngui::transform_tool::mesh_target::rotate(), and k3d::ngui::transform_tool::mesh_target::scale().
| primitive* k3d::polyhedron::create | ( | mesh & | Mesh, | |
| const mesh::points_t & | Vertices, | |||
| const mesh::counts_t & | VertexCounts, | |||
| const mesh::indices_t & | VertexIndices, | |||
| const mesh::texture_coordinates_t & | TextureCoordinates, | |||
| imaterial *const | Material | |||
| ) |
Creates a new polyhedron mesh primitive from a list of vertices, texture coordinates, and face indices, returning references to its member arrays. The caller is responsible for the lifetime of the returned object.
| primitive* k3d::polyhedron::create | ( | mesh & | Mesh, | |
| const mesh::points_t & | Vertices, | |||
| const mesh::counts_t & | VertexCounts, | |||
| const mesh::indices_t & | VertexIndices, | |||
| imaterial *const | Material | |||
| ) |
Creates a new polyhedron mesh primitive from a list of vertices and face indices, returning references to its member arrays. The caller is responsible for the lifetime of the returned object.
| primitive * k3d::polyhedron::create | ( | mesh & | Mesh | ) |
Creates a new polyhedron mesh primitive, returning references to its member arrays. The caller is responsible for the lifetime of the returned object.
| primitive * k3d::polyhedron::create | ( | mesh::primitive & | GenericPrimitive | ) |
Creates a new polyhedron mesh primitive, returning references to its member arrays. The caller is responsible for the lifetime of the returned object.
Referenced by module::qslim::qslim::append(), k3d::python::polyhedron::create(), k3d::python::polyhedron::create2(), module::collada::io::intGeometry::intGeometry(), module::polyhedron::selected_faces_to_polyhedron::on_create_mesh(), module::bicubic_patch::bicubic_to_poly::on_create_mesh(), module::obj::io::mesh_reader::my_parser::on_curve_surface_type(), module::ply::io::mesh_reader::on_load_mesh(), module::md2::io::mesh_reader_implementation::on_load_mesh(), module::gts::io::mesh_reader::on_load_mesh(), module::nurbs::polygonize_patch::on_update_mesh(), module::subdivision_surface::catmull_clark_subdivider::on_update_mesh(), module::uniform_polyhedron::uniform_polyhedron::on_update_mesh_topology(), module::plot::surface_plot::on_update_mesh_topology(), module::polyhedron::sources::poly_torus::on_update_mesh_topology(), module::polyhedron::sources::poly_sphere::on_update_mesh_topology(), module::polyhedron::sources::poly_icosahedron::on_update_mesh_topology(), module::polyhedron::sources::poly_grid::on_update_mesh_topology(), module::polyhedron::sources::poly_disk::on_update_mesh_topology(), module::polyhedron::sources::poly_cylinder::on_update_mesh_topology(), module::polyhedron::sources::poly_cushion::on_update_mesh_topology(), module::polyhedron::sources::poly_cube::on_update_mesh_topology(), module::polyhedron::sources::poly_cone::on_update_mesh_topology(), module::plot::least_squares_plot::on_update_mesh_topology(), module::lsystem::l_parser::on_update_mesh_topology(), k3d::polyhedron::detail::create_triangles::process(), and module::cgal::to_mesh().
| void k3d::polyhedron::create_boundary_face_lookup | ( | const mesh::indices_t & | FaceFirstLoops, | |
| const mesh::indices_t & | FaceLoopCounts, | |||
| const mesh::indices_t & | LoopFirstEdges, | |||
| const mesh::indices_t & | ClockwiseEdges, | |||
| const mesh::bools_t & | BoundaryEdges, | |||
| const mesh::indices_t & | AdjacentEdges, | |||
| mesh::bools_t & | BoundaryFaces | |||
| ) |
Initialise boundary_faces array for constant time lookup of faces that are on the mesh boundary. BoundaryEdges and AdjacentEdges can be created using create_edge_adjacency_lookup.
| void k3d::polyhedron::create_counterclockwise_edge_lookup | ( | const const_primitive & | Polyhedron, | |
| mesh::indices_t & | CounterclockwiseEdges | |||
| ) |
Initializes arrays for constant-time lookup of counterclockwise edges.
Referenced by module::polyhedron::connect_vertices::on_create_mesh(), and module::polyhedron::bridge_faces::on_create_mesh().
| void k3d::polyhedron::create_edge_adjacency_lookup | ( | const mesh::indices_t & | VertexPoints, | |
| const mesh::indices_t & | ClockwiseEdges, | |||
| mesh::bools_t & | BoundaryEdges, | |||
| mesh::indices_t & | AdjacentEdges | |||
| ) |
Initializes arrays for constant-time lookup from an edge to the adjacent edge (if any).
Referenced by module::selection::select_connected_components::connected_faces_selector::connected_faces_selector(), k3d::sds::catmull_clark_subdivider::implementation::create_mesh(), module::cgal::k3d_to_nef(), module::cgal::detail::merge_collinear_edges(), module::carve::detail::merge_collinear_edges(), module::carve::detail::merge_coplanar_faces(), module::polyhedron::subdivide_faces::on_create_mesh(), module::polyhedron::subdivide_edges::on_create_mesh(), module::polyhedron::merge_coplanar_faces::on_create_mesh(), module::polyhedron::merge_collinear_edges::on_create_mesh(), module::euler::kill_edge_make_loop::on_create_mesh(), module::euler::kill_edge_and_vertex::on_create_mesh(), module::polyhedron::extrude_faces::on_create_mesh(), module::polyhedron::dissolve_faces::on_create_mesh(), module::polyhedron::cap_holes::on_create_mesh(), module::polyhedron::bridge_edges::on_create_mesh(), module::polyhedron::bevel_points::on_create_mesh(), module::selection::select_edge_rings::on_update_selection(), module::selection::select_edge_loops::on_update_selection(), module::selection::select_companion::on_update_selection(), module::selection::select_boundary_edges::on_update_selection(), module::selection::grow_selection::on_update_selection(), k3d::qtui::selection::detail::select_edges::operator()(), and k3d::ngui::selection::detail::select_edges::operator()().
| void k3d::polyhedron::create_edge_face_lookup | ( | const const_primitive & | Polyhedron, | |
| mesh::indices_t & | EdgeFaces | |||
| ) |
Initializes an array for constant-time lookup from an edge to the face that owns it.
Referenced by module::selection::select_connected_components::connected_faces_selector::connected_faces_selector(), module::cgal::k3d_to_nef(), module::cgal::detail::merge_collinear_edges(), module::carve::detail::merge_coplanar_faces(), module::polyhedron::merge_coplanar_faces::on_create_mesh(), module::polyhedron::extrude_faces::on_create_mesh(), module::polyhedron::dissolve_faces::on_create_mesh(), module::polyhedron::cap_holes::on_create_mesh(), module::polyhedron::bridge_edges::on_create_mesh(), module::polyhedron::bevel_points::on_create_mesh(), and module::selection::grow_selection::on_update_selection().
| void k3d::polyhedron::create_face_normal_lookup | ( | const mesh & | Mesh, | |
| const const_primitive & | Polyhedron, | |||
| mesh::normals_t & | Normals | |||
| ) |
Initializes arrays for constant-time lookup from faces to normal vectors.
Referenced by module::polyhedron::extrude_faces::on_create_mesh().
| void k3d::polyhedron::create_loop_edge_count_lookup | ( | const const_primitive & | Polyhedron, | |
| mesh::counts_t & | LoopEdgeCounts | |||
| ) |
Initializes an array for constant-time lookup from loops to edge counts.
Referenced by module::polyhedron::move_first_edge_implementation::on_create_mesh(), module::polyhedron::bridge_faces::on_create_mesh(), and module::selection::select_n_sided::on_update_selection().
| void k3d::polyhedron::create_point_edge_lookup | ( | const mesh::indices_t & | VertexPoints, | |
| mesh::indices_t & | PointEdges, | |||
| mesh::indices_t & | PointFirstEdges, | |||
| mesh::counts_t & | PointEdgeCounts | |||
| ) |
Initialize arrays for fast lookup from a point index to all edges that start from it. If PointEdgeCounts is filled (by create_vertex_valence_lookup) it is used, otherwise it is created.
| void k3d::polyhedron::create_point_edge_lookup | ( | const mesh & | Mesh, | |
| const const_primitive & | Polyhedron, | |||
| std::vector< mesh::indices_t > & | AdjacencyList | |||
| ) |
Creates an adjacency list for fast lookup from a vertex to its incident (in- or out-) edges.
Referenced by module::polyhedron::collapse_edges::on_create_mesh(), and module::selection::grow_selection::on_update_selection().
| void k3d::polyhedron::create_point_face_lookup | ( | const mesh & | Mesh, | |
| const const_primitive & | Polyhedron, | |||
| std::vector< mesh::indices_t > & | AdjacencyList | |||
| ) |
Creates an adjacency list for fast lookup from a vertex to its adjacent faces.
| void k3d::polyhedron::create_point_face_lookup | ( | const mesh::indices_t & | FaceFirstLoops, | |
| const mesh::indices_t & | FaceLoopCounts, | |||
| const mesh::indices_t & | LoopFirstEdges, | |||
| const mesh::indices_t & | VertexPoints, | |||
| const mesh::indices_t & | ClockwiseEdges, | |||
| const mesh::points_t & | Points, | |||
| mesh::indices_t & | PointFirstFaces, | |||
| mesh::counts_t & | PointFaceCounts, | |||
| mesh::indices_t & | PointFaces | |||
| ) |
Initialize arrays for fast lookup from a vertex to its adjacent faces.
Referenced by k3d::sds::catmull_clark_subdivider::implementation::create_mesh(), module::polyhedron::dissolve_faces::on_create_mesh(), module::polyhedron::collapse_faces::on_create_mesh(), and module::mesh_attributes::calculate_normals::on_update_mesh().
| void k3d::polyhedron::create_point_in_edge_lookup | ( | const mesh & | Mesh, | |
| const const_primitive & | Polyhedron, | |||
| std::vector< mesh::indices_t > & | AdjacencyList | |||
| ) |
Creates an adjacency list for fast lookup from a vertex to its in-edges.
| void k3d::polyhedron::create_point_out_edge_lookup | ( | const mesh & | Mesh, | |
| const const_primitive & | Polyhedron, | |||
| std::vector< mesh::indices_t > & | AdjacencyList | |||
| ) |
Creates an adjacency list for fast lookup from a vertex to its out-edges.
| void k3d::polyhedron::create_point_out_edge_lookup | ( | const mesh::indices_t & | VertexPoints, | |
| const mesh::indices_t & | ClockwiseEdges, | |||
| std::vector< mesh::indices_t > & | AdjacencyList | |||
| ) |
References k3d::uint_t_array::size().
Referenced by k3d::sds::catmull_clark_subdivider::implementation::create_mesh().
| void k3d::polyhedron::create_point_valence_lookup | ( | const uint_t | PointCount, | |
| const mesh::indices_t & | VertexPoints, | |||
| mesh::counts_t & | Valences | |||
| ) |
Initialize Valences array for constant time lookup of vertex valence (number of incoming edges).
| PointCount | Initial guess for the number of points. Valences will be expanded to the correct size if this is too small | |
| VertexPoints | The indices of the edge points | |
| Valences | will store the number of edges for each point |
Referenced by module::carve::detail::merge_collinear_edges(), module::polyhedron::merge_collinear_edges::on_create_mesh(), module::selection::select_edge_rings::on_update_selection(), and module::selection::select_edge_loops::on_update_selection().
| void k3d::polyhedron::delete_components | ( | const mesh & | Mesh, | |
| primitive & | Polyhedron, | |||
| const mesh::bools_t & | RemovePoints, | |||
| mesh::bools_t & | RemoveEdges, | |||
| mesh::bools_t & | RemoveLoops, | |||
| mesh::bools_t & | RemoveFaces | |||
| ) |
Removes edges, loops, and faces from a polyhedron, cleaning-up references and attributes.
Referenced by module::polyhedron::subdivide_faces::on_create_mesh(), module::polyhedron::dissolve_faces::on_create_mesh(), module::polyhedron::collapse_points::on_create_mesh(), module::polyhedron::collapse_faces::on_create_mesh(), module::polyhedron::collapse_edges::on_create_mesh(), and module::polyhedron::bridge_faces::on_create_mesh().
| bool_t k3d::polyhedron::is_sds | ( | const const_primitive & | Polyhedron | ) |
Returns true iff the given polyhedron should be rendered as a Subdivision surface.
Referenced by module::opengl::painters::sds_vbo< component_t >::on_execute(), module::opengl::painters::cached_triangulation::on_execute(), module::opengl::painters::sds_cache::on_geometry_changed(), module::opengl::painters::vbo_sds_painter< point_selection, sds_point_vbo >::on_paint_mesh(), module::opengl::painters::vbo_face_painter::on_paint_mesh(), module::opengl::painters::textured_face_painter::on_paint_mesh(), module::opengl::painters::sds_point_painter::on_paint_mesh(), module::opengl::painters::sds_face_painter::on_paint_mesh(), module::opengl::painters::hidden_line_painter::on_paint_mesh(), module::opengl::painters::face_painter::on_paint_mesh(), module::opengl::painters::color_face_painter::on_paint_mesh(), module::opengl::painters::vbo_sds_painter< point_selection, sds_point_vbo >::on_select_mesh(), module::opengl::painters::vbo_face_painter::on_select_mesh(), module::opengl::painters::textured_face_painter::on_select_mesh(), module::opengl::painters::sds_point_painter::on_select_mesh(), module::opengl::painters::sds_face_painter::on_select_mesh(), module::opengl::painters::hidden_line_painter::on_select_mesh(), module::opengl::painters::face_painter::on_select_mesh(), and module::opengl::painters::color_face_painter::on_select_mesh().
| bool_t k3d::polyhedron::is_solid | ( | const const_primitive & | Polyhedron | ) |
Returns true iff the given polyhedron is a solid (i.e. it has no topological holes).
| bool_t k3d::polyhedron::is_triangles | ( | const const_primitive & | Polyhedron | ) |
Returns true iff every face in the given polyhedron is a triangle.
Referenced by module::ogre::io::mesh_writer::on_write_mesh().
| void k3d::polyhedron::mark_collinear_edges | ( | mesh::indices_t & | RedundantEdges, | |
| const mesh::selection_t & | EdgeSelection, | |||
| const mesh::points_t & | Points, | |||
| const mesh::indices_t & | VertexPoints, | |||
| const mesh::indices_t & | ClockwiseEdges, | |||
| const mesh::counts_t & | VertexValences, | |||
| const mesh::bools_t & | BoundaryEdges, | |||
| const mesh::indices_t & | AdjacentEdges, | |||
| const double_t | Threshold | |||
| ) |
Adds edges that are collinear and with points of valence 1 for boundary edges or valence 2 otherwise to EdgeList.
Referenced by module::carve::detail::merge_collinear_edges(), and module::polyhedron::merge_collinear_edges::on_create_mesh().
| void k3d::polyhedron::mark_coplanar_edges | ( | const mesh::indices_t & | Companions, | |
| const mesh::bools_t & | BoundaryEdges, | |||
| const mesh::normals_t & | Normals, | |||
| const mesh::indices_t & | EdgeFaces, | |||
| const mesh::selection_t & | FaceSelection, | |||
| mesh::indices_t & | RedundantEdges, | |||
| const double_t | Threshold | |||
| ) |
Marks edges that are shared by coplanar faces among the selected faces.
Referenced by module::cgal::detail::merge_collinear_edges(), module::carve::detail::merge_coplanar_faces(), and module::polyhedron::merge_coplanar_faces::on_create_mesh().
| const normal3 k3d::polyhedron::normal | ( | const point3 & | i, | |
| const point3 & | j, | |||
| const point3 & | k | |||
| ) |
Calculates the normal for a triangle (returns a zero-length normal for degenerate cases).
| const normal3 k3d::polyhedron::normal | ( | const mesh::indices_t & | VertexPoints, | |
| const mesh::indices_t & | ClockwiseEdges, | |||
| const mesh::points_t & | Points, | |||
| const uint_t | EdgeIndex | |||
| ) |
Calculates the normal for an edge loop (returns a zero-length normal for degenerate cases).
Referenced by module::opengl::painters::face_painter::paint_triangles::add_triangle(), module::opengl::painters::half_edge_painter::draw(), module::cgal::detail::merge_collinear_edges(), module::carve::detail::merge_coplanar_faces(), module::polyhedron::merge_coplanar_faces::on_create_mesh(), module::euler::kill_edge_make_loop::on_create_mesh(), module::opengl::painters::varying_data_painter::on_paint_mesh(), module::opengl::painters::edge_numbering_painter::on_paint_mesh(), module::opengl::painters::color_face_painter::on_paint_mesh(), module::mesh_attributes::calculate_normals::on_update_mesh(), and module::stl::io::mesh_writer::on_write_mesh().
| mesh::primitive * k3d::polyhedron::triangulate | ( | const mesh & | Input, | |
| const const_primitive & | Polyhedron, | |||
| mesh & | Output | |||
| ) |
Triangulates the input polyhedron, storing the resulting primitive and storing point data in Output.
Referenced by module::polyhedron::triangulate_faces::on_create_mesh(), and module::carve::boolean::boolean_functor::operator()().
| primitive * k3d::polyhedron::validate | ( | const mesh & | Mesh, | |
| pipeline_data< mesh::primitive > & | GenericPrimitive | |||
| ) |
Tests the given mesh primitive to see if it is a valid polyhedron, returning references to its member arrays, or NULL. The caller is responsible for the lifetime of the returned object.
| primitive * k3d::polyhedron::validate | ( | const mesh & | Mesh, | |
| mesh::primitive & | GenericPrimitive | |||
| ) |
Tests the given mesh primitive to see if it is a valid polyhedron, returning references to its member arrays, or NULL. The caller is responsible for the lifetime of the returned object.
| const_primitive * k3d::polyhedron::validate | ( | const mesh & | Mesh, | |
| const mesh::primitive & | GenericPrimitive | |||
| ) |
Tests the given mesh primitive to see if it is a valid polyhedron, returning references to its member arrays, or NULL. The caller is responsible for the lifetime of the returned object.
Referenced by module::selection::make_point_selection::create_mesh_selection(), module::selection::make_face_selection::create_mesh_selection(), module::selection::make_edge_selection::create_mesh_selection(), module::test::valid_meshes::execute(), module::gts::mesh_volume::execute(), module::gts::mesh_area::execute(), module::opengl::painters::detail::get_affected_points(), k3d::qtui::selection::is_edge_selected(), k3d::ngui::selection::is_edge_selected(), k3d::qtui::selection::is_face_selected(), k3d::ngui::selection::is_face_selected(), module::opengl::painters::detail::normal(), module::polyhedron::triangulate_faces::on_create_mesh(), module::polyhedron::subdivide_faces::on_create_mesh(), module::polyhedron::subdivide_edges::on_create_mesh(), module::polyhedron::selected_faces_to_polyhedron::on_create_mesh(), module::qslim::qslim::on_create_mesh(), module::bilinear_patch::poly_to_bilinear::on_create_mesh(), module::mesh_attributes::named_text_array::on_create_mesh(), module::polyhedron::move_first_edge_implementation::on_create_mesh(), module::polyhedron::merge_coplanar_faces::on_create_mesh(), module::polyhedron::merge_collinear_edges::on_create_mesh(), module::polyhedron::make_sds_implementation::on_create_mesh(), module::euler::kill_edge_make_loop::on_create_mesh(), module::euler::kill_edge_and_vertex::on_create_mesh(), module::polyhedron::flip_orientation_implementation::on_create_mesh(), module::polyhedron::extrude_faces::on_create_mesh(), module::blobby::edges_to_blobby::on_create_mesh(), module::polyhedron::dissolve_faces::on_create_mesh(), module::polyhedron::delete_components::on_create_mesh(), module::polyhedron::connect_vertices::on_create_mesh(), module::polyhedron::collapse_points::on_create_mesh(), module::polyhedron::collapse_faces::on_create_mesh(), module::polyhedron::collapse_edges::on_create_mesh(), module::subdivision_surface::catmull_clark_subdivider::on_create_mesh(), module::polyhedron::cap_holes::on_create_mesh(), module::polyhedron::bridge_faces::on_create_mesh(), module::polyhedron::bridge_edges::on_create_mesh(), module::polyhedron::bevel_points::on_create_mesh(), module::deformation::smooth_points::on_deform_mesh(), module::opengl::painters::sds_vbo< component_t >::on_execute(), module::opengl::painters::face_selection::on_execute(), module::opengl::painters::edge_selection::on_execute(), module::opengl::painters::cached_triangulation::on_execute(), module::opengl::painters::sds_cache::on_geometry_changed(), module::opengl::painters::vbo_sds_painter< point_selection, sds_point_vbo >::on_paint_mesh(), module::opengl::painters::vbo_face_painter::on_paint_mesh(), module::opengl::painters::vbo_edge_painter::on_paint_mesh(), module::opengl::painters::varying_data_painter::on_paint_mesh(), module::opengl::painters::textured_face_painter::on_paint_mesh(), module::opengl::painters::sds_point_painter::on_paint_mesh(), module::opengl::painters::sds_face_painter::on_paint_mesh(), module::opengl::painters::normal_array_painter::on_paint_mesh(), module::opengl::painters::hidden_line_painter::on_paint_mesh(), module::opengl::painters::half_edge_painter::on_paint_mesh(), module::opengl::painters::face_varying_painter::on_paint_mesh(), module::opengl::painters::face_painter::on_paint_mesh(), module::opengl::painters::face_orientation_painter::on_paint_mesh(), module::opengl::painters::face_numbering_painter::on_paint_mesh(), module::opengl::painters::face_normal_painter::on_paint_mesh(), module::opengl::painters::edge_painter::on_paint_mesh(), module::opengl::painters::edge_numbering_painter::on_paint_mesh(), module::opengl::painters::color_face_painter::on_paint_mesh(), module::opengl::painters::vbo_sds_painter< point_selection, sds_point_vbo >::on_select_mesh(), module::opengl::painters::vbo_face_painter::on_select_mesh(), module::opengl::painters::vbo_edge_painter::on_select_mesh(), module::opengl::painters::textured_face_painter::on_select_mesh(), module::opengl::painters::sds_point_painter::on_select_mesh(), module::opengl::painters::sds_face_painter::on_select_mesh(), module::opengl::painters::hidden_line_painter::on_select_mesh(), module::opengl::painters::face_painter::on_select_mesh(), module::opengl::painters::color_face_painter::on_select_mesh(), module::polyhedron::sds_hole::on_update_mesh(), module::polyhedron::sds_crease::on_update_mesh(), module::polyhedron::sds_corner::on_update_mesh(), module::subdivision_surface::catmull_clark_subdivider::on_update_mesh(), module::mesh_attributes::calculate_normals::on_update_mesh(), module::cgal::boolean::on_update_mesh_topology(), module::selection::select_n_sided::on_update_selection(), module::selection::select_face_by_number::on_update_selection(), module::selection::select_edge_rings::on_update_selection(), module::selection::select_edge_loops::on_update_selection(), module::selection::select_edge_by_number::on_update_selection(), module::selection::select_degenerate_faces::on_update_selection(), module::selection::select_connected_components::on_update_selection(), module::selection::select_companion::on_update_selection(), module::selection::select_clockwise::on_update_selection(), module::selection::select_boundary_edges::on_update_selection(), module::selection::grow_selection::on_update_selection(), module::selection::face_to_point_selections::on_update_selection(), module::stl::io::mesh_writer::on_write_mesh(), module::ply::io::mesh_writer::on_write_mesh(), module::ogre::io::mesh_writer::on_write_mesh(), module::obj::io::mesh_writer::on_write_mesh(), k3d::qtui::selection::detail::select_edges::operator()(), k3d::ngui::selection::detail::select_edges::operator()(), module::carve::boolean::boolean_functor::operator()(), module::renderman::painters::subdivision_surface_painter::paint_mesh(), module::renderman::painters::polyhedron_painter::paint_mesh(), k3d::ngui::viewport::control::pick_edge(), k3d::ngui::viewport::control::pick_point(), module::indigo::render_engine::render_mesh(), module::yafray::render_engine::render_mesh_instance(), module::luxrender::render_engine::render_mesh_instance(), module::opengl::painters::detail::traverse_polyhedra(), k3d::python::polyhedron::validate(), and k3d::python::polyhedron::validate_const().
1.6.3