# EggCompositePrimitive¶

class EggCompositePrimitive

Bases: EggPrimitive

The base class for primitives such as triangle strips and triangle fans, which include several component triangles, each of which might have its own color and/or normal.

Inheritance diagram

static TypeHandle get_class_type(void)
EggAttributes const *get_component(std::size_t i) const
EggAttributes *get_component(std::size_t i)

Returns the attributes for the nth component triangle.

std::size_t get_num_components(void) const

Returns the number of individual component triangles within the composite. Each one of these might have a different set of attributes.

void set_component(std::size_t i, EggAttributes const *attrib)

Changes the attributes for the nth component triangle.

PointerTo<EggCompositePrimitive> triangulate_in_place(void)

Subdivides the composite primitive into triangles and adds those triangles to the parent group node in place of the original primitive. Returns a pointer to the original primitive, which is likely about to be destructed.

If convex_also is true, both concave and convex polygons will be subdivided into triangles; otherwise, only concave polygons will be subdivided, and convex polygons will be copied unchanged into the container.

bool triangulate_into(EggGroupNode *container) const

Subdivides the composite primitive into triangles and adds those triangles to the indicated container. Does not remove the primitive from its existing parent or modify it in any way.

Returns true if the triangulation is successful, or false if there was some error (in which case the container may contain some partial triangulation).