Sabtu, 02 Desember 2017

Rotasi objek pada OGRE

LISTING PROGRAM

#include "ExampleApplication.h"
class BelajarOgre : public ExampleApplication {
public:
       BelajarOgre(){
       }
       ~BelajarOgre(){
       }
protected:
void createScene(void){
Entity *ent1 = mSceneMgr->createEntity("Robot","robot.mesh");
Entity *ent2 = mSceneMgr->createEntity("Razor","razor.mesh");
Entity *ent3 = mSceneMgr->createEntity("Robot2","robot.mesh");
Entity *ent4 = mSceneMgr->createEntity("Razor2","razor.mesh");

SceneNode *node1= mSceneMgr>getRootSceneNode()->createChildSceneNode("RobotNode", Vector3(125, 0, 0));
node1->attachObject(ent1);
node1->yaw(Degree(-180));
SceneNode *node2= mSceneMgr>getRootSceneNode()->createChildSceneNode("RazorNode", Vector3(100, 0, 0));
node2->attachObject(ent2);
node2->yaw(Degree(-90));
SceneNode *node3= mSceneMgr>getRootSceneNode()->createChildSceneNode("Robot2Node", Vector3(-125, 0, 0));
node3->attachObject(ent3);
SceneNode *node4= mSceneMgr>getRootSceneNode()->createChildSceneNode("Razor2Node", Vector3(-100, 0, 0));
node4->attachObject(ent4);
node4->yaw(Degree(90));
       }
};

LOGIKA PROGRAM

void createScene(void){
Entity *ent1 = mSceneMgr->createEntity("Robot","robot.mesh");
Entity *ent2 = mSceneMgr->createEntity("Razor","razor.mesh");
Entity *ent3 = mSceneMgr->createEntity("Robot2","robot.mesh");
Entity *ent4 = mSceneMgr->createEntity("Razor2","razor.mesh");

Listing di atas ini merupkan void createScene(void) digunakan sebagai pendeklarasian method yang ada dalam program ini. Method tersebut diberi nama createScene. Selain itu, method ini memiliki parameter void dan bertipe void yang artinya adalah method ini tidak dapat memberikan nilai balik. Lalu terdapat pendeklarasian objek entity yang diberi nama dengan *ent1, *ent2, *ent3, dan *ent4. Tanda (*) pointer yang dapat dipanggil pada line – line statemen  tertentu. Lalu untuk membuat suatu entity, kita gunakan sintaks createEntity dimana parameter yang ada didalamnya yaitu merupakan nama dari entity yang dibuat, kemudian file model yang akan dipanggil atau dibuat. Listing di atas terdapat 4 entity yang diberi nama Robot, Razor, Robot2 dan Razor2, lalu kita panggil file robot.mesh dan razor.mesh untuk memanggil file model yang telah disediakan oleh OGRE.

SceneNode*node1= mSceneMgr>getRootSceneNode()->createChildSceneNode("RobotNode", Vector3(125, 0, 0));
node1->attachObject(ent1);
node1->yaw(Degree(-180));

Listing di ats ini digunakan untuk membuat parent node. Node yang pertama ini diberi nama *node1, dimana node1 ini di dalamnya berisikan nama objeknya yaitu “RobotNode” dengan koordinatnya adalah X=125, Y=0, Z=0. Lalu terdapat |node1->attachObject(ent1);| digunakan untuk melakukan proses attach atau upload object yang sebelumnya telah dideklarasikan objeknya. Lalu terdapat node1->yaw(Degree(-180)); yang digunakan untuk memutar objek pada sumbu Y sebesar 180 derajat searah dengan jarum jam.

SceneNode*node2= mSceneMgr>getRootSceneNode()->createChildSceneNode("RazorNode", Vector3(100, 0, 0));
node2->attachObject(ent2);
node2->yaw(Degree(-90));

Listing di ats ini digunakan untuk membuat parent node. Node yang pertama ini diberi nama *node2, dimana node1 ini di dalamnya berisikan nama objeknya yaitu “RazorNode” dengan koordinatnya adalah X=100, Y=0, Z=0. Lalu terdapat |node2->attachObject(ent2);| digunakan untuk melakukan proses attach atau upload object yang sebelumnya telah dideklarasikan objeknya. Lalu terdapat |node2->yaw(Degree(-90));| yang digunakan untuk memutar objek pada sumbu Y sebesar 90 derajat searah dengan jarum jam.

SceneNode*node3= mSceneMgr>getRootSceneNode()->createChildSceneNode("Robot2Node", Vector3(-125, 0, 0));
node3->attachObject(ent3);

Listing di ats ini digunakan untuk membuat parent node. Node yang pertama ini diberi nama *node3, dimana node1 ini di dalamnya berisikan nama objeknya yaitu “Robot2Node” dengan koordinatnya adalah X=-125, Y=0, Z=0. Lalu terdapat |node3->attachObject(ent3);| digunakan untuk melakukan proses attach atau upload object yang sebelumnya telah dideklarasikan objeknya.

SceneNode*node4= mSceneMgr>getRootSceneNode()->createChildSceneNode("Razor2Node", Vector3(-100, 0, 0));
node4->attachObject(ent4);
node4->yaw(Degree(90));

Listing di ats ini digunakan untuk membuat parent node. Node yang pertama ini diberi nama *node4, dimana node1 ini di dalamnya berisikan nama objeknya yaitu “Razor2Node” dengan koordinatnya adalah X=-100, Y=0, Z=0. Lalu terdapat |node4->attachObject(ent4);| digunakan untuk melakukan proses attach atau upload object yang sebelumnya telah dideklarasikan objeknya. Lalu terdapat |node4->yaw(Degree(90));| yang digunakan untuk memutar objek pada sumbu Y sebesar 90 derajat berlawanan arah dengan jarum jam.


OUTPUT PPROGRAM

 

Tidak ada komentar:

Posting Komentar

Program SORTING DAN SEARCHING DATA Bahasa C

LISTING PROGRAM LOGIKA PROGRAM    #include <stdio.h> adalah penyisipan file standard input output header untuk ...