// %flair:license{ // This file is part of the Flair framework distributed under the // CECILL-C License, Version 1.0. // %flair:license} // created: 2012/08/22 // filename: MeshSceneNode.cpp // // author: Guillaume Sanahuja // Copyright Heudiasyc UMR UTC/CNRS 7253 // // version: $Id: $ // // purpose: classe definissant un IMeshSceneNode // /*********************************************************************/ #ifdef GL #include "MeshSceneNode.h" #include "Gui.h" #include "Model.h" #include #include using namespace irr; using namespace irr::video; using namespace irr::scene; using namespace irr::core; using namespace flair::core; namespace flair { namespace simulator { MeshSceneNode::MeshSceneNode(Model *parent, IMesh *mesh, const vector3df &position, const vector3df &rotation, ITexture *texture, s32 id) : IMeshSceneNode(parent->getSceneNode(), getGui()->getSceneManager(), id, position, rotation) { Material.Wireframe = false; Material.Lighting = false; setMesh(mesh); if (texture != NULL) { setMaterialTexture(0, texture); } parent->Box()->addInternalBox(getTransformedBoundingBox()); } void MeshSceneNode::OnRegisterSceneNode(void) { if (IsVisible) SceneManager->registerNodeForRendering(this); ISceneNode::OnRegisterSceneNode(); } void MeshSceneNode::render(void) { IVideoDriver *driver = SceneManager->getVideoDriver(); driver->setMaterial(Material); driver->setTransform(ETS_WORLD, AbsoluteTransformation); driver->drawMeshBuffer(mesh->getMeshBuffer(0)); } SMaterial &MeshSceneNode::getMaterial(u32 i) { return Material; } void MeshSceneNode::setMesh(IMesh *ptr) { mesh = ptr; Box = mesh->getBoundingBox(); } IMesh *MeshSceneNode::getMesh(void) { return mesh; } void MeshSceneNode::setReadOnlyMaterials(bool readonly) {} } // end namespace simulator } // end namespace flair #endif // GL