diff --git a/src/Surfaces/SurfaceManagerGui.cpp b/src/Surfaces/SurfaceManagerGui.cpp index b8caece..b22bb00 100644 --- a/src/Surfaces/SurfaceManagerGui.cpp +++ b/src/Surfaces/SurfaceManagerGui.cpp @@ -234,6 +234,8 @@ void SurfaceManagerGui::setSurfaceManager(SurfaceManager * newSurfaceManager){ ofRemoveListener(newSurfaceManager->verticesChangedEvent, this, &SurfaceManagerGui::onVerticesChanged); ofRemoveListener(newSurfaceManager->surfaceSelectedEvent, this, &SurfaceManagerGui::onSurfaceSelected); ofRemoveListener(newSurfaceManager->vertexSelectedEvent, this, &SurfaceManagerGui::onVertexSelected); + ofRemoveListener(newSurfaceManager->vertexUnselectedEvent, this, &SurfaceManagerGui::onVertexUnselected); + } surfaceManager = newSurfaceManager; @@ -242,6 +244,7 @@ void SurfaceManagerGui::setSurfaceManager(SurfaceManager * newSurfaceManager){ ofAddListener(newSurfaceManager->verticesChangedEvent, this, &SurfaceManagerGui::onVerticesChanged); ofAddListener(newSurfaceManager->surfaceSelectedEvent, this, &SurfaceManagerGui::onSurfaceSelected); ofAddListener(newSurfaceManager->vertexSelectedEvent, this, &SurfaceManagerGui::onVertexSelected); + ofAddListener(newSurfaceManager->vertexUnselectedEvent, this, &SurfaceManagerGui::onVertexUnselected); projectionEditor.setSurfaceManager(surfaceManager); sourcesEditor.setSurfaceManager(surfaceManager); @@ -373,5 +376,13 @@ void SurfaceManagerGui::onVertexSelected(int & vertexIndex){ projectionEditor.getJoints()->at(vertexIndex)->select(); } +void SurfaceManagerGui::onVertexUnselected(int & vertexIndex){ + if(projectionEditor.getJoints()->size() == 0){ + return; + } + + projectionEditor.unselectAllJoints(); +} + } // namespace piMapper } // namespace ofx \ No newline at end of file diff --git a/src/Surfaces/SurfaceManagerGui.h b/src/Surfaces/SurfaceManagerGui.h index 744428e..4dd5bae 100644 --- a/src/Surfaces/SurfaceManagerGui.h +++ b/src/Surfaces/SurfaceManagerGui.h @@ -53,6 +53,7 @@ class SurfaceManagerGui { void onVerticesChanged(vector & vertices); void onSurfaceSelected(int & surfaceIndex); void onVertexSelected(int & vertexIndex); + void onVertexUnselected(int & vertexIndex); private: SurfaceManager * surfaceManager;