obj_t::obj_t( const char * objname ) { // long name fullpath = realname( objname ); // model handle const char * shortname = strip_path_and_extension( objname ); name = copy_string( shortname ); // memory map file mmfile_t mm( fullpath ); index = 0; size = mm.size; data = mm.data; while ( index < size ) { strip_white_space(); switch( data[i] ) { case 'm': if ( check_name( "mtllib" ) ) consume_line(); break; case 'u': if ( check_name( "usemtl" ) ) consume_line(); break; case 'g': consume_line(); break; case '#': strip_white_space(); break; case 'v': if ( check_name( "vn" ) ) add_normal(); else if ( check_name( "vt" ) ) add_texcoord(); else if ( data[index+1] == ' ' ) add_vertex(); else core.warn( "obj_t: straggling v in objfile: %s", name ); break; case 'f': if ( data[index+1] == ' ' ) add_face(); break; case 's': default: ++index; break; } } }
std::string add(std::string file_name) { std::shared_ptr<type> texture = std::make_shared<type>(file_name); std::string name = strip_path_and_extension(file_name); stringTextureMap[name] = (texture); return name; }