Unit1.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. //---------------------------------------------------------------------------
  2. #include <vcl.h>
  3. #pragma hdrstop
  4. #include "Unit1.h"
  5. //---------------------------------------------------------------------------
  6. #pragma package(smart_init)
  7. #pragma link "GLS.BaseClasses"
  8. #pragma link "GLS.Cadencer"
  9. #pragma link "GLS.Coordinates"
  10. #pragma link "GLS.NGDManager"
  11. #pragma link "GLS.Objects"
  12. #pragma link "GLS.Scene"
  13. #pragma link "GLS.SimpleNavigation"
  14. #pragma link "GLS.SceneViewer"
  15. #pragma resource "*.dfm"
  16. TForm1 *Form1;
  17. //---------------------------------------------------------------------------
  18. __fastcall TForm1::TForm1(TComponent* Owner)
  19. : TForm(Owner)
  20. {
  21. }
  22. //---------------------------------------------------------------------------
  23. void __fastcall TForm1::FormCreate(TObject *Sender)
  24. {
  25. TGLNGDSurfaceItem *SurfaceTrampoline;
  26. TGLNGDSurfaceItem *SurfaceFriction;
  27. TGLNGDSurfaceItem *SurfaceCube2;
  28. TGLNGDSurfaceItem *SurfaceCube3;
  29. TGLNGDSurfaceItem *SurfaceCube4;
  30. TGLNGDSurfaceItem *SurfaceSphere1_Sphere2_Cube1;
  31. TGLNGDSurfacePair *ObjectOnTrampoline;
  32. TGLNGDSurfacePair *FrictionOnCube2;
  33. TGLNGDSurfacePair *FrictionOnCube3;
  34. TGLNGDSurfacePair *FrictionOnCube4;
  35. // Get each SurfaceItem
  36. SurfaceTrampoline = (TGLNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[0];
  37. SurfaceFriction = (TGLNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[1];
  38. SurfaceCube2 = (TGLNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[2];
  39. SurfaceCube3 = (TGLNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[3];
  40. SurfaceCube4 = (TGLNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[4];
  41. SurfaceSphere1_Sphere2_Cube1 = (TGLNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[5];
  42. // Set them to Behaviours
  43. GetNGDStatic(Trampoline)->NGDSurfaceItem = SurfaceTrampoline;
  44. GetNGDStatic(Friction)->NGDSurfaceItem = SurfaceFriction;
  45. GetNGDDynamic(GLCube2)->NGDSurfaceItem = SurfaceCube2;
  46. GetNGDDynamic(GLCube3)->NGDSurfaceItem = SurfaceCube3;
  47. GetNGDDynamic(GLCube4)->NGDSurfaceItem = SurfaceCube4;
  48. GetNGDDynamic(GLCube1)->NGDSurfaceItem = SurfaceSphere1_Sphere2_Cube1;
  49. GetNGDDynamic(GLSphere1)->NGDSurfaceItem = SurfaceSphere1_Sphere2_Cube1;
  50. GetNGDDynamic(GLSphere2)->NGDSurfaceItem = SurfaceSphere1_Sphere2_Cube1;
  51. // Get each SurfacePair
  52. ObjectOnTrampoline = (TGLNGDSurfacePair *)GLNGDManager1->NewtonSurfacePair->Items[0];
  53. FrictionOnCube2 = (TGLNGDSurfacePair *)GLNGDManager1->NewtonSurfacePair->Items[1];
  54. FrictionOnCube3 = (TGLNGDSurfacePair *)GLNGDManager1->NewtonSurfacePair->Items[2];
  55. FrictionOnCube4 = (TGLNGDSurfacePair *)GLNGDManager1->NewtonSurfacePair->Items[3];
  56. // Set SurfaceItems to SurfacePair
  57. ObjectOnTrampoline->SetMaterialItems(SurfaceTrampoline, SurfaceSphere1_Sphere2_Cube1);
  58. FrictionOnCube2->SetMaterialItems(SurfaceFriction, SurfaceCube2);
  59. FrictionOnCube3->SetMaterialItems(SurfaceFriction, SurfaceCube3);
  60. FrictionOnCube4->SetMaterialItems(SurfaceFriction, SurfaceCube4);
  61. }
  62. //---------------------------------------------------------------------------
  63. void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
  64. const double newTime)
  65. {
  66. GLNGDManager1->Step(deltaTime);
  67. }
  68. //---------------------------------------------------------------------------