From 14aa1aedfe4031d2ebf1fef2f448bf515230354c Mon Sep 17 00:00:00 2001 From: Krisjanis Rijnieks Date: Sun, 7 Feb 2016 13:34:45 +0100 Subject: [PATCH] Add `selectVertex` to `SurfaceManager` --- src/Surfaces/SurfaceManager.cpp | 18 ++++++++++++++++++ src/Surfaces/SurfaceManager.h | 2 ++ 2 files changed, 20 insertions(+) diff --git a/src/Surfaces/SurfaceManager.cpp b/src/Surfaces/SurfaceManager.cpp index 14bc82c..e2bd78c 100644 --- a/src/Surfaces/SurfaceManager.cpp +++ b/src/Surfaces/SurfaceManager.cpp @@ -193,6 +193,20 @@ void SurfaceManager::selectPrevVertex(){ ofNotifyEvent(vertexSelectedEvent, _selectedVertexIndex, this); } +void SurfaceManager::selectVertex(int i){ + if(selectedSurface == 0){ + return; + } + + if(i > selectedSurface->getVertices().size() - 1){ + ofLogError("SurfaceManager::selectVertex") << "index out of bounds" << endl; + return; + } + + _selectedVertexIndex = i; + ofNotifyEvent(vertexSelectedEvent, _selectedVertexIndex, this); +} + void SurfaceManager::moveSelectionBy(ofVec2f v){ if(selectedSurface == 0){ return; @@ -226,6 +240,10 @@ int SurfaceManager::size(){ return _surfaces.size(); } +int SurfaceManager::getSelectedVertexIndex(){ + return _selectedVertexIndex; +} + void SurfaceManager::onVertexChanged(int & i){ ofNotifyEvent(vertexChangedEvent, i, this); } diff --git a/src/Surfaces/SurfaceManager.h b/src/Surfaces/SurfaceManager.h index dfbbcf2..d1e7092 100644 --- a/src/Surfaces/SurfaceManager.h +++ b/src/Surfaces/SurfaceManager.h @@ -46,10 +46,12 @@ class SurfaceManager { // These should trigger an event for the GUI layer to catch void selectNextVertex(); void selectPrevVertex(); + void selectVertex(int i); void moveSelectionBy(ofVec2f v); int size(); + int getSelectedVertexIndex(); ofEvent vertexChangedEvent; ofEvent > verticesChangedEvent;