diff --git a/src/Gui/Widgets/TextureConsumersWidget.cpp b/src/Gui/Widgets/TextureConsumersWidget.cpp new file mode 100644 index 0000000..158f99b --- /dev/null +++ b/src/Gui/Widgets/TextureConsumersWidget.cpp @@ -0,0 +1,49 @@ +#include "TextureConsumersWidget.h" + +namespace ofx { +namespace piMapper { + +TextureConsumersWidget::TextureConsumersWidget(){ + _sm = 0; +} + +void TextureConsumersWidget::draw(){ + if(_sm == 0){ + return; + } + + if(_sm->getSelectedSurface() == 0){ + return; + } + + ofPushStyle(); + ofSetLineWidth(2); + ofSetColor(0, 255, 255, 150); + for(unsigned int i = 0; i < _consumerSurfaces.size(); ++i){ + _consumerSurfaces[i]->getTextureHitArea().draw(); + } + ofPopStyle(); +} + +void TextureConsumersWidget::findConsumerSurfaces(){ + if(_sm == 0){ + return; + } + + if(_sm->getSelectedSurface() == 0){ + return; + } + + BaseSource * activeSource = _sm->getSelectedSurface()->getSource(); + + _consumerSurfaces.clear(); + for(unsigned int i = 0; i < _sm->getActivePreset()->size(); ++i){ + if( activeSource == _sm->getActivePreset()->at(i)->getSource() && + _sm->getSelectedSurface() != _sm->getActivePreset()->at(i)){ + _consumerSurfaces.push_back(_sm->getActivePreset()->at(i)); + } + } +} + +} // namespace piMapper +} // namespace ofx diff --git a/src/Gui/Widgets/TextureConsumersWidget.h b/src/Gui/Widgets/TextureConsumersWidget.h new file mode 100644 index 0000000..2c2f93c --- /dev/null +++ b/src/Gui/Widgets/TextureConsumersWidget.h @@ -0,0 +1,34 @@ +#pragma once + +#include "GuiBaseWidget.h" +#include "SurfaceManager.h" +#include "BaseSurface.h" + +namespace ofx { +namespace piMapper { + +class TextureConsumersWidget : public GuiBaseWidget { + public: + TextureConsumersWidget(); + + void setup(){} + void update(){} + void draw(); + + void onMousePressed(ofMouseEventArgs & args){} + void onMouseReleased(ofMouseEventArgs & args){} + void onMouseDragged(ofMouseEventArgs & args){} + + bool inside(float x, float y){ return false; } + + void setSurfaceManager(SurfaceManager * sm){ _sm = sm; } + void findConsumerSurfaces(); + + private: + SurfaceManager * _sm; + + vector _consumerSurfaces; +}; + +} // namespace piMapper +} // namespace ofx \ No newline at end of file