//! render void CLightSceneNode::render() { IVideoDriver* driver = SceneManager->getVideoDriver(); if (!driver) return; if (DebugDataVisible & EDS_BBOX) { driver->setTransform(ETS_WORLD, AbsoluteTransformation); SMaterial m; m.Lighting = false; driver->setMaterial(m); switch (LightData.Type) { case ELT_POINT: case ELT_SPOT: driver->draw3DBox(BBox, LightData.DiffuseColor); break; case ELT_DIRECTIONAL: driver->draw3DLine(Vector3(0.f, 0.f, 0.f), LightData.Direction * LightData.Radius, LightData.DiffuseColor); break; default: break; } } DriverLightIndex = driver->addDynamicLight(LightData); setVisible(LightIsOn); }
//! does nothing. void CGameParticleContainerSceneNode::render() { IVideoDriver *driver = getIView()->getDriver(); #ifdef GSEDITOR CGameObject::EObjectState state = m_owner->getObjectState(); // draw bbox on select if ( state == CGameObject::Move || state == CGameObject::Review ) setDebugDataVisible( EDS_BBOX ); else setDebugDataVisible( 0 ); // call object draw m_owner->drawObject(); #endif if ( DebugDataVisible & scene::EDS_BBOX ) { driver->setTransform(video::ETS_WORLD, getAbsoluteTransformation() ); video::SMaterial deb_m; deb_m.Lighting = false; driver->setMaterial(deb_m); driver->draw3DBox( Box, video::SColor(255,255,255,255)); } #ifdef GSEDITOR // draw move if ( state == CGameObject::Move || state == CGameObject::Rotation || state == CGameObject::Scale ) m_owner->drawFrontUpLeftVector(); if ( state == CGameObject::Rotation ) m_owner->drawCircleAroundObject(); #endif }
//! does nothing. void CGameContainerSceneNode::render() { if ( m_owner == NULL ) return; IVideoDriver *driver = getIView()->getDriver(); if ( DebugDataVisible & scene::EDS_BBOX ) { driver->setTransform(video::ETS_WORLD, AbsoluteTransformation); video::SMaterial deb_m; deb_m.Lighting = false; driver->setMaterial(deb_m); core::aabbox3d<f32> tbox = Box; getAbsoluteTransformation().transformBoxEx(tbox); driver->draw3DBox( tbox, video::SColor(255,255,0,255)); } }
void CGameColladaContainerSceneNode::render() { if (m_owner == NULL) return; #ifdef GSEDITOR CGameObject::EObjectState state = m_owner->getObjectState(); // draw bbox on select if ( state == CGameObject::Move || state == CGameObject::Review ) setDebugDataVisible( EDS_BBOX ); else setDebugDataVisible( 0 ); // call object draw m_owner->drawObject(); // draw bouding box if ( DebugDataVisible & scene::EDS_BBOX ) { IVideoDriver *driver = getIView()->getDriver(); driver->setTransform(video::ETS_WORLD, core::IdentityMatrix); video::SMaterial deb_m; deb_m.Lighting = false; driver->setMaterial(deb_m); core::aabbox3d<f32> tbox = Box; getAbsoluteTransformation().transformBoxEx(tbox); driver->draw3DBox( tbox, video::SColor(255,255,255,255)); } // draw move if ( state == CGameObject::Move || state == CGameObject::Rotation || state == CGameObject::Scale ) m_owner->drawFrontUpLeftVector(); if ( state == CGameObject::Rotation ) m_owner->drawCircleAroundObject(); #else if ( DebugDataVisible & scene::EDS_BBOX ) { IVideoDriver *driver = getIView()->getDriver(); driver->setTransform(video::ETS_WORLD, core::IdentityMatrix); video::SMaterial deb_m; deb_m.Lighting = false; driver->setMaterial(deb_m); core::aabbox3d<f32> tbox = Box; getAbsoluteTransformation().transformBoxEx(tbox); driver->draw3DBox( tbox, video::SColor(255,0,255,0)); } #endif }
// render // irr scenenode impl void CGameGrassSceneNode::render() { ISceneManager *smgr = getSceneManager(); IVideoDriver *driver = smgr->getVideoDriver(); #ifdef GSEDITOR CGameObject::EObjectState state = m_owner->getObjectState(); // draw bbox on select if ( state == CGameObject::Move || state == CGameObject::Review ) setDebugDataVisible( EDS_BBOX ); else setDebugDataVisible( 0 ); // call object draw m_owner->drawObject(); #endif // set world transform driver->setTransform( video::ETS_WORLD, getAbsoluteTransformation()); // set current material with config shader driver->setMaterial( m_Material); // draw mesh with grass shader int meshCount = m_mesh->getMeshBufferCount(); for ( int i = 0; i < meshCount; i++ ) driver->drawMeshBuffer(m_mesh->getMeshBuffer(i)); // draw bouding box if ( DebugDataVisible & scene::EDS_BBOX ) { driver->setTransform(video::ETS_WORLD, core::IdentityMatrix); video::SMaterial deb_m; deb_m.Lighting = false; driver->setMaterial(deb_m); core::aabbox3d<f32> tbox = m_mesh->getBoundingBox(); getAbsoluteTransformation().transformBoxEx(tbox); driver->draw3DBox( tbox, video::SColor(255,255,255,255)); } #ifdef GSEDITOR // draw move if ( state == CGameObject::Move || state == CGameObject::Rotation || state == CGameObject::Scale ) m_owner->drawFrontUpLeftVector(); if ( state == CGameObject::Rotation ) m_owner->drawCircleAroundObject(); #endif }