Salut, essaye ça
#include <irrlicht.h>
using namespace irr;
using namespace core;
using namespace video;
using namespace scene;
void Dessiner_Ligne(IVideoDriver* driver, core::vector3df from,
core::vector3df to, SColor couleur )
{
matrix4 mat;
SMaterial material;
material.Texture1 = 0;
material.Lighting = false;
driver->setTransform(ETS_WORLD, mat);
driver->draw3DLine(from, to, couleur);
}
int main(int argc, char **argv)
{
IrrlichtDevice* device = createDevice(EDT_OPENGL, dimension2d<s32>(400, 400),
32, false, false, false); if (!device) return 1;
IVideoDriver* driver = device->getVideoDriver();
ISceneManager* smgr = device->getSceneManager();
// [cam]
scene::ICameraSceneNode* cam;
cam = smgr->addCameraSceneNodeFPS(0,100.0f,200.0f);
cam->setPosition(core::vector3df(-200, 100, -200));
cam->setTarget(core::vector3df(0,00,0));
device->getCursorControl()->setVisible(false);
// [Light]
ILightSceneNode* pLight = device->getSceneManager()->addLightSceneNode();
SLight &l = pLight->getLightData();
l.Type = ELT_DIRECTIONAL;
ISceneNode* pNode = device->getSceneManager()->addEmptySceneNode();
pLight->setPosition(vector3df(0,1,1));
pLight->setParent(pNode);
// [Empty nodes pour relier les lignes]
ISceneNode* a[4];
irr::gui::IGUIFont* font = device->getGUIEnvironment()->getBuiltInFont();
for (int n=0; n<4; n++)
{
a[n] = device->getSceneManager()->addEmptySceneNode();
core::stringw str(L"Noeud "); str +=n;
smgr->addTextSceneNode(font, str.c_str(), video::SColor(255,0,140,0), a[n]);
a[n]->setPosition(core::vector3df(20*n,30*n,40*n));
}
// [main loop]
while (device->run())
{
driver->beginScene(true, true, SColor(255, 40, 40, 40));
smgr->drawAll();
core::vector3df pos = a[1]->getPosition();
pos.X++;
if (pos.X>100) pos.X =-100;
a[1]->setPosition(pos);
for (int n=1; n<4; n++)
Dessiner_Ligne (driver, a[n]->getPosition(), a[n-1]->getPosition(), SColor(255,n*50,n*50,n*50));
driver->endScene();
}
device->drop();
return 0;
}