void AddVariantToMap(MeshVariantMap &variantMap, GLuint vao, const int components) { if(components == 0) { variantMap["unlit"] = vao; variantMap["flat"] = vao; return; } std::vector<std::string> currNames = GenerateNameList(components); if(currNames.size() == 1) { variantMap[currNames[0]] = vao; return; } std::sort(currNames.begin(), currNames.end()); std::ostringstream theName; do { CalcName(theName, currNames); variantMap[theName.str()] = vao; } while(std::next_permutation(currNames.begin(), currNames.end())); }
std::string GenerateNameForVariant( const int components ) { if(components == 0) return "flat"; std::ostringstream theName; CalcName(theName, GenerateNameList(components)); return theName.str(); }
Type ParamMap<Type,Tag>::Find( AxFGOp& op, const AxString& name ) { MapIterType iter; iter = _map.find( name ); if ( iter == _map.end() ) { throw AxFGOpUsageEx( op, L"\"" + name + L"\"" + L" unknown, try: " + GenerateNameList() ); } return _map[ name ]; }