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 "GLBaseClasses"
  8. #pragma link "GLCadencer"
  9. #pragma link "GLCoordinates"
  10. #pragma link "GLCrossPlatform"
  11. #pragma link "GLNGDManager"
  12. #pragma link "GLObjects"
  13. #pragma link "GLScene"
  14. #pragma link "GLSimpleNavigation"
  15. #pragma link "GLWin32Viewer"
  16. #pragma resource "*.dfm"
  17. TForm1 *Form1;
  18. //---------------------------------------------------------------------------
  19. __fastcall TForm1::TForm1(TComponent* Owner)
  20. : TForm(Owner)
  21. {
  22. }
  23. //---------------------------------------------------------------------------
  24. void __fastcall TForm1::FormCreate(TObject *Sender)
  25. {
  26. TNGDSurfaceItem *SurfaceTrampoline;
  27. TNGDSurfaceItem *SurfaceFriction;
  28. TNGDSurfaceItem *SurfaceCube2;
  29. TNGDSurfaceItem *SurfaceCube3;
  30. TNGDSurfaceItem *SurfaceCube4;
  31. TNGDSurfaceItem *SurfaceSphere1_Sphere2_Cube1;
  32. TNGDSurfacePair *ObjectOnTrampoline;
  33. TNGDSurfacePair *FrictionOnCube2;
  34. TNGDSurfacePair *FrictionOnCube3;
  35. TNGDSurfacePair *FrictionOnCube4;
  36. // Get each SurfaceItem
  37. SurfaceTrampoline = (TNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[0];
  38. SurfaceFriction = (TNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[1];
  39. SurfaceCube2 = (TNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[2];
  40. SurfaceCube3 = (TNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[3];
  41. SurfaceCube4 = (TNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[4];
  42. SurfaceSphere1_Sphere2_Cube1 = (TNGDSurfaceItem *)GLNGDManager1->NewtonSurfaceItem->Items[5];
  43. // Set them to Behaviours
  44. GetNGDStatic(Trampoline)->NGDSurfaceItem = SurfaceTrampoline;
  45. GetNGDStatic(Friction)->NGDSurfaceItem = SurfaceFriction;
  46. GetNGDDynamic(GLCube2)->NGDSurfaceItem = SurfaceCube2;
  47. GetNGDDynamic(GLCube3)->NGDSurfaceItem = SurfaceCube3;
  48. GetNGDDynamic(GLCube4)->NGDSurfaceItem = SurfaceCube4;
  49. GetNGDDynamic(GLCube1)->NGDSurfaceItem = SurfaceSphere1_Sphere2_Cube1;
  50. GetNGDDynamic(GLSphere1)->NGDSurfaceItem = SurfaceSphere1_Sphere2_Cube1;
  51. GetNGDDynamic(GLSphere2)->NGDSurfaceItem = SurfaceSphere1_Sphere2_Cube1;
  52. // Get each SurfacePair
  53. ObjectOnTrampoline = (TNGDSurfacePair *)GLNGDManager1->NewtonSurfacePair->Items[0];
  54. FrictionOnCube2 = (TNGDSurfacePair *)GLNGDManager1->NewtonSurfacePair->Items[1];
  55. FrictionOnCube3 = (TNGDSurfacePair *)GLNGDManager1->NewtonSurfacePair->Items[2];
  56. FrictionOnCube4 = (TNGDSurfacePair *)GLNGDManager1->NewtonSurfacePair->Items[3];
  57. // Set SurfaceItems to SurfacePair
  58. ObjectOnTrampoline->SetMaterialItems(SurfaceTrampoline, SurfaceSphere1_Sphere2_Cube1);
  59. FrictionOnCube2->SetMaterialItems(SurfaceFriction, SurfaceCube2);
  60. FrictionOnCube3->SetMaterialItems(SurfaceFriction, SurfaceCube3);
  61. FrictionOnCube4->SetMaterialItems(SurfaceFriction, SurfaceCube4);
  62. }
  63. //---------------------------------------------------------------------------
  64. void __fastcall TForm1::GLCadencer1Progress(TObject *Sender, const double deltaTime,
  65. const double newTime)
  66. {
  67. GLNGDManager1->Step(deltaTime);
  68. }
  69. //---------------------------------------------------------------------------