summaryrefslogtreecommitdiff
path: root/gui/src/ofApp.cpp
diff options
context:
space:
mode:
authorTim Redfern <tim@getdrop.com>2018-02-03 11:41:22 +0000
committerTim Redfern <tim@getdrop.com>2018-02-03 11:41:22 +0000
commit4154f89b1ebff83228f51252de6b93a49fc6ed96 (patch)
treeeb19eadfaa8e3a79feb54b2c3a4995b9eec489e9 /gui/src/ofApp.cpp
parent022563c4bdc832b1177ed12ef0bac7f85912db95 (diff)
warping positioning interface working
Diffstat (limited to 'gui/src/ofApp.cpp')
-rw-r--r--gui/src/ofApp.cpp31
1 files changed, 29 insertions, 2 deletions
diff --git a/gui/src/ofApp.cpp b/gui/src/ofApp.cpp
index 3b24b43..fb179e9 100644
--- a/gui/src/ofApp.cpp
+++ b/gui/src/ofApp.cpp
@@ -412,12 +412,39 @@ void ofApp::drawOutput(ofEventArgs & args){
}
}
+ glm::vec2 src[]={
+ glm::vec2(0,0),
+ glm::vec2(ofGetWidth(),0),
+ glm::vec2(ofGetWidth(),ofGetHeight()),
+ glm::vec2(0,ofGetHeight())
+ };
+
+ glm::vec2 mp=glm::vec2(outputWindowSize.x/2,outputWindowSize.y/2);
+
+ glm::vec2 scaled_dest[]={
+ ((warpframe[0]-mp)*outputScale*outputOffsetScale)+mp,
+ ((warpframe[1]-mp)*outputScale*outputOffsetScale)+mp,
+ ((warpframe[2]-mp)*outputScale*outputOffsetScale)+mp,
+ ((warpframe[3]-mp)*outputScale*outputOffsetScale)+mp
+ };
+
+ ofMatrix4x4 scaled_warp =lineTransformer::getPerspectiveTransformMatrix(src,scaled_dest);
+ ofMatrix4x4 warp =lineTransformer::getPerspectiveTransformMatrix(src,warpframe);
+
+ vector <colourPolyline> warpedOutput;
+ vector <colourPolyline> scaledWarpedOutput;
+
+ for (auto s:laserOutput){
+ warpedOutput.push_back(lineTransformer::polyLineTransform(warp,s));
+ scaledWarpedOutput.push_back(lineTransformer::polyLineTransform(scaled_warp,s));
+ }
+
int num = 0;
if (laserOutput.size()){
- num=laser.draw(laserOutput);
+ num=laser.draw(scaledWarpedOutput);
- for (auto& shape:laserOutput){
+ for (auto& shape:warpedOutput){
shape.draw();
}
}