bool MapSerializer_stl::serialize_read( const std::string& file_name, Map* mesh) { if (!mesh) { Logger::err("MapSerializer") << "mesh is null" << std::endl; return false; } MapBuilder builder(mesh); STL_Type file_type = resolve_stl_type(file_name); switch (file_type) { case STL_ASCII: return read_stla(file_name, builder); break; case STL_BINARY: return read_stlb(file_name, builder); break; default: return false; break; } return false; }
bool STLReader:: read(const std::string& _filename, TriMeshModelPtr t) { bool result = false; STL_Type file_type = NONE; if (_filename.length() >= 4) { std::string ending = _filename.substr(_filename.length() - 4, 4); BaseIO::getLowerCase(ending); if (ending == ".stl") { file_type = check_stl_type(_filename); } else if (ending == "stla") { file_type = STLA; } else if (ending == "stlb") { file_type = STLB; } } switch (file_type) { case STLA: { result = read_stla(_filename, t); break; } case STLB: { result = read_stlb(_filename, t); break; } default: { result = false; break; } } return result; }
bool STLReader::read(std::istream& _is, STL_Type stltype, TriMeshModelPtr t) { bool result = false; if (stltype == STLB) { result = read_stlb(_is, t); } else { result = read_stla(_is, t); } return result; }