Panda3D
|
This is a specialization of EggNameUniquifier to generate unique names for EggGroup nodes. More...
#include "eggGroupUniquifier.h"
Public Member Functions | |
EggGroupUniquifier (bool filter_names=true) | |
If filter_names is true, then the group names will be coerced into a fairly safe, standard convention that uses no characters other than a-z, A-Z, 0-9, and underscore. | |
virtual string | filter_name (EggNode *node) |
Returns the name of the given node, or at least the name it should be. | |
virtual TypeHandle | force_init_type () |
virtual string | generate_name (EggNode *node, const string &category, int index) |
Generates a new name for the given node when its existing name clashes with some other node. | |
virtual string | get_category (EggNode *node) |
Returns the category name into which the given node should be collected, or the empty string if the node's name should be left alone. | |
virtual TypeHandle | get_type () const |
Static Public Member Functions | |
static TypeHandle | get_class_type () |
static void | init_type () |
This function is declared non-inline to work around a compiler bug in g++ 2.96. |
This is a specialization of EggNameUniquifier to generate unique names for EggGroup nodes.
It's not called automatically; you must invoke it yourself if you want it.
Definition at line 29 of file eggGroupUniquifier.h.
EggGroupUniquifier::EggGroupUniquifier | ( | bool | filter_names = true | ) |
If filter_names is true, then the group names will be coerced into a fairly safe, standard convention that uses no characters other than a-z, A-Z, 0-9, and underscore.
If filter_names is false, the group names will be left unchanged.
Definition at line 35 of file eggGroupUniquifier.cxx.
string EggGroupUniquifier::filter_name | ( | EggNode * | node | ) | [virtual] |
Returns the name of the given node, or at least the name it should be.
This provides a hook to adjust the name before attempting to uniquify it, if desired, for instance to remove invalid characters.
Reimplemented from EggNameUniquifier.
Definition at line 65 of file eggGroupUniquifier.cxx.
string EggGroupUniquifier::generate_name | ( | EggNode * | node, |
const string & | category, | ||
int | index | ||
) | [virtual] |
Generates a new name for the given node when its existing name clashes with some other node.
This function will be called repeatedly, if necessary, until it returns a name that actually is unique.
The category is the string returned by get_category(), and index is a uniquely-generated number that may be useful for synthesizing the name.
Reimplemented from EggNameUniquifier.
Definition at line 111 of file eggGroupUniquifier.cxx.
string EggGroupUniquifier::get_category | ( | EggNode * | node | ) | [virtual] |
Returns the category name into which the given node should be collected, or the empty string if the node's name should be left alone.
Implements EggNameUniquifier.
Definition at line 48 of file eggGroupUniquifier.cxx.
References Namable::has_name(), and TypedObject::is_of_type().
static void EggGroupUniquifier::init_type | ( | ) | [inline, static] |
This function is declared non-inline to work around a compiler bug in g++ 2.96.
Making it inline seems to cause problems in the optimizer.
Reimplemented from EggNameUniquifier.
Definition at line 45 of file eggGroupUniquifier.h.
References EggNameUniquifier::init_type().