25 make(
const std::string &name) {
    26   return get_root()->append(name);
    40 make(
const char (&literal)[N]) {
    42   LiteralTable::const_iterator it = _literal_table.find(literal);
    44   if (it == _literal_table.end()) {
    46     _literal_table.insert(LiteralTable::value_type(literal, name));
    66 INLINE 
const std::string &InternalName::
    67 get_basename()
 const {
    78   if (_root == 
nullptr) {
    89   if (_error == 
nullptr) {
    90     _error = InternalName::make(
"error");
   101   if (_vertex == 
nullptr) {
   102     _vertex = InternalName::make(
"vertex");
   113   if (_normal == 
nullptr) {
   114     _normal = InternalName::make(
"normal");
   127   if (_tangent == 
nullptr) {
   128     _tangent = InternalName::make(
"tangent");
   139 get_tangent_name(
const std::string &name) {
   140   return get_tangent()->append(name);
   152   if (_binormal == 
nullptr) {
   153     _binormal = InternalName::make(
"binormal");
   164 get_binormal_name(
const std::string &name) {
   165   return get_binormal()->append(name);
   175   if (_texcoord == 
nullptr) {
   176     _texcoord = InternalName::make(
"texcoord");
   188 get_texcoord_name(
const std::string &name) {
   189   return get_texcoord()->append(name);
   198   if (_color == 
nullptr) {
   199     _color = InternalName::make(
"color");
   211   if (_rotate == 
nullptr) {
   212     _rotate = InternalName::make(
"rotate");
   224   if (_size == 
nullptr) {
   225     _size = InternalName::make(
"size");
   238   if (_aspect_ratio == 
nullptr) {
   239     _aspect_ratio = InternalName::make(
"aspect_ratio");
   241   return _aspect_ratio;
   251 get_transform_blend() {
   252   if (_transform_blend == 
nullptr) {
   253     _transform_blend = InternalName::make(
"transform_blend");
   255   return _transform_blend;
   268 get_transform_weight() {
   269   if (_transform_weight == 
nullptr) {
   270     _transform_weight = InternalName::make(
"transform_weight");
   272   return _transform_weight;
   284 get_transform_index() {
   285   if (_transform_index == 
nullptr) {
   286     _transform_index = InternalName::make(
"transform_index");
   288   return _transform_index;
   301 get_morph(
InternalName *column, 
const std::string &slider) {
   305   return column->append(
"morph")->append(slider);
   315   if (_index == 
nullptr) {
   316     _index = InternalName::make(
"index");
   327   if (_world == 
nullptr) {
   328     _world = InternalName::make(
"world");
   339   if (_camera == 
nullptr) {
   340     _camera = InternalName::make(
"camera");
   351   if (_model == 
nullptr) {
   352     _model = InternalName::make(
"model");
   363   if (_view == 
nullptr) {
   364     _view = InternalName::make(
"view");
   372 INLINE std::ostream &
   373 operator << (std::ostream &out, 
const InternalName &tcn) {
   382 INLINE CPT_InternalName::
   391 INLINE CPT_InternalName::
   400 INLINE CPT_InternalName::
   409 INLINE CPT_InternalName::
   410 CPT_InternalName(
const std::string &name) :
   419 INLINE CPT_InternalName::
   420 CPT_InternalName(
const char (&literal)[N]) :
   428 INLINE CPT_InternalName::
   437 INLINE CPT_InternalName::
   448   this->reassign(std::move(from));
   457   this->reassign(std::move(from));
   465 operator = (
const To *ptr) {
   466   this->reassign((To *)ptr);
 This is a const pointer to an InternalName, and should be used in lieu of a CPT(InternalName) in func...
PT(InternalName) InternalName
The public interface for constructing an InternalName pointer.
get_parent
Return the parent of this InternalName.
Similar to MutexHolder, but for a light mutex.
Encodes a string name in a hash table, mapping it to a pointer.
A ConstPointerTo is similar to a PointerTo, except it keeps a const pointer to the thing.
This file defines the classes PointerTo and ConstPointerTo (and their abbreviations,...