123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- //---------------------------------------------------------------------------
- #include <vcl.h>
- #include <math.h>
- #pragma hdrstop
- #include "Unit1.h"
- //---------------------------------------------------------------------------
- #pragma package(smart_init)
- #pragma link "GLS.FileTGA"
- #pragma resource "*.dfm"
- TForm1 *Form1;
- float ang;
- int mx, my, mk;
- //---------------------------------------------------------------------------
- __fastcall TForm1::TForm1(TComponent* Owner)
- : TForm(Owner)
- {
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::GLCadencer1Progress(TObject *Sender,
- const double deltaTime, const double newTime)
- {
- ang = ang + deltaTime*20;
- Light->Position->Y = sin(DegToRad(ang));
- Light->Position->X = cos(DegToRad(ang));
- light2->Pitch(deltaTime*20);
- viewer->Invalidate();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormCreate(TObject *Sender)
- {
- String MediaPath = ExtractFilePath(ParamStr(0));
- String SubStr = "Samples";
- int I = MediaPath.Pos(SubStr);
- if (I != 0) {
- MediaPath.Delete(I+8,MediaPath.Length()-I);
- MediaPath += "Media\\";
- SetCurrentDir(MediaPath);
- }
- matLib->Materials->Items[0]->Material->Texture->Image->LoadFromFile("projector.tga");
- matLib->Materials->Items[1]->Material->Texture->Image->LoadFromFile("flare1.bmp");
- emitter1->Material->MaterialLibrary = matLib;
- emitter1->Material->LibMaterialName = "spot";
- emitter2->Material->MaterialLibrary = matLib;
- emitter2->Material->LibMaterialName = "spot2";
- emitter2->FOVy = 40;
- GLPlane1->Material->Texture->Image->LoadFromFile("cm_front.jpg");
- GLPlane2->Material->Texture->Image->LoadFromFile("cm_left.jpg");
- GLPlane3->Material->Texture->Image->LoadFromFile("cm_bottom.jpg");
- ProjLight->Emitters->AddEmitter(emitter1);
- ProjLight->Emitters->AddEmitter(emitter2);
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::Timer1Timer(TObject *Sender)
- {
- Form1->Caption ="GLScene Projected Textures - "+ Format("%f", ARRAYOFCONST((viewer->FramesPerSecond())));
- viewer->ResetPerformanceMonitor();
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::viewerMouseDown(TObject *Sender,
- TMouseButton Button, TShiftState Shift, int X, int Y)
- {
- mk = 1;
- mx = X;
- my = Y;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::viewerMouseUp(TObject *Sender, TMouseButton Button,
- TShiftState Shift, int X, int Y)
- {
- mk = 0;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::viewerMouseMove(TObject *Sender, TShiftState Shift,
- int X, int Y)
- {
- if (mk == 1)
- {
- if (Shift.Contains(ssLeft))
- GLCamera1->MoveAroundTarget(my - Y, mx - X);
- else if (Shift.Contains(ssRight))
- GLCamera1->AdjustDistanceToTarget(1.0 + (my - Y) * 0.01);
- }
- mx = X;
- my = Y;
- }
- //---------------------------------------------------------------------------
- void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
- TShiftState Shift)
- {
- if (Key == VK_ADD)
- emitter1->FOVy = emitter1->FOVy + 5;
- else if (Key == VK_SUBTRACT)
- emitter1->FOVy = emitter1->FOVy - 5;
- if (Key == 'S')
- if (ProjLight->Style == ptsOriginal)
- ProjLight->Style = ptsInverse;
- else
- ProjLight->Style = ptsOriginal;
- }
- //---------------------------------------------------------------------------
|