summaryrefslogtreecommitdiff
path: root/ofxHelios/example-squares/src/ofApp.cpp
blob: bddbc5885d2c75da6a672b7fb6538bcef957690f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
#include "ofApp.h"

int MAX_POINTS=20000;
int LASER_INTENSITY=37;


//--------------------------------------------------------------
void testApp::setup(){
	laser.set_pts(MAX_POINTS);
    laser.set_intensity(LASER_INTENSITY);
}

//--------------------------------------------------------------
void testApp::update(){
    

}

ofPolyline polyLineTransform(const ofPolyline& poly, ofMatrix4x4 xform){
    ofPolyline tempPoly;
    for (auto& p:poly){
        tempPoly.addVertex(ofVec3f(p)*xform);
    }
    return tempPoly;
}

ofPolyline makePolygon(int num,float diam){
    ofPolyline poly;
    float step=PI*2/num;
    for (int i=0;i<=num;i++){
        poly.addVertex(cos(step*i)*diam,sin(step*i)*diam);
    }
    return poly;
}

//--------------------------------------------------------------
void testApp::draw(){
	ofBackground(0);
	ofSetColor(255,255,255);

    ofMatrix4x4 m = ofMatrix4x4::newIdentityMatrix();
    m.rotateRad(ofGetElapsedTimef(),0,0,1);
    m.translate(ofGetWidth()/2,ofGetHeight()/2,0);
    ofPolyline square=polyLineTransform(makePolygon(4,200),m);

    square.draw();

    int num = laser.draw(square);

    if (num>0){
        ofSetWindowTitle(ofToString(ofGetFrameRate(), 2)+" fps laser points: "+ofToString(num));
    }
    else {
        ofSetWindowTitle("laser error ");
    }

    

}

//--------------------------------------------------------------
void testApp::keyPressed(int key){

}

//--------------------------------------------------------------
void testApp::keyReleased(int key){

}

//--------------------------------------------------------------
void testApp::mouseMoved(int x, int y ){



	/// int i = 1;
	/// while ( i<bounds.size()) {
	/// 	float angle = atan2(line[i-1].y - line[i].y, line[i-1].x - line[i].x);  
	/// 	bounds[i].set(bounds[i-1].x - cos(angle) * 20, bounds[i-1].y - sin(angle) * 20);
	/// 	i++;
	/// }

}

//--------------------------------------------------------------
void testApp::mouseDragged(int x, int y, int button){
	//line.addVertex(x, y);
}

//--------------------------------------------------------------
void testApp::mousePressed(int x, int y, int button){

	//line.clear();
	//current=-100;
}

//--------------------------------------------------------------
void testApp::mouseReleased(int x, int y, int button){

}

//--------------------------------------------------------------
void testApp::windowResized(int w, int h){

}

//--------------------------------------------------------------
void testApp::gotMessage(ofMessage msg){

}

//--------------------------------------------------------------
void testApp::dragEvent(ofDragInfo dragInfo){ 

}