3 #include "../RTWrapper.h" 
   28             for (
auto it : this->objectMap.map)
 
   53             this->stringMap.Set(
id, s);
 
   58             return this->stringMap.Get(ids, defaultValue, found);
 
   64             *result = this->
GetString(ids, defaultValue, &found);
 
   68         template<
typename T = Object>
 
   72             Object* current = this->objectMap.Get({ 
id }, 
nullptr);
 
   79                 this->objectMap.Set(
id, 
object);
 
   84                 this->objectMap.Remove(
id);
 
   88         template<
typename T = Object>
 
   89         inline T* 
GetObject(
const std::vector<std::string>& ids, T* defaultValue = 
nullptr, 
bool* found = 
nullptr)
 const 
   91             return reinterpret_cast<T*
>(this->objectMap.Get(ids, 
reinterpret_cast<Object*
>(defaultValue), found));
 
   94         template<
typename T = Object>
 
   95         inline bool GetObject(
const std::vector<std::string>& ids, T** result, T* defaultValue = 
nullptr)
 
   98             *result = this->GetObject<T>(ids, defaultValue, &found);
 
  104             this->int1Map.Set(
id, x);
 
  107         inline int32_t 
Get1i(
const std::vector<std::string>& ids, int32_t defaultValue = 0, 
bool* found = 
nullptr)
 const 
  109             return this->int1Map.Get(ids, defaultValue, found);
 
  112         inline bool Get1i(
const std::vector<std::string>& ids, int32_t* result, int32_t defaultValue = 0)
 
  115             *result = this->
Get1i(ids, defaultValue, &found);
 
  121             this->float1Map.Set(
id, x);
 
  124         inline float Get1f(
const std::vector<std::string>& ids, 
float defaultValue = 0.0f, 
bool* found = 
nullptr)
 const 
  126             return this->float1Map.Get(ids, defaultValue, found);
 
  129         inline bool Get1f(
const std::vector<std::string>& ids, 
float* result, 
float defaultValue = 0.0f)
 
  132             *result = this->
Get1f(ids, defaultValue, &found);
 
  138           this->int2Map.Set(
id, VisRTX::Vec2i(x, y));
 
  141         inline VisRTX::Vec2i 
Get2i(
const std::vector<std::string>& ids, 
const VisRTX::Vec2i& defaultValue = VisRTX::Vec2i(), 
bool* found = 
nullptr)
 const 
  143           return this->int2Map.Get(ids, defaultValue, found);
 
  146         inline bool Get2i(
const std::vector<std::string>& ids, VisRTX::Vec2i* result, 
const VisRTX::Vec2i& defaultValue = VisRTX::Vec2i())
 
  149           *result = this->
Get2i(ids, defaultValue, &found);
 
  155             this->float2Map.Set(
id, VisRTX::Vec2f(x, y));
 
  158         inline VisRTX::Vec2f 
Get2f(
const std::vector<std::string>& ids, 
const VisRTX::Vec2f& defaultValue = VisRTX::Vec2f(), 
bool* found = 
nullptr)
 const 
  160             return this->float2Map.Get(ids, defaultValue, found);
 
  163         inline bool Get2f(
const std::vector<std::string>& ids, VisRTX::Vec2f* result, 
const VisRTX::Vec2f& defaultValue = VisRTX::Vec2f())
 
  166             *result = this->
Get2f(ids, defaultValue, &found);
 
  172             this->int3Map.Set(
id, VisRTX::Vec3i(x, y, z));
 
  175         inline VisRTX::Vec3i 
Get3i(
const std::vector<std::string>& ids, 
const VisRTX::Vec3i& defaultValue = VisRTX::Vec3i(), 
bool* found = 
nullptr)
 const 
  177             return this->int3Map.Get(ids, defaultValue, found);
 
  180         inline bool Get3i(
const std::vector<std::string>& ids, VisRTX::Vec3i* result, 
const VisRTX::Vec3i& defaultValue = VisRTX::Vec3i())
 
  183             *result = this->
Get3i(ids, defaultValue, &found);
 
  189             this->float3Map.Set(
id, VisRTX::Vec3f(x, y, z));
 
  192         inline VisRTX::Vec3f 
Get3f(
const std::vector<std::string>& ids, 
const VisRTX::Vec3f& defaultValue = VisRTX::Vec3f(), 
bool* found = 
nullptr)
 const 
  194             return this->float3Map.Get(ids, defaultValue, found);
 
  197         inline bool Get3f(
const std::vector<std::string>& ids, VisRTX::Vec3f* result, 
const VisRTX::Vec3f& defaultValue = VisRTX::Vec3f())
 
  200             *result = this->
Get3f(ids, defaultValue, &found);
 
  206             this->float4Map.Set(
id, VisRTX::Vec4f(x, y, z, w));
 
  209         inline VisRTX::Vec4f 
Get4f(
const std::vector<std::string>& ids, 
const VisRTX::Vec4f& defaultValue = VisRTX::Vec4f(), 
bool* found = 
nullptr)
 const 
  211             return this->float4Map.Get(ids, defaultValue, found);
 
  214         inline bool Get4f(
const std::vector<std::string>& ids, VisRTX::Vec4f* result, 
const VisRTX::Vec4f& defaultValue = VisRTX::Vec4f())
 
  217             *result = this->
Get4f(ids, defaultValue, &found);
 
  223             this->stringMap.Remove(
id);
 
  224             this->objectMap.Remove(
id);
 
  225             this->int1Map.Remove(
id);
 
  226             this->float1Map.Remove(
id);
 
  227             this->float2Map.Remove(
id);
 
  228             this->int2Map.Remove(
id);
 
  229             this->int3Map.Remove(
id);
 
  230             this->float3Map.Remove(
id);
 
  231             this->float4Map.Remove(
id);
 
  237             for (
auto it : this->stringMap.map)
 
  238                 std::cout << 
"String: \"" << it.first << 
"\" -> \"" << it.second << 
"\"" << std::endl;
 
  240             for (
auto it : this->objectMap.map)
 
  241                 std::cout << 
"Object/Data: \"" << it.first << 
"\"" << std::endl;
 
  243             for (
auto it : this->int1Map.map)
 
  244                 std::cout << 
"int1: \"" << it.first << 
"\" -> " << it.second << std::endl;
 
  246             for (
auto it : this->float1Map.map)
 
  247                 std::cout << 
"float1: \"" << it.first << 
"\" -> " << it.second << std::endl;
 
  249             for (
auto it : this->int2Map.map)
 
  250               std::cout << 
"int2: \"" << it.first << 
"\" -> (" << it.second.x << 
", " << it.second.y << 
")" << std::endl;
 
  252             for (
auto it : this->float2Map.map)
 
  253                 std::cout << 
"float2: \"" << it.first << 
"\" -> (" << it.second.x << 
", " << it.second.y << 
")" << std::endl;
 
  255             for (
auto it : this->int3Map.map)
 
  256                 std::cout << 
"int3: \"" << it.first << 
"\" -> (" << it.second.x << 
", " << it.second.y << 
", " << it.second.z << 
")" << std::endl;
 
  258             for (
auto it : this->float3Map.map)
 
  259                 std::cout << 
"float3: \"" << it.first << 
"\" -> (" << it.second.x << 
", " << it.second.y << 
", " << it.second.z << 
")" << std::endl;
 
  261             for (
auto it : this->float4Map.map)
 
  262                 std::cout << 
"float4: \"" << it.first << 
"\" -> (" << it.second.x << 
", " << it.second.y << 
", " << it.second.z << 
", " << it.second.w << 
")" << std::endl;
 
  267             std::set<std::string> result;
 
  268             for (
auto it : this->stringMap.map)
 
  269                 result.insert(
"string " + it.first);
 
  271             for (
auto it : this->objectMap.map)
 
  272                 result.insert(
"object " + it.first);
 
  274             for (
auto it : this->int1Map.map)
 
  275                 result.insert(
"int1 " + it.first);
 
  277             for (
auto it : this->float1Map.map)
 
  278                 result.insert(
"float1 " + it.first);
 
  280             for (
auto it : this->int2Map.map)
 
  281               result.insert(
"int2 " + it.first);
 
  283             for (
auto it : this->float2Map.map)
 
  284                 result.insert(
"float2 " + it.first);
 
  286             for (
auto it : this->int3Map.map)
 
  287                 result.insert(
"int3 " + it.first);
 
  289             for (
auto it : this->float3Map.map)
 
  290                 result.insert(
"float3 " + it.first);
 
  292             for (
auto it : this->float4Map.map)
 
  293                 result.insert(
"float4 " + it.first);
 
  304                 this->map[id] = 
value;
 
  307             inline T Get(
const std::vector<std::string>& ids, 
const T& defaultValueValue, 
bool* found = 
nullptr)
 const 
  311                     auto it = this->map.find(
id);
 
  312                     if (it != this->map.end())
 
  322                 return defaultValueValue;
 
  327                 auto it = this->map.find(
id);
 
  328                 if (it != this->map.end())
 
  333             std::map<std::string, T> map;
 
  337         ParameterMap<std::string> stringMap;
 
  338         ParameterMap<Object*> objectMap;
 
  340         ParameterMap<int32_t> int1Map;
 
  341         ParameterMap<float> float1Map;
 
  342         ParameterMap<VisRTX::Vec2f> float2Map;
 
  343         ParameterMap<VisRTX::Vec2i> int2Map;
 
  344         ParameterMap<VisRTX::Vec3i> int3Map;
 
  345         ParameterMap<VisRTX::Vec3f> float3Map;
 
  346         ParameterMap<VisRTX::Vec4f> float4Map;