31 #include "laStagesJR.h"
33 double dViewAngle = 0;
35 double dOfsX=0, dOfsY=0;
37 class uiWindow_Receiver:
public uiWindow{
41 void onCommand(
unsigned long uID,
unsigned long nCmd)
44 laTimer* pt = ::laSystemIntegrator::getEnvironment()->getTimer();
48 case 2: dViewAngle += pt->delta()*100;
break;
49 case 3: dViewAngle -= pt->delta()*100;
break;
50 case 4: dZoom -= pt->delta()*1;
break;
51 case 5: dZoom += pt->delta()*1;
break;
57 stageModelViewer::stageModelViewer(
void)
62 stageModelViewer::~stageModelViewer(
void)
66 void stageModelViewer::onInit()
70 _uiDesktop.create(
"ui\\desktop-mm.dsk");
75 pb->
create( laPoint3(10, 10), laPoint3(150, 40));
76 pb->setText(
"Load Another Model...");
79 _uiDesktop.insert( pb );
84 pb1->
create( laPoint3(), laPoint3(50, 50));
88 pb1->toggleRepetitive(M_TRUE);
89 _uiDesktop.insert( pb1 );
93 pb2->
create( laPoint3(), laPoint3(50, 50));
96 pb2->toggleRepetitive(M_TRUE);
98 _uiDesktop.insert( pb2 );
104 pb3->
create( laPoint3(), laPoint3(40, 40));
108 pb3->toggleRepetitive(M_TRUE);
109 _uiDesktop.insert( pb3 );
113 pb4->
create( laPoint3(), laPoint3(40, 40));
116 pb4->toggleRepetitive(M_TRUE);
118 _uiDesktop.insert( pb4 );
125 l->
create( laPoint3(), laPoint3(100, 40));
126 l->setText(
"[Right-Click and Drag to Pan View]");
129 _uiDesktop.insert( l );
134 void stageModelViewer::onFini()
138 void stageModelViewer::onActivate()
140 laSystemIntegrator::getEnvironment()->setTitle(
"[Model Viewer] by Atanas Laskov");
143 _pModel->load(
"ron_a.jra");
148 void stageModelViewer::onDeactivate()
157 _uiDesktop.drawBackground();
162 pr->transRotate( dViewAngle, laPoint3(0,1,0) );
165 pr->styleSet( laColor(255, 255, 255, 255) );
168 pr->lightAmbient(0, laColor(100,100,100,255) );
169 pr->lightMakeSunlight(0, laPoint3( 0, 0, -
M_UNIT*10 ) );
172 _pModel->animate(*pt);
174 pr->styleSet( laColor(255,0,0) );
180 for(
unsigned i=0; i<_pModel->framePtr()->vertexCount(); i++)
182 laPoint3 pt = _pModel->sample(i);
185 pr->transTranslate(pt);
186 pr->transRotate(-dViewAngle, laPoint3(0,1,0));
188 pr->
font(
"plain")->draw(laPoint3(),
"%d", i);
221 pr->drawLine(laPoint3(
M_UNIT*0.1, 0),laPoint3(
M_UNIT*0.1, 0));
222 pr->drawLine(laPoint3(0,
M_UNIT*0.1), laPoint3(0,
M_UNIT*0.1));
223 pr->drawLine(laPoint3(0, 0,
M_UNIT*0.1), laPoint3(0, 0,
M_UNIT*0.1));
237 dOfsX -= (in::mouse_ofsx())*
M_UNIT*0.1*pt->delta();
238 dOfsY -= (in::mouse_ofsy())*
M_UNIT*0.1*pt->delta();
laFont * font(char *strName)
Get a font renderer.
virtual void modeTexture(M_BOOL bOn)=0
Enable/disable texturing.
#define M_AB
Text align bottom.
#define M_UNIT
Unit of 1 meter.
virtual void move(laPoint3 ptNewPos, unsigned nHReference=M_AL, unsigned nVReference=M_AT)
Change window position.
virtual void create(laPoint3 pos, laPoint3 size)
Create new empty window.
#define M_AM
Text align middle.
#define M_AL
Text align left.
#define M_AT
Text align top.
#define M_AR
Text align right.
Base class for GUI windows.
Virtual interface for the Engine graphics renderer.
virtual void modeInterface()=0
Switch to interface rendering (2D projection mode)
virtual void modeLight(M_BOOL bOn)=0
Enable/disable lighting.
virtual void modeWorld(const laPoint3 &pos, const laPoint3 &ang=laPoint3())=0
Switch to "world rendering" (3D projection mode)
virtual void onCommand(unsigned long uID, unsigned long nCmd)
Command event handler.