Added the OpenMem and OpenStream version of the OFF importer to allow generic use of the importer
This commit is contained in:
parent
c722cedeaa
commit
ac56acdd9f
|
@ -98,6 +98,15 @@ public:
|
||||||
return Open(mesh,filename,loadmask,cb);
|
return Open(mesh,filename,loadmask,cb);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int OpenMem(MESH_TYPE &mesh, const char *mem, size_t sz, int &loadmask,
|
||||||
|
CallBackPos *cb=0)
|
||||||
|
{
|
||||||
|
std::string str;
|
||||||
|
str.append(mem,sz);
|
||||||
|
std::istringstream strm(str);
|
||||||
|
return OpenStream(mesh,strm,loadmask,cb);
|
||||||
|
}
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* Standard call for reading a mesh.
|
* Standard call for reading a mesh.
|
||||||
*
|
*
|
||||||
|
@ -111,7 +120,12 @@ public:
|
||||||
std::ifstream stream(filename);
|
std::ifstream stream(filename);
|
||||||
if (stream.fail())
|
if (stream.fail())
|
||||||
return CantOpen;
|
return CantOpen;
|
||||||
|
return OpenStream(mesh,stream,loadmask,cb);
|
||||||
|
}
|
||||||
|
|
||||||
|
static int OpenStream(MESH_TYPE &mesh, std::istream &stream, int &loadmask,
|
||||||
|
CallBackPos *cb=0)
|
||||||
|
{
|
||||||
std::vector< std::string > tokens;
|
std::vector< std::string > tokens;
|
||||||
TokenizeNextLine(stream, tokens);
|
TokenizeNextLine(stream, tokens);
|
||||||
if(tokens.empty()) return InvalidFile_MissingOFF;
|
if(tokens.empty()) return InvalidFile_MissingOFF;
|
||||||
|
@ -593,7 +607,7 @@ protected:
|
||||||
* \param stream The object providing the input stream
|
* \param stream The object providing the input stream
|
||||||
* \param tokens The "tokens" in the next line
|
* \param tokens The "tokens" in the next line
|
||||||
*/
|
*/
|
||||||
inline static void TokenizeNextLine(std::ifstream &stream, std::vector< std::string > &tokens)
|
inline static void TokenizeNextLine(std::istream &stream, std::vector< std::string > &tokens)
|
||||||
{
|
{
|
||||||
std::string line;
|
std::string line;
|
||||||
do
|
do
|
||||||
|
|
Loading…
Reference in New Issue