Example #1
0
void Gamedesk::kDOPTree::DrawLevel( kDOPTree::kDOPNode* pNode, UInt32 pLevel )
{
    mDepth++;

    if( mDepth == pLevel ||
        pNode->mTriangleIndices.size() != 0 )
    {
        Renderer* renderer = GraphicSubsystem::Instance()->GetRenderer();
        GD_ASSERT(renderer);

	    // Render the bounding box.
	    renderer->SetRenderState( Renderer::Lighting, false );
        renderer->SetPolygonMode( Renderer::BothFace, Renderer::FillWireframe );
        renderer->SetCulling( Renderer::NoCulling );
        
        renderer->SetColor(Color4f(1.0f, 1.0f, 1.0f, 1.0f));
        renderer->DrawBox( pNode->mBoundingBox.Min(), pNode->mBoundingBox.Max() );

        renderer->SetRenderState( Renderer::Lighting, true );
        renderer->SetPolygonMode( Renderer::BothFace, Renderer::FillSolid );
        renderer->SetCulling( Renderer::CullBackFace );
    }
    else
    {        
        kDOPNode* leftNode  = mNodes[pNode->mChildsIndex + 0];
        kDOPNode* rightNode = mNodes[pNode->mChildsIndex + 1];

        DrawLevel( leftNode, pLevel );
        DrawLevel( rightNode, pLevel );
    }

    mDepth--;
}
Example #2
0
void Entity::RenderSelected() const
{
    Renderer* renderer = GraphicSubsystem::Instance()->GetRenderer();
    GD_ASSERT(renderer);

	// Render the bounding box.
	renderer->SetRenderState( Renderer::Lighting, false );
    renderer->SetPolygonMode( Renderer::BothFace, Renderer::FillWireframe );
    renderer->SetCulling( Renderer::NoCulling );
    
    renderer->SetColor(Color4f(1.0f, 0.0f, 0.0f, 1.0f));
    renderer->DrawBox( mBoundingBox.Min(), mBoundingBox.Max() );
    renderer->SetColor(Color4f(1.0f, 1.0f, 1.0f, 1.0f));

    renderer->SetRenderState( Renderer::Lighting, true );
    renderer->SetPolygonMode( Renderer::BothFace, Renderer::FillSolid );
    renderer->SetCulling( Renderer::CullBackFace );
}