fFireD.pas 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. unit fFireD;
  2. interface
  3. uses
  4. Winapi.OpenGL,
  5. System.SysUtils,
  6. System.Classes,
  7. System.Types,
  8. System.Math,
  9. Vcl.Graphics,
  10. Vcl.Controls,
  11. Vcl.Forms,
  12. Vcl.Dialogs,
  13. Vcl.ExtCtrls,
  14. GLS.Scene,
  15. GLS.Objects,
  16. GLS.FireFX,
  17. GLS.Cadencer,
  18. GLS.Behaviours,
  19. Stage.VectorGeometry,
  20. GLS.SceneViewer,
  21. GLS.GeomObjects,
  22. GLS.Coordinates,
  23. GLS.BaseClasses;
  24. type
  25. TFormFire = class(TForm)
  26. GLScene1: TGLScene;
  27. GLSceneViewer1: TGLSceneViewer;
  28. GLCadencer1: TGLCadencer;
  29. GLFireFXManager1: TGLFireFXManager;
  30. GLCamera1: TGLCamera;
  31. Sphere1: TGLSphere;
  32. Torus1: TGLTorus;
  33. GLLightSource2: TGLLightSource;
  34. Timer1: TTimer;
  35. procedure GLSceneViewer1MouseDown(Sender: TObject;
  36. Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  37. procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
  38. X, Y: Integer);
  39. procedure Timer1Timer(Sender: TObject);
  40. procedure FormMouseWheel(Sender: TObject; Shift: TShiftState;
  41. WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
  42. public
  43. mx, my : Integer;
  44. end;
  45. var
  46. FormFire: TFormFire;
  47. implementation
  48. {$R *.DFM}
  49. procedure TFormFire.GLSceneViewer1MouseDown(Sender: TObject;
  50. Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
  51. begin
  52. mx:=x; my:=y;
  53. end;
  54. procedure TFormFire.GLSceneViewer1MouseMove(Sender: TObject;
  55. Shift: TShiftState; X, Y: Integer);
  56. begin
  57. if Shift<>[] then
  58. GLCamera1.MoveAroundTarget(my-y, mx-x);
  59. mx:=x; my:=y;
  60. GLCadencer1.Progress;
  61. end;
  62. procedure TFormFire.Timer1Timer(Sender: TObject);
  63. begin
  64. Caption:='GLScene Fire - '+Format('%.1f FPS', [GLSceneViewer1.FramesPerSecond]);
  65. GLSceneViewer1.ResetPerformanceMonitor;
  66. end;
  67. procedure TFormFire.FormMouseWheel(Sender: TObject; Shift: TShiftState;
  68. WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);
  69. begin
  70. GLCamera1.AdjustDistanceToTarget(Power(1.1, WheelDelta/120));
  71. end;
  72. end.