Skip to content

Instantly share code, notes, and snippets.

@roxlu
roxlu / coordinate_system.cpp
Created April 6, 2012 19:55
Calculate coordinate system based on direction vector
void Tubes::computeEdgeCoordinateSystems() {
Vec3 dir;
float inv = 0.0f;
vector<Edge*>::iterator it = graph.edges.begin();
while(it != graph.edges.end()) {
Edge* e = (*it);
dir = graph.getEdgeDirection(e).normalize();
e->z_axis = dir;
if(fabsf(dir.x) > fabsf(dir.y)) {
inv = 1.0f / sqrtf(dir.x*dir.x + dir.z*dir.z);
@roxlu
roxlu / test.cpp
Created April 6, 2012 22:11
Parallel Transport Frames - from graph
// Generate spiral
int prev_vertex = gr.addVertex(Vec3(0,0,0));
int prev_node = gr.addNode(new Node(prev_vertex));
int num_edges = 30;
float angle = 0;
float radius = 2.0f;
float y = 0;
for(int i = 0; i < num_edges; ++i) {
angle += ((float)TWO_PI/(num_edges*0.25));
float x = cos(angle) * radius;
@roxlu
roxlu / number_sequences.cpp
Created April 11, 2012 13:43
Number sequences
// source: http://stackoverflow.com/questions/10105229/c-c-puzzle-to-print-values-from-1-15-15-1-with-a-single-for-loop
for (int i = 1; i < 31; i++) {
int number = (1-i/16) * i + (i/16) * (31 - i);
printf("%d ", number);
}
@roxlu
roxlu / video.sh
Created May 7, 2012 09:22
Create high quality video with ffmpeg
ffmpeg -i 07.05.09_%04d.png -r 60 -s 640x480 -vcodec libx264 -vpre hq -b 2000k movie3.mov
@roxlu
roxlu / solver.h
Created May 9, 2012 21:28
Jos Stams fluid solver
#ifndef SOLVERH
#define SOLVERH
#define IX(i,j) ((i)+(N+2)*(j))
#define SWAP(x0,x) {float * tmp=x0;x0=x;x=tmp;}
#define FOR_EACH_CELL for ( i=1 ; i<=N ; i++ ) { for ( j=1 ; j<=N ; j++ ) {
#define END_FOR }}
static void add_source ( int N, float * x, float * s, float dt )
{
int i, size=(N+2)*(N+2);
@roxlu
roxlu / testApp.cpp
Created May 21, 2012 19:37
Gradient field visualization (partial derivative)
#include "testApp.h"
testApp::testApp() {
}
void testApp::setup(){
ofBackground(22,33,44);
ofSetFrameRate(60);
grad_w = 50;
@roxlu
roxlu / testApp.cpp
Created May 22, 2012 19:49
1D linear convection
#include "testApp.h"
// generate random data for "u"
void testApp::setup(){
ofBackground(22,33,44);
float dt = 0.1;
for(int i = 0; i < N; ++i) {
u[i] = ofNoise(dt*i);
}
}
@roxlu
roxlu / testApp.cpp
Created May 23, 2012 19:07
1D convection
#include "testApp.h"
void testApp::setup(){
ofSetFrameRate(60);
ofBackground(22,33,44);
gif.setup(ofGetWidth(), ofGetHeight());
record = false;
// setup some initial data.
@roxlu
roxlu / testApp.cpp
Created May 24, 2012 07:36
Basic bare bones openGL with openFrameworks (VBO, VAO, SHADER and texture(s))
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
ofEnableNormalizedTexCoords();
ofDisableArbTex();
ofSetFrameRate(60);
ofBackground(22,33,44);
// Shader + VAO/VBO
@roxlu
roxlu / testApp.cpp
Created May 24, 2012 07:15
Basic bare bones openGL (shader,vbo,vao) with openFrameworks
#include "testApp.h"
//--------------------------------------------------------------
void testApp::setup(){
ofSetFrameRate(60);
ofBackground(22,33,44);
// create shader program
shader.setupShaderFromSource(GL_VERTEX_SHADER, VS);