#include "opentrack-guts.h" #include "opentrack.h" extern "C" { opentrack_tracker OPENTRACK_EXPORT opentrack_make_tracker(opentrack ctx, const char* name) { QString n(name); for (int i = 0; i < ctx->meta_list.size(); i++) { auto meta = ctx->meta_list[i]; if (ctx->meta_list.at(i).path == name) { ITracker* foo = reinterpret_cast(meta.lib->Constructor()); return foo; } } return NULL; } void OPENTRACK_EXPORT opentrack_finalize_tracker(opentrack_tracker tracker) { delete tracker; } void OPENTRACK_EXPORT opentrack_tracker_start(opentrack self, opentrack_tracker tracker) { // hot damn, this is problematic! // need to pass QFrame from somewhere return tracker->StartTracker(&self->fake_frame); } int OPENTRACK_EXPORT opentrack_tracker_tick(opentrack_tracker tracker, double* headpose) { return tracker->GiveHeadPoseData(headpose); } }