source: flair-src/trunk/lib/FlairSimulator/src/MeshSceneNode.cpp @ 70

Last change on this file since 70 was 15, checked in by Bayard Gildas, 6 years ago

sources reformatted with flair-format-dir script

File size: 2.0 KB
Line 
1// %flair:license{
2// This file is part of the Flair framework distributed under the
3// CECILL-C License, Version 1.0.
4// %flair:license}
5//  created:    2012/08/22
6//  filename:   MeshSceneNode.cpp
7//
8//  author:     Guillaume Sanahuja
9//              Copyright Heudiasyc UMR UTC/CNRS 7253
10//
11//  version:    $Id: $
12//
13//  purpose:    classe definissant un IMeshSceneNode
14//
15/*********************************************************************/
16#ifdef GL
17
18#include "MeshSceneNode.h"
19#include "Gui.h"
20#include "Model.h"
21#include <ISceneManager.h>
22#include <IVideoDriver.h>
23
24using namespace irr;
25using namespace irr::video;
26using namespace irr::scene;
27using namespace irr::core;
28using namespace flair::core;
29
30namespace flair {
31namespace simulator {
32
33MeshSceneNode::MeshSceneNode(Model *parent, IMesh *mesh,
34                             const vector3df &position,
35                             const vector3df &rotation, ITexture *texture,
36                             s32 id)
37    : IMeshSceneNode(parent->getSceneNode(), getGui()->getSceneManager(), id,
38                     position, rotation) {
39  Material.Wireframe = false;
40  Material.Lighting = false;
41
42  setMesh(mesh);
43
44  if (texture != NULL) {
45    setMaterialTexture(0, texture);
46  }
47
48  parent->Box()->addInternalBox(getTransformedBoundingBox());
49}
50
51void MeshSceneNode::OnRegisterSceneNode(void) {
52  if (IsVisible)
53    SceneManager->registerNodeForRendering(this);
54
55  ISceneNode::OnRegisterSceneNode();
56}
57
58void MeshSceneNode::render(void) {
59  IVideoDriver *driver = SceneManager->getVideoDriver();
60
61  driver->setMaterial(Material);
62  driver->setTransform(ETS_WORLD, AbsoluteTransformation);
63  driver->drawMeshBuffer(mesh->getMeshBuffer(0));
64}
65
66SMaterial &MeshSceneNode::getMaterial(u32 i) { return Material; }
67
68void MeshSceneNode::setMesh(IMesh *ptr) {
69  mesh = ptr;
70  Box = mesh->getBoundingBox();
71}
72
73IMesh *MeshSceneNode::getMesh(void) { return mesh; }
74
75void MeshSceneNode::setReadOnlyMaterials(bool readonly) {}
76
77} // end namespace simulator
78} // end namespace flair
79#endif // GL
Note: See TracBrowser for help on using the repository browser.