MCPcopy Create free account
hub / github.com/LuxCoreRender/LuxCore / DefineObj

Method DefineObj

src/luxrays/core/namedobjectvector.cpp:40–66  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38}
39
40NamedObject *NamedObjectVector::DefineObj(NamedObject *newObj) {
41 const string &name = newObj->GetName();
42
43 if (IsObjDefined(name)) {
44 NamedObject *oldObj = objs[GetIndex(name)];
45
46 // Update name/object definition
47 const u_int index = GetIndex(name);
48 objs[index] = newObj;
49
50 name2index.left.erase(name);
51 name2index.insert(Name2IndexType::value_type(name, index));
52
53 index2obj.left.erase(index);
54 index2obj.insert(Index2ObjType::value_type(index, newObj));
55
56 return oldObj;
57 } else {
58 // Add the new name/object definition
59 const u_int index = objs.size();
60 objs.push_back(newObj);
61 name2index.insert(Name2IndexType::value_type(name, index));
62 index2obj.insert(Index2ObjType::value_type(index, newObj));
63
64 return NULL;
65 }
66}
67
68bool NamedObjectVector::IsObjDefined(const std::string &name) const {
69 return (name2index.left.count(name) > 0);

Callers 5

loadMethod · 0.80
DefineSceneObjectMethod · 0.80
DefineExtMeshMethod · 0.80
DefineMaterialMethod · 0.80
DefineTextureMethod · 0.80

Calls 4

eraseMethod · 0.45
insertMethod · 0.45
sizeMethod · 0.45
push_backMethod · 0.45

Tested by

no test coverage detected