Code Monkey home page Code Monkey logo

ofxmotioner's Introduction

ofxMotioner

An addon to use MOTIONER which is open source intertial motion capture system easily in openFrameworks.

setup

/// setup ofxMotioner and setup OSC incoming port(argument0)
/// default incoming port is 10000(same as MOTIONER application)
ofxMotioner::setup(/*10000*/);

update

ofxMotioner::update();

debug drawing

draw all skeletons

ofxMotioner::debugDraw();

callback event

class ofApp : public ofBaseApp {
public:
    void setup();
    void update();
    void draw();
    
    // this method is called the same number of all skeletons
    void onDrawSkeleton(ofxMotioner::EventArgs &e);
    
    ofEasyCam mCam;
};

//----------------------------------------------------------------------------------------
void ofApp::setup()
{	    
    ofxMotioner::setup();   
    // add callback event listener
    ofAddListener(ofxMotioner::drawSkeletonEvent, this, &ofApp::onDrawSkeleton);
}

//----------------------------------------------------------------------------------------
void ofApp::update()
{
    ofxMotioner::update();
}

//----------------------------------------------------------------------------------------
void ofApp::draw()
{
    mCam.begin();
    ofxMotioner::draw(); // notified ofxMotioner::drawSkeletonEvent
    mCam.end();
}

//----------------------------------------------------------------------------------------
void ofApp::onDrawSkeleton(ofxMotioner::EventArgs &e)
{
	// do some drawing staffs
}

ofxMotioner::Skeleton

// this method is called the same number of all skeletons
void ofApp::onDrawSkeleton(ofxMotioner::EventArgs &e)
{
	// one skeleton
	ofxMotioner::SkeletonPtr skeleton = e.skeleton;
	
	// name
	skeleton->getName();
	
	// get a joint Node
	skeleton->getJoint(ofxMotioner::JOINT_HEAD);
}

ofxMotioner::Node

ofxMotioner::Node inherit from ofNode

ofxMotioner::NodeVec is typedef of std::vector<ofxMotioner::Node>

// this method is called the same number of all skeletons
void ofApp::onDrawSkeleton(ofxMotioner::EventArgs &e)
{
	ofxMotioner::NodeVec &joints = skeleton->getJoints();
	
	for (int i=0; i<joints.size(); i++) {
    
    	ofxMotioner::Node &n = joints.at(i);
    	
	    // draw node
        n.draw();
    	
    	if (!n.getParent()) continue;
    	
	    // draw line
        ofSetColor(ofColor::green);
    	ofLine(n.getGlobalPosition(), n.getParent()->getGlobalPosition());
	}
}

ofxmotioner's People

Contributors

yoshitoonishi avatar

Stargazers

Krisjanis Rijnieks avatar David Haylock avatar  avatar Grayson avatar banwenxiaoyu avatar

Watchers

 avatar James Cloos avatar

Forkers

xia-lin

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.