EggBinMaker
-
class EggBinMaker
Bases:
EggObject
This is a handy class for collecting related nodes together. It is an abstract class; to use it you must subclass off of it. See the somewhat lengthy comment above.
Inheritance diagram
-
virtual bool collapse_group(EggGroup const *group, int bin_number)
May be overridden in derived classes to specify whether a particular group node, apparently redundant, may be safely collapsed out.
-
virtual std::string get_bin_name(int bin_number, EggNode const *child)
May be overridden in derived classes to define a name for each new bin, based on its bin number, and a sample child.
-
static TypeHandle get_class_type(void)
-
virtual PointerTo<EggBin> make_bin(int bin_number, EggNode const *child, EggGroup *collapse_from)
May be overridden in derived classes to construct a new
EggBin
object (or some derived class, if needed), and preload some initial data into as required.child is an arbitrary child of the bin, and collapse_from is the group the bin is being collapsed with, if any (implying
collapse_group()
returned true), or NULL if not.
-
int make_bins(EggGroupNode *root_group)
The main entry point to
EggBinMaker
. Walks the egg scene graph beginning at the indicated root node, and moves all binnable nodes intoEggBin
objects. Returns the number ofEggBins
created.
-
virtual void prepare_node(EggNode *node)
May be overridden in derived classes to perform some setup work as each node is encountered. This will be called once for each node in the egg hierarchy.
-
virtual bool sorts_less(int bin_number, EggNode const *a, EggNode const *b)
May be overridden in derived classes to create additional bins within a particular bin number, based on some arbitrary property of nodes. This function establishes an arbitrary but fixed ordering between nodes; if two nodes do not sort to the same position, different bins are created for each one (with the same bin number on each bin).
-
virtual bool collapse_group(EggGroup const *group, int bin_number)