summaryrefslogtreecommitdiff
path: root/gui/src
diff options
context:
space:
mode:
Diffstat (limited to 'gui/src')
-rw-r--r--gui/src/chainImage.cpp81
-rw-r--r--gui/src/chainImage.h1
2 files changed, 48 insertions, 34 deletions
diff --git a/gui/src/chainImage.cpp b/gui/src/chainImage.cpp
index 915071a..02f3b32 100644
--- a/gui/src/chainImage.cpp
+++ b/gui/src/chainImage.cpp
@@ -100,6 +100,7 @@ void chainImageSet::drawGui(){
float thumby=ii->thumbnail.getHeight()/2;
float thumbscale=ii->thumbnail.getWidth()/ii->getWidth();
+
//why do I have to set this every time??
ii->thumbnail.setAnchorPercent(0.5,0.5);
@@ -110,7 +111,7 @@ void chainImageSet::drawGui(){
ii->thumbnail.getHeight()
);
- if (ii==selected) ofSetColor(255,255,0);
+ if (ii==selected) ofSetColor(255,0,0);
else ofSetColor(255,255,255);
ofDrawLine(t_xoffs+borderwidth,borderwidth,
@@ -141,40 +142,49 @@ void chainImageSet::drawGui(){
);
- //printf("Sub image: centre at %f,%f \n",ii->link->thumbnail.getAnchorPoint().x,ii->link->thumbnail.getAnchorPoint().y);
-
- ii->link->thumbnail.setAnchorPercent(0.5,0.5);
-
- float thescale=ii->linkScale;
- if (ii==selected){
- thescale*=(1.0f+dragScale);
- }
-
- ii->link->thumbnail.draw(
- subpictx,
- subpicty,
- ii->link->thumbnail.getWidth()*thescale,
- ii->link->thumbnail.getHeight()*thescale
- );
-
- ofPoint p1=ofPoint(
- subpictx-(ii->link->thumbnail.getWidth()*thescale*0.5),
- subpicty-(ii->link->thumbnail.getHeight()*thescale*0.5));
- ofPoint p2=ofPoint(
- subpictx+(ii->link->thumbnail.getWidth()*thescale*0.5),
- subpicty-(ii->link->thumbnail.getHeight()*thescale*0.5));
- ofPoint p3=ofPoint(
- subpictx+(ii->link->thumbnail.getWidth()*thescale*0.5),
- subpicty+(ii->link->thumbnail.getHeight()*thescale*0.5));
- ofPoint p4=ofPoint(
- subpictx-(ii->link->thumbnail.getWidth()*thescale*0.5),
- subpicty+(ii->link->thumbnail.getHeight()*thescale*0.5));
-
- ofDrawLine(p1,p2);
- ofDrawLine(p2,p3);
- ofDrawLine(p3,p4);
- ofDrawLine(p4,p1);
+ glPushMatrix();
+ glTranslatef(subpictx,subpicty,0);
+
+ float r=ii->linkRot;
+ if (ii==selected) r+=dragRotate;
+ glRotatef(r,0,0,1);
+
+ //printf("Sub image: centre at %f,%f \n",ii->link->thumbnail.getAnchorPoint().x,ii->link->thumbnail.getAnchorPoint().y);
+
+ ii->link->thumbnail.setAnchorPercent(0.5,0.5);
+
+ float thescale=ii->linkScale;
+ if (ii==selected){
+ thescale*=(1.0f+dragScale);
+ }
+
+ ii->link->thumbnail.draw(
+ 0,
+ 0,
+ ii->link->thumbnail.getWidth()*thescale,
+ ii->link->thumbnail.getHeight()*thescale
+ );
+
+ ofPoint p1=ofPoint(
+ -(ii->link->thumbnail.getWidth()*thescale*0.5),
+ -(ii->link->thumbnail.getHeight()*thescale*0.5));
+ ofPoint p2=ofPoint(
+ (ii->link->thumbnail.getWidth()*thescale*0.5),
+ -(ii->link->thumbnail.getHeight()*thescale*0.5));
+ ofPoint p3=ofPoint(
+ (ii->link->thumbnail.getWidth()*thescale*0.5),
+ (ii->link->thumbnail.getHeight()*thescale*0.5));
+ ofPoint p4=ofPoint(
+ -(ii->link->thumbnail.getWidth()*thescale*0.5),
+ (ii->link->thumbnail.getHeight()*thescale*0.5));
+
+ ofDrawLine(p1,p2);
+ ofDrawLine(p2,p3);
+ ofDrawLine(p3,p4);
+ ofDrawLine(p4,p1);
+
+ glPopMatrix();
}
@@ -269,6 +279,7 @@ void chainImageSet::mouseDragged(int x, int y, int button){
break;
case OF_MOUSE_BUTTON_2:
//alt-click
+ dragRotate=((x-clickPoint.x)/(selected->thumbnail.getWidth() ))*180.0f;
break;
case OF_MOUSE_BUTTON_3:
//control-click
@@ -288,6 +299,8 @@ void chainImageSet::mouseReleased(int x, int y, int button){
dragPoint=ofPoint(0,0);
selected->linkScale*=(1.0f+dragScale);
dragScale=0.0f;
+ selected->linkRot+=dragRotate;
+ dragRotate=0.0f;
}
diff --git a/gui/src/chainImage.h b/gui/src/chainImage.h
index 3db4cb2..f5d89f2 100644
--- a/gui/src/chainImage.h
+++ b/gui/src/chainImage.h
@@ -61,4 +61,5 @@ class chainImageSet{
ofPoint clickPoint;
ofPoint dragPoint;
float dragScale;
+ float dragRotate;
}; \ No newline at end of file