// %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.h // // author: Guillaume Sanahuja // Copyright Heudiasyc UMR UTC/CNRS 7253 // // version: $Id: $ // // purpose: classe definissant un IMeshSceneNode // /*********************************************************************/ #ifndef MESHSCENENODE_H #define MESHSCENENODE_H #include namespace flair { namespace simulator { class Model; class MeshSceneNode : public irr::scene::IMeshSceneNode { public: MeshSceneNode( Model *parent, irr::scene::IMesh *mesh, const irr::core::vector3df &position = irr::core::vector3df(0, 0, 0), const irr::core::vector3df &rotation = irr::core::vector3df(0, 0, 0), irr::video::ITexture *texture = NULL, irr::s32 id = -1); virtual void OnRegisterSceneNode(void); virtual void render(void); virtual const irr::core::aabbox3d &getBoundingBox() const { return Box; } virtual irr::u32 getMaterialCount(void) const { return 1; } virtual irr::video::SMaterial &getMaterial(irr::u32 i); virtual void setMesh(irr::scene::IMesh *ptr); virtual irr::scene::IMesh *getMesh(void); virtual void setReadOnlyMaterials(bool readonly); virtual bool isReadOnlyMaterials(void) const { return false; } virtual irr::scene::IShadowVolumeSceneNode * addShadowVolumeSceneNode(const irr::scene::IMesh *shadowMesh = 0, irr::s32 id = -1, bool zfailmethod = true, irr::f32 infinity = 1000.0f) { return NULL; } private: irr::scene::IMesh *mesh; irr::core::aabbox3d Box; irr::video::SMaterial Material; }; } // end namespace simulator } // end namespace flair #endif // MESHSCENENODE_H