25make(
const std::string &name) {
26 return get_root()->append(name);
40make(
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));
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");
139get_tangent_name(
const std::string &name) {
140 return get_tangent()->append(name);
152 if (_binormal ==
nullptr) {
153 _binormal = InternalName::make(
"binormal");
164get_binormal_name(
const std::string &name) {
165 return get_binormal()->append(name);
175 if (_texcoord ==
nullptr) {
176 _texcoord = InternalName::make(
"texcoord");
188get_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;
251get_transform_blend() {
252 if (_transform_blend ==
nullptr) {
253 _transform_blend = InternalName::make(
"transform_blend");
255 return _transform_blend;
268get_transform_weight() {
269 if (_transform_weight ==
nullptr) {
270 _transform_weight = InternalName::make(
"transform_weight");
272 return _transform_weight;
284get_transform_index() {
285 if (_transform_index ==
nullptr) {
286 _transform_index = InternalName::make(
"transform_index");
288 return _transform_index;
301get_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");
373operator << (std::ostream &out,
const InternalName &tcn) {
382INLINE CPT_InternalName::
391INLINE CPT_InternalName::
400INLINE CPT_InternalName::
409INLINE CPT_InternalName::
410CPT_InternalName(
const std::string &name) :
419INLINE CPT_InternalName::
420CPT_InternalName(
const char (&literal)[N]) :
428INLINE CPT_InternalName::
437INLINE CPT_InternalName::
448 this->reassign(std::move(from));
457 this->reassign(std::move(from));
465operator = (
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...
A ConstPointerTo is similar to a PointerTo, except it keeps a const pointer to the thing.
Encodes a string name in a hash table, mapping it to a pointer.
get_basename
Return the name represented by just this particular InternalName object, ignoring its parents names.
get_parent
Return the parent of this InternalName.
Similar to MutexHolder, but for a light mutex.
This file defines the classes PointerTo and ConstPointerTo (and their abbreviations,...