jeonghopark
4/21/2015 - 3:17 PM

testRPI2

testRPI2

#pragma once

#include "ofMain.h"

class ofApp : public ofBaseApp{

public:
	void setup();
	void update();
	void draw();

	void keyPressed(int key);
	void keyReleased(int key);
	void mouseMoved(int x, int y );
	void mouseDragged(int x, int y, int button);
	void mousePressed(int x, int y, int button);
	void mouseReleased(int x, int y, int button);
	void windowResized(int w, int h);
	void dragEvent(ofDragInfo dragInfo);
	void gotMessage(ofMessage msg);

	ofEasyCam cam;

	vector<ofVec3f> startPoint;
	vector<ofVec3f> endPoint;
	
	vector<ofVec3f> movingVector;
	
	int number;
	float movingFacetor;
	
	ofBoxPrimitive box;
    
    bool fullScreen;
	
};
#include "ofApp.h"

//--------------------------------------------------------------
void ofApp::setup(){

    ofSetFrameRate(60);

    ofEnableAlphaBlending();
    ofBackground(30);

    cam.setDistance(-100);

    float _lineLength = 200;
    int _zSpace = 16;
    number = 50;

    startPoint.resize(number);
    endPoint.resize(number);

    for (int i=0; i<number; i++) {

        float halfDegree = i * 180 / (float)number;

        startPoint[i].x = 0;
        startPoint[i].y = 0;
        startPoint[i].z = -i*_zSpace + (number*_zSpace)*0.5;

        endPoint[i].x = cos(ofDegToRad(halfDegree)) * _lineLength;
        endPoint[i].y = sin(ofDegToRad(halfDegree)) * _lineLength;
        endPoint[i].z = -i*_zSpace + (number*_zSpace)*0.5;

    }

    movingVector.resize(number);
    box.set( 10 );

}

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

    for (int i=0; i<number; i++) {
        movingVector[i] = startPoint[i]-endPoint[i];
    }

    movingFacetor = movingFacetor + 1;

}

//--------------------------------------------------------------
void ofApp::draw(){

    cam.begin();

    ofRotateZ(135);
    ofRotateX(-15);

    float _repeatF = ofMap(sin(ofDegToRad(movingFacetor)), -1, 1, -1, 0);

    for (int i=0; i<number; i++) {
        ofPushMatrix();
        ofPushStyle();
        ofNoFill();
        ofSetColor(ofColor::fromHsb(0, 0, 255, 30) );
        box.setPosition(movingVector[i].x*_repeatF, movingVector[i].y*_repeatF, startPoint[i].z);
        box.draw();
        box.drawWireframe();
        ofPopStyle();
        ofPopMatrix();
    }

    for (int i=0; i<number; i++) {
        ofPushMatrix();
        ofPushStyle();

        ofSetColor(ofColor::fromHsb(0, 0, 255, 120) );

        ofLine(startPoint[i].x, startPoint[i].y, startPoint[i].z, endPoint[i].x, endPoint[i].y, endPoint[i].z);

        ofPopStyle();
        ofPopMatrix();

    }

    for (int i=0; i<number-1; i++) {

        ofPushMatrix();
        ofPushStyle();

        ofSetColor(ofColor::fromHsb(0, 0, 255, 255) );

        ofLine(endPoint[i].x, endPoint[i].y, endPoint[i].z, endPoint[i+1].x, endPoint[i+1].y, endPoint[i+1].z);

        ofLine(startPoint[i].x, startPoint[i].y, startPoint[i].z, startPoint[i+1].x, startPoint[i+1].y, startPoint[i+1].z);

        ofPopStyle();
        ofPopMatrix();

    }


    for (int i=0; i<number; i++) {

        ofPushMatrix();
        ofPushStyle();

        ofSetColor(ofColor::fromHsb(0, 0, 255, 120) );

        ofLine(endPoint[i].x, endPoint[i].y, endPoint[i].z, endPoint[i].x, 0, endPoint[i].z);

        ofPopStyle();
        ofPopMatrix();

    }


    for (int i=0; i<number-1; i++) {

        ofPushMatrix();
        ofPushStyle();

        ofSetColor(ofColor::fromHsb(0, 0, 255, 255) );

        ofLine(endPoint[i].x, 0, endPoint[i].z, endPoint[i+1].x, 0, endPoint[i+1].z);

        ofPopStyle();
        ofPopMatrix();

    }

    cam.end();

}

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

    if (key=='f') {
        fullScreen = !fullScreen;
        ofSetFullscreen(fullScreen);
    }


}

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

}

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

}

//--------------------------------------------------------------
void ofApp::mouseDragged(int x, int y, int button){

}

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

}

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

}

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

}

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

}

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

}
#include "ofMain.h"
#include "ofApp.h"

//========================================================================
int main( ){
	ofSetupOpenGL(1024,768,OF_WINDOW);			// <-------- setup the GL context

	// this kicks off the running of my app
	// can be OF_WINDOW or OF_FULLSCREEN
	// pass in width and height too:
	ofRunApp(new ofApp());

}