BulletTriangleMesh
-
class BulletTriangleMesh
Bases:
TypedWritableReferenceCount
Inheritance diagram
-
BulletTriangleMesh(void)
-
void add_array(PTA_LVecBase3 const &points, PTA_int const &indices, bool remove_duplicate_vertices = false)
Adds triangle information from an array of points and indices referring to these points. This is more efficient than adding triangles one at a time.
If remove_duplicate_vertices is true, it will make sure that it does not add duplicate vertices if they already exist in the triangle mesh, within the tolerance specified by
set_welding_distance()
. This comes at a significant performance cost, especially for large meshes.
-
void add_geom(Geom const *geom, bool remove_duplicate_vertices = false, TransformState const *ts = TransformState::make_identity())
Adds the geometry from the indicated Geom from the triangle mesh. This is a one-time copy operation, and future updates to the Geom will not be reflected.
If remove_duplicate_vertices is true, it will make sure that it does not add duplicate vertices if they already exist in the triangle mesh, within the tolerance specified by
set_welding_distance()
. This comes at a significant performance cost, especially for large meshes.
-
void add_triangle(LPoint3 const &p0, LPoint3 const &p1, LPoint3 const &p2, bool remove_duplicate_vertices = false)
Adds a triangle with the indicated coordinates.
If remove_duplicate_vertices is true, it will make sure that it does not add duplicate vertices if they already exist in the triangle mesh, within the tolerance specified by
set_welding_distance()
. This comes at a significant performance cost, especially for large meshes.
-
static TypeHandle get_class_type(void)
-
std::size_t get_num_triangles(void) const
Returns the number of triangles in this triangle mesh.
-
PN_stdfloat get_welding_distance(void) const
Returns the value previously set with
set_welding_distance()
, or the value of 0 if none was set.
-
virtual void output(std::ostream &out) const
-
void preallocate(int num_verts, int num_indices)
Used to reserve memory in anticipation of the given amount of vertices and indices being added to the triangle mesh. This is useful if you are about to call
add_triangle()
many times, to prevent unnecessary reallocations.
-
void set_welding_distance(PN_stdfloat distance)
Sets the square of the distance at which vertices will be merged together when adding geometry with remove_duplicate_vertices set to true.
The default is 0, meaning vertices will only be merged if they have the exact same position.
-
virtual void write(std::ostream &out, int indent_level) const
-
BulletTriangleMesh(void)