Panda3D
Public Member Functions | Static Public Member Functions
EggGroupUniquifier Class Reference

This is a specialization of EggNameUniquifier to generate unique names for EggGroup nodes. More...

#include "eggGroupUniquifier.h"

Inheritance diagram for EggGroupUniquifier:
EggNameUniquifier EggObject TypedReferenceCount TypedObject ReferenceCount MemoryBase MemoryBase

List of all members.

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.

Detailed Description

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.


Constructor & Destructor Documentation

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.


Member Function Documentation

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().


The documentation for this class was generated from the following files:
 All Classes Functions Variables Enumerations