Unit1.cpp 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "Unit1.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma link "GLBaseClasses"
  8. #pragma link "GLCadencer"
  9. #pragma link "GLCoordinates"
  10. #pragma link "GLCrossPlatform"
  11. #pragma link "GLHUDObjects"
  12. #pragma link "GLNGDManager"
  13. #pragma link "GLObjects"
  14. #pragma link "GLScene"
  15. #pragma link "GLSimpleNavigation"
  16. #pragma link "GLWin32Viewer"
  17. #pragma link "GLXCollection"
  18. #pragma resource "*.dfm"
  19. TForm1 *Form1;
  20. //---------------------------------------------------------------------------
  21. __fastcall TForm1::TForm1(TComponent* Owner)
  22. : TForm(Owner)
  23. {
  24. }
  25. //---------------------------------------------------------------------------
  26. void __fastcall TForm1::Button1Click(TObject *Sender)
  27. {
  28. TGLCube *GLCube1;
  29. TGLNGDDynamic *DynNGDBehav;
  30. GLCube1 = (TGLCube *)(GLDummyCube1->AddNewChild(__classid(TGLCube)));
  31. GLCube1->Material->FrontProperties->Diffuse->RandomColor();
  32. GLCube1->Position->SetPoint(Random(), 2, Random());
  33. DynNGDBehav = (TGLNGDDynamic *)GLCube1->GetOrCreateBehaviour(__classid(TGLNGDDynamic));
  34. DynNGDBehav->Manager = GLNGDManager1;
  35. }
  36. //---------------------------------------------------------------------------
  37. void __fastcall TForm1::Button2Click(TObject *Sender)
  38. {
  39. TGLSphere *GLSphere1;
  40. TGLNGDDynamic *DynNGDBehav;
  41. GLSphere1 = (TGLSphere *)(GLDummyCube1->AddNewChild(__classid(TGLSphere)));
  42. GLSphere1->Material->FrontProperties->Diffuse->RandomColor();
  43. GLSphere1->Position->SetPoint(Random(), 2, Random());
  44. DynNGDBehav = (TGLNGDDynamic *)GLSphere1->GetOrCreateBehaviour(__classid(TGLNGDDynamic));
  45. DynNGDBehav->Manager = GLNGDManager1;
  46. }
  47. //---------------------------------------------------------------------------
  48. void __fastcall TForm1::Button3Click(TObject *Sender)
  49. {
  50. TGLCone *GLCone1;
  51. TGLNGDDynamic *DynNGDBehav;
  52. GLCone1 = (TGLCone *)(GLDummyCube1->AddNewChild(__classid(TGLCone)));
  53. GLCone1->Material->FrontProperties->Diffuse->RandomColor();
  54. GLCone1->Position->SetPoint(Random(), 2, Random());
  55. DynNGDBehav = (TGLNGDDynamic *)GLCone1->GetOrCreateBehaviour(__classid(TGLNGDDynamic));
  56. DynNGDBehav->Manager = GLNGDManager1;
  57. }
  58. //---------------------------------------------------------------------------
  59. void __fastcall TForm1::Button4Click(TObject *Sender)
  60. {
  61. TGLCylinder *GLCylinder1;
  62. TGLNGDDynamic *DynNGDBehav;
  63. GLCylinder1 = (TGLCylinder *)(GLDummyCube1->AddNewChild(__classid(TGLCylinder)));
  64. GLCylinder1->Material->FrontProperties->Diffuse->RandomColor();
  65. GLCylinder1->Position->SetPoint(Random(), 2, Random());
  66. DynNGDBehav = (TGLNGDDynamic *)GLCylinder1->GetOrCreateBehaviour(__classid(TGLNGDDynamic));
  67. DynNGDBehav->Manager = GLNGDManager1;
  68. }
  69. //---------------------------------------------------------------------------
  70. void __fastcall TForm1::Button5Click(TObject *Sender)
  71. {
  72. TGLCapsule *GLCapsule1;
  73. TGLNGDDynamic *DynNGDBehav;
  74. GLCapsule1 = (TGLCapsule *)(GLDummyCube1->AddNewChild(__classid(TGLCapsule)));
  75. GLCapsule1->Material->FrontProperties->Diffuse->RandomColor();
  76. GLCapsule1->Position->SetPoint(Random(), 2, Random());
  77. GLCapsule1->PitchAngle = 90;
  78. DynNGDBehav = (TGLNGDDynamic *)GLCapsule1->GetOrCreateBehaviour(__classid(TGLNGDDynamic));
  79. DynNGDBehav->Manager = GLNGDManager1;
  80. }
  81. //---------------------------------------------------------------------------
  82. void __fastcall TForm1::Button6Click(TObject *Sender)
  83. {
  84. GLDummyCube1->DeleteChildren();
  85. GLSceneViewer1->Invalidate();
  86. }
  87. //---------------------------------------------------------------------------
  88. void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
  89. const double newTime)
  90. {
  91. GLNGDManager1->Step(deltaTime);
  92. GLResolutionIndependantHUDText1->Text = "Bodycount:=" + IntToStr
  93. (GLNGDManager1->NewtonBodyCount);
  94. }