Example #1
0
	//-------------------------------------------------------------------
	vec3f Node::getWorldPosition() const
	{
		mat4f trans = getWorldTransformation();


		return vec3f( trans[12], trans[13], trans[14] );
	}
Example #2
0
void Mouth::draw(RenderContext const& ctx) {
	if (committed_) {
		// nothing to draw, physics will draw for us
#ifdef DEBUG_DRAW_MOUTH
		float ratio = sqrt((getFoodValue() / density_) / size_);
		float widthLeft = width_ * ratio;
		float lengthLeft = length_ * ratio;
		glm::vec3 worldTransform = getWorldTransformation();
		Shape3D::get()->drawRectangleXOYCentered(glm::vec3(vec3xy(worldTransform), 0), glm::vec2(lengthLeft, widthLeft), worldTransform.z, glm::vec3(0.5f,0,1));
#endif
	} else {
		glm::vec3 worldTransform = getWorldTransformation();
		Shape3D::get()->drawRectangleXOYCentered(glm::vec3(vec3xy(worldTransform), 0), glm::vec2(length_, width_), worldTransform.z, debug_color);
		Shape3D::get()->drawLine(glm::vec3(vec3xy(worldTransform), 0),
				glm::vec3(vec3xy(worldTransform), 0) + glm::vec3(glm::rotate(getChildAttachmentPoint(0), worldTransform.z), 0),
				debug_color);
	}
}
Example #3
0
	//-------------------------------------------------------------------
	void Object::render()
	{
		matStackf modelStack;
		modelStack.applyMatrix( getWorldTransformation() );
		NamedProperties params;
		params.set( "modelMatrix", modelStack.top() );
		params.set( "mesh", m_mesh );
		fireEvent( "renderMesh", params );
	}
Example #4
0
	//-------------------------------------------------------------------
	void Object::renderDebug( Renderer* renderer )
	{
		matStackf& modelStack = renderer->getModelStack();
		modelStack.push();
		modelStack.loadIdentity();
		modelStack.applyMatrix( getWorldTransformation() );

		if( m_mesh )
		{
			renderer->renderDebugMesh( m_mesh );
			renderer->renderAxis( 5.0f );
		}
		modelStack.pop();
	}