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;
}
示例#2
0
    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;
    }
示例#3
0
    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;
    }