瀏覽代碼

Show trackpoint count (Closes #17)

Johannes Kreutz 2 年之前
父節點
當前提交
4eb0ac2718

+ 1 - 0
trackpoint-app/include/EditWidget.hpp

@@ -23,6 +23,7 @@ public:
   ActiveTrackingSystem getSelectedTrackingSystem();
   void setSelection(int id);
   int getSelectedPoint();
+  void updateTrackpointCount();
 
 protected:
   virtual void showEvent(QShowEvent* event);

+ 0 - 2
trackpoint-app/include/PickHandler.hpp

@@ -13,7 +13,6 @@ public:
   PickHandler(OSGWidget* osgWidget, osg::ref_ptr<osg::Group> root);
   osg::Node* getPickerRoot();
   virtual bool handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapter& aa);
-  void setTrackingSystem(ActiveTrackingSystem activeTrackingSystem);
   void setSelection(bool addNewPoints);
   void updateRenderer();
 
@@ -24,7 +23,6 @@ private:
   osg::ref_ptr<osg::MatrixTransform> _selectionTranslateGroup;
   osg::ref_ptr<osg::MatrixTransform> _selectionRotateGroup;
   osg::ref_ptr<osg::MatrixTransform> _selectionMoveToEndGroup;
-  ActiveTrackingSystem _activeTrackingSystem = OptiTrack;
   bool _addNewPoints = true;
   bool _clickStartedOnElement = false;
   OSGWidget* _osgWidget;

+ 6 - 3
trackpoint-app/include/ProjectStore.hpp

@@ -29,8 +29,13 @@ public:
   bool saveProject(std::string projectFile);
   // Export the project
   bool exportProject(std::string path, ExportSettings settings);
-  // UNIVERSAL TRACKPOINT GETTER
+  // UNIVERSAL
+  // Get trackpoint
   TrackPoint* getTrackPointById(int id, ActiveTrackingSystem activeTrackingSystem);
+  // Count trackpoints
+  int getCount(ActiveTrackingSystem activeTrackingSystem);
+  // Remove trackpoint
+  void removeTrackPoint(int id, ActiveTrackingSystem activeTrackingSystem);
   // NORMAL MODIFIER
   // Update normal modifier
   void updateNormalModifier(osg::Vec3 modifier);
@@ -41,8 +46,6 @@ public:
   std::vector<OptiTrackPoint*> getOptiTrackPoints();
   // Add an OptiTrack point
   void addOptiTrackPoint(osg::Vec3 point, osg::Vec3 normal);
-  // Remove an OptiTrack point
-  void removeOptiTrackPoint(int id);
   // Update actual OptiTrack settings
   void updateOptiTrackSettings(OptiTrackSettings optiTrackSettings);
   // Return OptiTrack settings

+ 24 - 4
trackpoint-app/src/EditWidget.cpp

@@ -103,13 +103,33 @@ int EditWidget::getSelectedPoint() {
   return selectedPoint;
 }
 
+void EditWidget::updateTrackpointCount() {
+  ActiveTrackingSystem activeTrackingSystem = getSelectedTrackingSystem();
+  int count = MainWindow::getInstance()->getStore()->getCount(activeTrackingSystem);
+  switch(activeTrackingSystem) {
+    case OptiTrack: {
+      QString countString("TRACKPOINTS SET: ");
+      countString.append(QString::number(count));
+      ui->optiTrackCount->setText(countString);
+      break;
+    }
+    case EMFTrack: {
+      break;
+    }
+    case SteamVRTrack: {
+      break;
+    }
+    case ActionPoints: {
+      break;
+    }
+  }
+}
+
 void EditWidget::showEvent(QShowEvent* event) {
   QWidget::showEvent(event);
   resetOptiTrackSettings();
 }
 
-//void EditWidget::
-
 void EditWidget::selectTool(Tool tool) {
   switch(tool) {
     case InsertionTool: {
@@ -195,9 +215,10 @@ void EditWidget::setOptiTrackSettings(double length, double radius) {
 
 void EditWidget::deleteCurrentTrackPoint() {
   ActiveTrackingSystem activeTrackingSystem = getSelectedTrackingSystem();
+  MainWindow::getInstance()->getStore()->removeTrackPoint(selectedPoint, activeTrackingSystem);
+  selectedPoint = -1;
   switch(activeTrackingSystem) {
     case OptiTrack: {
-      MainWindow::getInstance()->getStore()->removeOptiTrackPoint(selectedPoint);
       resetOptiTrackSettings();
       break;
     }
@@ -212,7 +233,6 @@ void EditWidget::deleteCurrentTrackPoint() {
     }
   }
   resetNormalModifier();
-  selectedPoint = -1;
   invalidatePositions();
   MainWindow::getInstance()->getOsgWidget()->getPointRenderer()->render(OptiTrack);
 }

+ 9 - 8
trackpoint-app/src/PickHandler.cpp

@@ -150,11 +150,6 @@ bool PickHandler::handle(const osgGA::GUIEventAdapter& ea, osgGA::GUIActionAdapt
   return false;
 }
 
-void PickHandler::setTrackingSystem(ActiveTrackingSystem activeTrackingSystem) {
-  _activeTrackingSystem = activeTrackingSystem;
-  updateRenderer();
-}
-
 void PickHandler::setSelection(bool addNewPoints) {
   _addNewPoints = addNewPoints;
   if (addNewPoints) {
@@ -181,7 +176,7 @@ void PickHandler::rotateToNormalVector(osg::Vec3f normal) {
 
 void PickHandler::updateRenderer() {
   removeAllShapes();
-  switch(_activeTrackingSystem) {
+  switch(MainWindow::getInstance()->getEditWiget()->getSelectedTrackingSystem()) {
     case OptiTrack: {
       OptiTrackSettings settings = MainWindow::getInstance()->getStore()->getOptiTrackSettings();
       _optiTrackSteamVRLength = settings.length;
@@ -200,6 +195,9 @@ void PickHandler::updateRenderer() {
     case SteamVRTrack: {
       break;
     }
+    case ActionPoints: {
+      break;
+    }
   }
   setVisibility(_addNewPoints);
 }
@@ -213,10 +211,9 @@ void PickHandler::setVisibility(bool mode) {
 }
 
 void PickHandler::addPoint(osg::Vec3 point, osg::Vec3 normal) {
-  switch(_activeTrackingSystem) {
+  switch(MainWindow::getInstance()->getEditWiget()->getSelectedTrackingSystem()) {
     case OptiTrack: {
       MainWindow::getInstance()->getStore()->addOptiTrackPoint(point, normal);
-      _osgWidget->getPointRenderer()->render(MainWindow::getInstance()->getEditWiget()->getSelectedTrackingSystem());
       break;
     }
     case EMFTrack: {
@@ -225,7 +222,11 @@ void PickHandler::addPoint(osg::Vec3 point, osg::Vec3 normal) {
     case SteamVRTrack: {
       break;
     }
+    case ActionPoints: {
+      break;
+    }
   }
+  _osgWidget->getPointRenderer()->render(MainWindow::getInstance()->getEditWiget()->getSelectedTrackingSystem());
 }
 
 void PickHandler::invalidateTrackPointColors() {

+ 38 - 4
trackpoint-app/src/ProjectStore.cpp

@@ -132,6 +132,42 @@ TrackPoint* ProjectStore::getTrackPointById(int id, ActiveTrackingSystem activeT
   }
 }
 
+int ProjectStore::getCount(ActiveTrackingSystem activeTrackingSystem) {
+  switch(activeTrackingSystem) {
+    case OptiTrack: {
+      return _optiTrackPoints.size();
+    };
+    case EMFTrack: {
+      break;
+    };
+    case SteamVRTrack: {
+      break;
+    };
+    case ActionPoints: {
+      break;
+    };
+  }
+}
+
+void ProjectStore::removeTrackPoint(int id, ActiveTrackingSystem activeTrackingSystem) {
+  switch(activeTrackingSystem) {
+    case OptiTrack: {
+      _optiTrackPoints.erase(_optiTrackPoints.begin() + id);
+      break;
+    }
+    case EMFTrack: {
+      break;
+    }
+    case SteamVRTrack: {
+      break;
+    }
+    case ActionPoints: {
+      break;
+    }
+  }
+  MainWindow::getInstance()->getEditWiget()->updateTrackpointCount();
+}
+
 void ProjectStore::updateNormalModifier(osg::Vec3 modifier) {
   _normalModifier = modifier;
 }
@@ -147,10 +183,7 @@ std::vector<OptiTrackPoint*> ProjectStore::getOptiTrackPoints() {
 void ProjectStore::addOptiTrackPoint(osg::Vec3 point, osg::Vec3 normal) {
   OptiTrackPoint* optiTrackPoint = new OptiTrackPoint(point, normal, _normalModifier, _optiTrackSettings.length, _optiTrackSettings.radius);
   _optiTrackPoints.push_back(optiTrackPoint);
-}
-
-void ProjectStore::removeOptiTrackPoint(int id) {
-  _optiTrackPoints.erase(_optiTrackPoints.begin() + id);
+  MainWindow::getInstance()->getEditWiget()->updateTrackpointCount();
 }
 
 void ProjectStore::updateOptiTrackSettings(OptiTrackSettings optiTrackSettings) {
@@ -261,6 +294,7 @@ void ProjectStore::loadMetaData() {
   render3MFMesh();
   MainWindow::getInstance()->renderView(Edit);
   MainWindow::getInstance()->getOsgWidget()->getPointRenderer()->render(MainWindow::getInstance()->getEditWiget()->getSelectedTrackingSystem());
+  MainWindow::getInstance()->getEditWiget()->updateTrackpointCount();
 }
 
 std::vector<float> ProjectStore::osgVecToStdVec(osg::Vec3f input) {