本文整理汇总了C++中IVideoDriver::draw3DBox方法的典型用法代码示例。如果您正苦于以下问题:C++ IVideoDriver::draw3DBox方法的具体用法?C++ IVideoDriver::draw3DBox怎么用?C++ IVideoDriver::draw3DBox使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类IVideoDriver
的用法示例。
在下文中一共展示了IVideoDriver::draw3DBox方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: render
//! 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);
}
示例2: render
//! 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
}
示例3: render
//! 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));
}
}
示例4: render
// 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
}