1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- #pragma once
- #include "lib3mf_implicit.hpp"
- #include "OptiTrackPoint.hpp"
- #include <string>
- typedef struct {
- bool OptiTrack;
- bool EMFTrack;
- bool SteamVRTrack;
- } ExportSettings;
- typedef struct {
- double length;
- double radius;
- } OptiTrackSettings;
- typedef struct {
- double width;
- double height;
- double depth;
- } EMFTrackSettings;
- typedef struct {
- double length;
- } SteamVRTrackSettings;
- class ProjectStore {
- public:
-
- ProjectStore();
-
- ~ProjectStore();
-
- void loadMesh(std::string meshFile);
-
- bool loadProject(std::string projectFile);
-
- bool saveProject();
-
- bool saveProject(std::string projectFile);
-
- bool exportProject(std::string path, ExportSettings settings);
-
-
- void updateNormalModifier(osg::Vec3 modifier);
-
- osg::Vec3 getNormalModifier();
-
-
- std::vector<OptiTrackPoint*> getOptiTrackPoints();
-
- void addOptiTrackPoint(osg::Vec3 point, osg::Vec3 normal);
-
- void removeOptiTrackPoint();
-
- void updateOptiTrackSettings(OptiTrackSettings optiTrackSettings);
-
- OptiTrackSettings getOptiTrackSettings();
- private:
- bool projectLoaded;
- Lib3MF::PWrapper _wrapper;
- Lib3MF::PModel _project;
- std::string _projectFile;
- std::vector<OptiTrackPoint*> _optiTrackPoints;
- OptiTrackSettings _optiTrackSettings = OptiTrackSettings {OPTITRACK_DEFAULT_LENGTH, OPTITRACK_DEFAULT_RADIUS};
- EMFTrackSettings _emfTrackSettings;
- SteamVRTrackSettings _steamVrTrackSettings;
- osg::Vec3 _normalModifier = osg::Vec3(0.0f, 0.0f, 0.0f);
- void load3mfLib();
- void render3MFMesh(const std::vector<Lib3MF::sPosition> verticesBuffer, const std::vector<Lib3MF::sTriangle> triangleBuffer);
- void exportMetaData();
- };
|