From 5e7bc8a19412d00b004ab9e8b4648042ed98e06f Mon Sep 17 00:00:00 2001 From: Krisjanis Rijnieks Date: Sat, 29 Oct 2016 15:30:57 +0300 Subject: [PATCH] Add TextureEditorWidget::getTexCoord and selectTexCoord --- src/Gui/Widgets/TextureEditorWidget.cpp | 44 ++++++++++++++++++++++--- src/Gui/Widgets/TextureEditorWidget.h | 4 +++ 2 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/Gui/Widgets/TextureEditorWidget.cpp b/src/Gui/Widgets/TextureEditorWidget.cpp index 780b87c..f72d767 100644 --- a/src/Gui/Widgets/TextureEditorWidget.cpp +++ b/src/Gui/Widgets/TextureEditorWidget.cpp @@ -177,6 +177,38 @@ void TextureEditorWidget::unselectAllJoints(){ } } +void TextureEditorWidget::selectTexCoord(int i){ + if(joints.size() <= 0){ + return; + } + + if(i >= (int)joints.size()){ + ofLogError("TextureEditorWidget::selectTexCoord", + "Attempt to select non existent tex coord"); + return; + } + + unselectAllJoints(); + + if(i >= 0){ + joints[i]->select(); + } +} + +int TextureEditorWidget::getSelectedTexCoord(){ + if(joints.size() <= 0){ + return -1; + } + + for(unsigned int i = 0; i < joints.size(); ++i){ + if(joints[i]->isSelected()){ + return i; + } + } + + return -1; +} + void TextureEditorWidget::selectNextTexCoord(){ if(joints.size() <= 0){ return; @@ -190,13 +222,15 @@ void TextureEditorWidget::selectNextTexCoord(){ next = 0; } unselectAllJoints(); - joints[next]->select(); + //joints[next]->select(); + selectTexCoord(next); return; } } // If none found, select 0th - joints[0]->select(); + //joints[0]->select(); + selectTexCoord(0); } void TextureEditorWidget::selectPrevTexCoord(){ @@ -214,13 +248,15 @@ void TextureEditorWidget::selectPrevTexCoord(){ prev = i - 1; } unselectAllJoints(); - joints[prev]->select(); + //joints[prev]->select(); + selectTexCoord(prev); return; } } // Select last if none selected - joints[joints.size() - 1]->select(); + //joints[joints.size() - 1]->select(); + selectTexCoord(joints.size() - 1); } void TextureEditorWidget::moveTexCoords(ofVec2f by){ diff --git a/src/Gui/Widgets/TextureEditorWidget.h b/src/Gui/Widgets/TextureEditorWidget.h index f904410..9008719 100644 --- a/src/Gui/Widgets/TextureEditorWidget.h +++ b/src/Gui/Widgets/TextureEditorWidget.h @@ -32,8 +32,12 @@ class TextureEditorWidget : public GuiBaseWidget { void createJoints(); void clearJoints(); void unselectAllJoints(); + + void selectTexCoord(int i); + int getSelectedTexCoord(); void selectNextTexCoord(); void selectPrevTexCoord(); + void moveTexCoords(ofVec2f by); void stopDragJoints(); void moveSelection(ofVec2f by);