/*********************************************************************** * Copyright 2011-2012 Computer Graphics Group RWTH Aachen University. * * All rights reserved. * * Distributed under the terms of the MIT License (see LICENSE.TXT). * **********************************************************************/ #ifndef ACGL_OPENGL_CONTROLLER_GEOMETRYDATACONTROLFILEOBJ_HH #define ACGL_OPENGL_CONTROLLER_GEOMETRYDATACONTROLFILEOBJ_HH /** * A minimal obj loader. */ #include #include #include #include namespace ACGL{ namespace OpenGL{ class GeometryDataControlFileATB; class GeometryDataControlFileMesh : public ACGL::OpenGL::GeometryDataControlFile { friend void initStaticFileTypes(void); friend class GeometryDataControlFileATB; public: GeometryDataControlFileMesh(const std::string& _filename) : GeometryDataControlFile(_filename,Base::Settings::the()->getFullGeometryPath()) {} virtual ~GeometryDataControlFileMesh(void) {} // the entry point that gets registered in registerType() static SharedGeometryDataControlFile creator(const std::string& _filename) { return SharedGeometryDataControlFile(new GeometryDataControlFileMesh(_filename)); } private: virtual bool load(SharedGeometryData& geometry) const; private: // register the file extension 'obj' for this loader static ACGL::int_t registerType(void) { sTypeID = GeometryDataControlFileFactory::the()->registerType("obj", &GeometryDataControlFileMesh::creator); sTypeID = GeometryDataControlFileFactory::the()->registerType("vap", &GeometryDataControlFileMesh::creator); return sTypeID; } }; ACGL_SMARTPOINTER_TYPEDEFS(GeometryDataControlFileMesh) } // OpenGL } // ACGL #endif // ACGL_OPENGL_CONTROLLER_GEOMETRYDATACONTROLFILEOBJ_HH