Changeset 15 in flair-src for trunk/lib/FlairSimulator/src/GenericObject.cpp
- Timestamp:
- 04/08/16 15:40:57 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/lib/FlairSimulator/src/GenericObject.cpp
r10 r15 37 37 using namespace flair::simulator; 38 38 39 namespace flair 39 namespace flair { 40 namespace simulator { 41 42 GenericObject::GenericObject(Simulator *parent, std::string name, 43 ISceneManager *sceneManager) 44 : IMeshSceneNode(sceneManager->getRootSceneNode(), sceneManager, 45 -1) //, IODevice(parent,name) 40 46 { 41 namespace simulator 42 { 47 setMaterialFlag(EMF_LIGHTING, false); 48 Material = getMaterial(0); 49 // setMaterialTexture(0,sceneManager->getVideoDriver()->getTexture("/home/cesar/igep/uav_dev_svn/trunk/media/nskinbl.jpg")); 50 Material.NormalizeNormals = true; 51 Material.Wireframe = false; 52 Material.Lighting = false; 43 53 44 GenericObject::GenericObject(Simulator* parent,std::string name, ISceneManager* sceneManager) : IMeshSceneNode(sceneManager->getRootSceneNode(), sceneManager, -1)//, IODevice(parent,name) 45 { 46 setMaterialFlag(EMF_LIGHTING,false); 47 Material=getMaterial(0); 48 //setMaterialTexture(0,sceneManager->getVideoDriver()->getTexture("/home/cesar/igep/uav_dev_svn/trunk/media/nskinbl.jpg")); 49 Material.NormalizeNormals = true; 50 Material.Wireframe = false; 51 Material.Lighting = false; 52 53 parent->pimpl_->objects.push_back(this); 54 parent->pimpl_->objects.push_back(this); 54 55 } 55 56 56 GenericObject::~GenericObject() 57 { 57 GenericObject::~GenericObject() {} 58 58 59 void GenericObject::setScale(float value) { 60 ISceneNode::setScale(vector3df(value, value, value)); 59 61 } 60 62 61 void GenericObject::setScale(float value) 62 { 63 ISceneNode::setScale(vector3df(value,value,value)); 63 void GenericObject::setScale(vector3df scale) { ISceneNode::setScale(scale); } 64 65 ITriangleSelector *GenericObject::TriangleSelector(void) { return selector; } 66 67 void GenericObject::OnRegisterSceneNode(void) { 68 if (IsVisible) 69 SceneManager->registerNodeForRendering(this); 70 71 ISceneNode::OnRegisterSceneNode(); 64 72 } 65 73 66 void GenericObject::setScale(vector3df scale) 67 { 68 ISceneNode::setScale(scale); 74 void GenericObject::render(void) { 75 IVideoDriver *driver = SceneManager->getVideoDriver(); 76 77 driver->setMaterial(Material); 78 79 driver->setTransform(ETS_WORLD, AbsoluteTransformation); 80 driver->drawMeshBuffer(mesh->getMeshBuffer(0)); 69 81 } 70 82 71 ITriangleSelector* GenericObject::TriangleSelector(void) 72 { 73 return selector; 83 void GenericObject::setMesh(IMesh *mesh) { 84 this->mesh = mesh; 85 box = mesh->getBoundingBox(); 86 87 selector = getSceneManager()->createTriangleSelector(mesh, this); 88 setTriangleSelector(selector); 74 89 } 75 90 76 void GenericObject::OnRegisterSceneNode(void) 77 { 78 if (IsVisible) 79 SceneManager->registerNodeForRendering(this); 91 IMesh *GenericObject::getMesh(void) { return mesh; } 80 92 81 ISceneNode::OnRegisterSceneNode(); 93 void GenericObject::setPosition(irr::core::vector3df pos) { 94 ISceneNode::setPosition(ToIrrlichtCoordinates(pos)); 82 95 } 83 96 84 void GenericObject::render(void) 85 { 86 IVideoDriver* driver = SceneManager->getVideoDriver(); 97 void GenericObject::setRotation(irr::core::vector3df rotation) { 98 Euler eulerA(rotation.X, rotation.Y, rotation.Z); 99 Euler eulerB; 100 Quaternion quatA, quatB; 101 eulerA.ToQuaternion(quatA); 102 quatB = ToIrrlichtOrientation(quatA); 103 quatB.ToEuler(eulerB); 87 104 88 driver->setMaterial(Material); 89 90 driver->setTransform(ETS_WORLD, AbsoluteTransformation); 91 driver->drawMeshBuffer(mesh->getMeshBuffer(0)); 92 } 93 94 void GenericObject::setMesh(IMesh* mesh) 95 { 96 this->mesh=mesh; 97 box=mesh->getBoundingBox(); 98 99 selector = getSceneManager()->createTriangleSelector(mesh,this); 100 setTriangleSelector(selector); 101 } 102 103 IMesh* GenericObject::getMesh(void) 104 { 105 return mesh; 106 } 107 108 void GenericObject::setPosition(irr::core::vector3df pos) 109 { 110 ISceneNode::setPosition(ToIrrlichtCoordinates(pos)); 111 } 112 113 void GenericObject::setRotation(irr::core::vector3df rotation) 114 { 115 Euler eulerA(rotation.X,rotation.Y,rotation.Z); 116 Euler eulerB; 117 Quaternion quatA,quatB; 118 eulerA.ToQuaternion(quatA); 119 quatB=ToIrrlichtOrientation(quatA); 120 quatB.ToEuler(eulerB); 121 122 ISceneNode::setRotation(Euler::ToDegree(1)*vector3df(eulerB.roll,eulerB.pitch,eulerB.yaw)); 105 ISceneNode::setRotation(Euler::ToDegree(1) * 106 vector3df(eulerB.roll, eulerB.pitch, eulerB.yaw)); 123 107 } 124 108
Note:
See TracChangeset
for help on using the changeset viewer.