ofxMSAPhysics* ofxMSAPhysics::setWorldMin(ofPoint worldMin) { params.worldMin = worldMin; params.doWorldEdges = true; ofPoint worldSize = params.worldMax - params.worldMin; setupBins(worldSize.x, worldSize.y, worldSize.z, 5, 5, 5); // TODO: sort this out return this; }
//--------------------------------------------------------------------------------- void particleManager::setupWorld() { setupBins(OFFSCREEN_WIDTH, OFFSCREEN_HEIGHT); //------------------------------------- make some particles particles.assign(1400, groupableParticle()); //------------------------------------- properties, like drag and pos, etc, etc. for (int j = 0; j < particles.size(); j ++) { particles[j].pos.set(ofxVec3f(ofRandom(0, OFFSCREEN_WIDTH), ofRandom(0, OFFSCREEN_HEIGHT), 0)); particles[j].vel.set(0, 0, 0); float drag = ofRandom(0.0717, 0.08); particles[j].drag = drag; particles[j].radius = 5;// + powf(ofRandom(0,1), 3) * 20; //if (j == 10) particles[j].radius = 30; // get the pos from the particle system /*if(j < NUM_PARTICLES_VBO) { vboPts[j][0] = particles[j].pos.x; vboPts[j][1] = particles[j].pos.y; vboPts[j][2] = particles[j].pos.z; vboColor[j][0] = 1.0; vboColor[j][1] = 1.0; vboColor[j][2] = 1.0; vboColor[j][3] = maxAlpha; vboPtsSize[j] = 10.0; }*/ } /* ofDisableArbTex(); shader.loadShader("sceneAssets/stars/VBOShader"); theDot.loadImage("images/spot.png"); ofEnableArbTex(); // set up the vbo glGenBuffersARB(2, &vbo[0]); // VBO for color glBindBufferARB(GL_ARRAY_BUFFER_ARB, vbo[0]); glBufferDataARB(GL_ARRAY_BUFFER_ARB, NUM_PARTICLES_VBO*4*sizeof(float), vboColor, GL_STREAM_DRAW_ARB); // VBO for vertex positions glBindBufferARB(GL_ARRAY_BUFFER_ARB, vbo[1]); glBufferDataARB(GL_ARRAY_BUFFER_ARB, NUM_PARTICLES_VBO*3*sizeof(float), vboPts, GL_STREAM_DRAW_ARB); shader.setShaderActive(false); */ }