Browse Source

Add `duplicateSurface()` method to `SurfaceManager`

master
Krisjanis Rijnieks 9 years ago
parent
commit
b5d0fbfc03
  1. 15
      src/Surfaces/SurfaceManager.cpp
  2. 2
      src/Surfaces/SurfaceManager.h

15
src/Surfaces/SurfaceManager.cpp

@ -42,6 +42,15 @@ void SurfaceManager::removeSurface(){
_surfaces.pop_back();
}
void SurfaceManager::deleteSurface(ofx::piMapper::BaseSurface * surface){
for(int i = 0; i < _surfaces.size(); ++i){
if(_surfaces[i] == surface){
_surfaces.erase(i);
break;
}
}
}
void SurfaceManager::clear(){
while(_surfaces.size()){
delete _surfaces.back();
@ -157,6 +166,12 @@ BaseSurface * SurfaceManager::getSelectedSurface(){
return selectedSurface;
}
BaseSurface * SurfaceManager::duplicateSurface(BaseSurface * surface){
BaseSurface * duplicate = surface->clone();
addSurface(duplicate);
return duplicate;
}
// TODO: select vertex should be implemented ad BaseSurface level
void SurfaceManager::selectNextVertex(){
if(selectedSurface == 0){

2
src/Surfaces/SurfaceManager.h

@ -29,6 +29,7 @@ class SurfaceManager {
void addSurface(BaseSurface * surface);
void removeSelectedSurface();
void removeSurface();
void deleteSurface(BaseSurface * surface);
void deselectSurface();
void saveXmlSettings(string fileName);
void setMediaServer(MediaServer * newMediaServer);
@ -42,6 +43,7 @@ class SurfaceManager {
BaseSurface * selectNextSurface();
BaseSurface * selectPrevSurface();
BaseSurface * getSelectedSurface();
BaseSurface * duplicateSurface(BaseSurface * surface);
// These should trigger an event for the GUI layer to catch
void selectNextVertex();

Loading…
Cancel
Save