2012-02-29 03:27:32 +08:00
|
|
|
#include <OSD_Path.hxx>
|
|
|
|
#include <RWStl.hxx>
|
|
|
|
#include <StlMesh_Mesh.hxx>
|
|
|
|
|
2015-03-24 01:31:10 +08:00
|
|
|
#include <gmio_core/error.h>
|
|
|
|
#include <gmio_stl/stl_io.h>
|
|
|
|
#include <gmio_support/occ_libstl.h>
|
|
|
|
|
|
|
|
#include "../commons/bench_tools.h"
|
|
|
|
|
|
|
|
static void bench_occ_RWStl_ReadFile(const char* filepath)
|
2012-02-29 03:27:32 +08:00
|
|
|
{
|
2015-03-24 01:31:10 +08:00
|
|
|
RWStl::ReadFile(OSD_Path(filepath));
|
2013-02-20 19:29:34 +08:00
|
|
|
}
|
2012-02-29 03:27:32 +08:00
|
|
|
|
2015-03-24 01:31:10 +08:00
|
|
|
static void bench_gmio_stl_read(const char* filepath)
|
2013-02-20 19:29:34 +08:00
|
|
|
{
|
2015-03-24 01:31:10 +08:00
|
|
|
// void* mbuffer = std::malloc(512 * 1024);
|
|
|
|
// gmio_buffer_t buffer = gmio_buffer(mbuffer, 512 * 1024);
|
|
|
|
char mbuffer[256 * 1024];
|
|
|
|
gmio_buffer_t buffer = gmio_buffer(&mbuffer[0], sizeof(mbuffer));
|
|
|
|
|
|
|
|
Handle_StlMesh_Mesh mesh = new StlMesh_Mesh;
|
|
|
|
gmio_stl_mesh_creator_t mesh_creator = gmio_stl_occmesh_creator(mesh);
|
|
|
|
|
2015-03-30 15:30:55 +08:00
|
|
|
int error = gmio_stl_read_file(filepath, &buffer, &mesh_creator);
|
2015-03-24 01:31:10 +08:00
|
|
|
if (error != GMIO_NO_ERROR)
|
|
|
|
printf("GeomIO error: 0x%X\n", error);
|
|
|
|
|
|
|
|
//std::free(mbuffer);
|
2013-02-20 19:29:34 +08:00
|
|
|
}
|
2012-02-29 03:27:32 +08:00
|
|
|
|
|
|
|
int main(int argc, char** argv)
|
|
|
|
{
|
2015-03-24 01:31:10 +08:00
|
|
|
if (argc > 1) {
|
|
|
|
benchmark(&bench_occ_RWStl_ReadFile,
|
|
|
|
"RWStl::ReadFile()",
|
|
|
|
argc - 1, argv + 1);
|
|
|
|
|
|
|
|
benchmark(&bench_gmio_stl_read,
|
|
|
|
"gmio_stl_read()",
|
|
|
|
argc - 1, argv + 1);
|
|
|
|
}
|
2012-02-29 03:27:32 +08:00
|
|
|
|
|
|
|
return 0;
|
|
|
|
}
|