void ramBaseApp::draw(ofEventArgs &args)
{
	glPushAttrib(GL_ALL_ATTRIB_BITS);

	glEnable(GL_DEPTH_TEST);

	ramBeginCamera();

	if (draw_floor_auto)
		drawFloor();

	getActorManager().draw();

	bool enable_physics = ramGetEnablePhysicsPrimitive();

	ramEnablePhysicsPrimitive(false);

	glPushAttrib(GL_ALL_ATTRIB_BITS);
	glPushMatrix();
	ofPushStyle();

	if (ramShadowEnabled())
	{
		// shadow

		ramBeginShadow();
		drawNodeArrays();
		ramEndShadow();
	}

	ofPopStyle();
	glPopMatrix();
	glPopAttrib();

	ramEnablePhysicsPrimitive(enable_physics);

	glPushAttrib(GL_ALL_ATTRIB_BITS);
	glPushMatrix();
	ofPushStyle();

	if (drawModel)
	{
		// entities
		drawNodeArrays();
	}

	ofPopStyle();
	glPopMatrix();
	glPopAttrib();

	ramEndCamera();

	glPopAttrib();
}
예제 #2
0
void ramSphere(const ramNode& o, float radius)
{
	o.beginTransform();
	ofDrawSphere(radius);
	o.endTransform();

	if (ramGetEnablePhysicsPrimitive())
	{
		ramSpherePrimitive *p = new ramSpherePrimitive(o.getGlobalPosition(), radius);
		p->getRigidBody().setKinematic(true);
		ramPhysics::instance().registerTempraryPrimitive(p);
	}
}
예제 #3
0
void ramBox(const ramNode& o, float size)
{
	o.beginTransform();
	ofDrawBox(size);
	o.endTransform();

	if (ramGetEnablePhysicsPrimitive()
		&& ramPhysics::instance().checkAndUpdateNodeCache(&o))
	{
		ramBoxPrimitive *p = new ramBoxPrimitive(o.getGlobalTransformMatrix(), size);
		p->getRigidBody().setKinematic(true);
		ramPhysics::instance().registerTempraryPrimitive(p);
	}
}
예제 #4
0
void ramBaseApp::draw(ofEventArgs &args)
{
	glPushAttrib(GL_ALL_ATTRIB_BITS);

	glEnable(GL_DEPTH_TEST);

	ramBeginCamera();

	if (draw_floor_auto)
		drawFloor();

	getActorManager().draw();

	bool enable_physics = ramGetEnablePhysicsPrimitive();

	ramEnablePhysicsPrimitive(false);

	if (ramShadowEnabled())
	{
		// shadow

		ramBeginShadow();
		drawNodeArrays();
		ramEndShadow();
	}

	ramEnablePhysicsPrimitive(enable_physics);

	if (drawModel)
	{
		// entities
		drawNodeArrays();
	}

	ramEndCamera();

	glPopAttrib();
	
	getCommunicationManager().draw();
	
	draw(); // calling testApp(or ofApp)::draw()
}