123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- unit fNewtonSimple;
- interface
- uses
- System.SysUtils,
- System.Variants,
- System.Classes,
- Vcl.Graphics,
- Vcl.Controls,
- Vcl.Forms,
- Vcl.Dialogs,
- Vcl.StdCtrls,
- Vcl.ExtCtrls,
- GLS.Scene,
- GLS.Objects,
- GLS.Coordinates,
- GLS.SimpleNavigation,
- GLS.Cadencer,
- GLS.SceneViewer,
- GLS.Color,
-
- GLS.BaseClasses,
- Physics.NGDManager,
- GLS.GeomObjects,
- GLS.BitmapFont,
- GLS.WindowsFont,
- GLS.HUDObjects;
- type
- TFormNewtonSimple = class(TForm)
- GLScene1: TGLScene;
- GLSceneViewer1: TGLSceneViewer;
- GLCadencer1: TGLCadencer;
- GLSimpleNavigation1: TGLSimpleNavigation;
- GLCamera1: TGLCamera;
- GLLightSource1: TGLLightSource;
- Floor: TGLCube;
- GLDummyCube1: TGLDummyCube;
- GLNGDManager1: TGLNGDManager;
- GLResolutionIndependantHUDText1: TGLResolutionIndependantHUDText;
- Panel1: TPanel;
- btnAddCube: TButton;
- btnAddSphere: TButton;
- btnAddCone: TButton;
- btnAddCylinder: TButton;
- btnAddCapsule: TButton;
- btnRemoveAll: TButton;
- procedure GLCadencer1Progress(Sender: TObject;
- const deltaTime, newTime: Double);
- procedure btnAddCubeClick(Sender: TObject);
- procedure btnAddSphereClick(Sender: TObject);
- procedure btnAddConeClick(Sender: TObject);
- procedure btnAddCylinderClick(Sender: TObject);
- procedure btnAddCapsuleClick(Sender: TObject);
- procedure btnRemoveAllClick(Sender: TObject);
- private
-
- public
-
- end;
- var
- FormNewtonSimple: TFormNewtonSimple;
- implementation
- {$R *.dfm}
- procedure TFormNewtonSimple.btnAddCubeClick(Sender: TObject);
- var
- GLCube1: TGLCube;
- DynNGDBehav: TGLNGDDynamic;
- begin
- GLCube1 := TGLCube.CreateAsChild(GLDummyCube1);
- GLCube1.Material.FrontProperties.Diffuse.RandomColor;
- DynNGDBehav := GLCube1.GetOrCreateBehaviour(TGLNGDDynamic) as TGLNGDDynamic;
- DynNGDBehav.Manager := GLNGDManager1;
- end;
- procedure TFormNewtonSimple.btnAddSphereClick(Sender: TObject);
- var
- GLSphere1: TGLSphere;
- DynNGDBehav: TGLNGDDynamic;
- begin
- GLSphere1 := TGLSphere.CreateAsChild(GLDummyCube1);
- GLSphere1.Material.FrontProperties.Diffuse.RandomColor;
- DynNGDBehav := GLSphere1.GetOrCreateBehaviour(TGLNGDDynamic) as TGLNGDDynamic;
- DynNGDBehav.Manager := GLNGDManager1;
- end;
- procedure TFormNewtonSimple.btnAddConeClick(Sender: TObject);
- var
- GLCone1: TGLCone;
- DynNGDBehav: TGLNGDDynamic;
- begin
- GLCone1 := TGLCone.CreateAsChild(GLDummyCube1);
- GLCone1.Material.FrontProperties.Diffuse.RandomColor;
- DynNGDBehav := GLCone1.GetOrCreateBehaviour(TGLNGDDynamic) as TGLNGDDynamic;
- DynNGDBehav.Manager := GLNGDManager1;
- end;
- procedure TFormNewtonSimple.btnAddCylinderClick(Sender: TObject);
- var
- GLCylinder1: TGLCylinder;
- DynNGDBehav: TGLNGDDynamic;
- begin
- GLCylinder1 := TGLCylinder.CreateAsChild(GLDummyCube1);
- GLCylinder1.Material.FrontProperties.Diffuse.RandomColor;
- DynNGDBehav := GLCylinder1.GetOrCreateBehaviour(TGLNGDDynamic)
- as TGLNGDDynamic;
- DynNGDBehav.Manager := GLNGDManager1;
- end;
- procedure TFormNewtonSimple.btnAddCapsuleClick(Sender: TObject);
- var
- GLCapsule1: TGLCapsule;
- DynNGDBehav: TGLNGDDynamic;
- begin
- GLCapsule1 := TGLCapsule.CreateAsChild(GLDummyCube1);
- GLCapsule1.Material.FrontProperties.Diffuse.RandomColor;
- DynNGDBehav := GLCapsule1.GetOrCreateBehaviour(TGLNGDDynamic)
- as TGLNGDDynamic;
- DynNGDBehav.Manager := GLNGDManager1;
- end;
- procedure TFormNewtonSimple.btnRemoveAllClick(Sender: TObject);
- begin
- GLDummyCube1.DeleteChildren;
- GLSceneViewer1.Invalidate;
- end;
- procedure TFormNewtonSimple.GLCadencer1Progress(Sender: TObject;
- const deltaTime, newTime: Double);
- begin
- GLNGDManager1.Step(deltaTime);
- GLResolutionIndependantHUDText1.Text := 'Bodycount:=' + inttostr
- (GLNGDManager1.NewtonBodyCount);
- end;
- end.
|