14 #ifndef EGGCOMPOSITEPRIMITIVE_H    15 #define EGGCOMPOSITEPRIMITIVE_H    33   virtual Shading get_shading() 
const;
    35   INLINE 
size_t get_num_components() 
const;
    38   MAKE_SEQ(get_components, get_num_components, get_component);
    39   INLINE 
void set_component(
size_t i, 
const EggAttributes *attrib);
    41   MAKE_SEQ_PROPERTY(components, get_num_components, get_component, set_component);
    43   INLINE 
bool triangulate_into(
EggGroupNode *container) 
const;
    53   virtual int get_num_lead_vertices() 
const=0;
    54   virtual void prepare_add_vertex(
EggVertex *vertex, 
int i, 
int n);
    55   virtual void prepare_remove_vertex(
EggVertex *vertex, 
int i, 
int n);
    57   virtual bool do_triangulate(
EggGroupNode *container) 
const;
    59   void write_body(std::ostream &out, 
int indent_level) 
const;
    70   static void init_type() {
    71     EggPrimitive::init_type();
    73                   EggPrimitive::get_class_type());
    76     return get_class_type();
    78   virtual TypeHandle force_init_type() {init_type(); 
return get_class_type();}
 A base class for any of a number of kinds of geometry primitives: polygons, point lights,...
virtual void unify_attributes(Shading shading)
If the shading property is S_per_vertex, ensures that all vertices have a normal and a color,...
The base class for primitives such as triangle strips and triangle fans, which include several compon...
virtual void apply_first_attribute()
Sets the first vertex of the triangle (or each component) to the primitive normal and/or color,...
virtual void apply_last_attribute()
Sets the last vertex of the triangle (or each component) to the primitive normal and/or color,...
virtual bool cleanup()
Cleans up modeling errors in whatever context this makes sense.
A base class for nodes in the hierarchy that are not leaf nodes.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void register_type(TypeHandle &type_handle, const std::string &name)
This inline function is just a convenient way to call TypeRegistry::register_type(),...
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
The set of attributes that may be applied to vertices as well as polygons, such as surface normal and...
virtual void post_apply_flat_attribute()
Intended as a followup to apply_last_attribute(), this also sets an attribute on the first vertices o...
Any one-, two-, three-, or four-component vertex, possibly with attributes such as a normal.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
TypeHandle is the identifier used to differentiate C++ class types.