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.