2
0

fBeerD.pas 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. unit fBeerD;
  2. interface
  3. uses
  4. Winapi.OpenGL,
  5. System.SysUtils,
  6. System.Classes,
  7. Vcl.Graphics,
  8. Vcl.Imaging.Jpeg,
  9. Vcl.Controls,
  10. Vcl.Forms,
  11. GLS.Scene,
  12. GLS.VectorFileObjects,
  13. GLS.Objects,
  14. GLS.SceneViewer,
  15. GLS.File3DS,
  16. GLS.Cadencer,
  17. GLS.GeomObjects,
  18. Stage.VectorGeometry,
  19. GLS.ShadowPlane,
  20. GLS.ParticleFX,
  21. GLS.PerlinPFX,
  22. GLS.Coordinates,
  23. GLS.BaseClasses,
  24. Stage.Utils;
  25. type
  26. TFormBeer = class(TForm)
  27. GLScene1: TGLScene;
  28. GLSceneViewer1: TGLSceneViewer;
  29. GLCamera1: TGLCamera;
  30. GLDummyCube1: TGLDummyCube;
  31. GLLightSource1: TGLLightSource;
  32. GLFreeForm1: TGLFreeForm;
  33. GLCadencer1: TGLCadencer;
  34. GLCylinder1: TGLCylinder;
  35. GLCylinder2: TGLCylinder;
  36. GLShadowPlane1: TGLShadowPlane;
  37. GLPerlinPFXManager1: TGLPerlinPFXManager;
  38. GLDummyCube3: TGLDummyCube;
  39. GLParticleFXRenderer1: TGLParticleFXRenderer;
  40. GLPolygonPFXManager1: TGLPolygonPFXManager;
  41. GLParticleFXRenderer2: TGLParticleFXRenderer;
  42. procedure FormActivate(Sender: TObject);
  43. procedure GLCadencer1Progress(Sender: TObject;
  44. const deltaTime, newTime: Double);
  45. procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
  46. X, Y: Integer);
  47. procedure GLSceneViewer1DblClick(Sender: TObject);
  48. private
  49. public
  50. mx, my: Integer;
  51. end;
  52. var
  53. FormBeer: TFormBeer;
  54. implementation
  55. {$R *.dfm}
  56. procedure TFormBeer.FormActivate(Sender: TObject);
  57. begin
  58. var Path: TFileName := GetCurrentAssetPath();
  59. SetCurrentDir(Path + '\model');
  60. GLFreeForm1.LoadFromFile('beer.3ds');
  61. SetCurrentDir(Path + '\texture');
  62. GLFreeForm1.Material.Texture.Image.LoadFromFile('clouds.jpg');
  63. GLShadowPlane1.Material.Texture.Image.LoadFromFile('ashwood.jpg');
  64. GetOrCreateSourcePFX(GLDummyCube3).Burst(0, 150);
  65. end;
  66. procedure TFormBeer.GLCadencer1Progress(Sender: TObject;
  67. const deltaTime, newTime: Double);
  68. begin
  69. GLCamera1.MoveAroundTarget(0, 10 * deltaTime);
  70. end;
  71. procedure TFormBeer.GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
  72. X, Y: Integer);
  73. begin
  74. if ssLeft in Shift then
  75. GLCamera1.MoveAroundTarget(my - Y, mx - X);
  76. mx := X;
  77. my := Y;
  78. end;
  79. procedure TFormBeer.GLSceneViewer1DblClick(Sender: TObject);
  80. begin
  81. GLCadencer1.Enabled := not GLCadencer1.Enabled;
  82. end;
  83. end.