| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149 |
- unit fPawnD;
- interface
- uses
- Winapi.OpenGL,
- System.SysUtils,
- System.Classes,
- Vcl.Graphics,
- Vcl.Controls,
- Vcl.Forms,
- Vcl.Dialogs,
- Vcl.StdCtrls,
- Vcl.ComCtrls,
- Vcl.ExtCtrls,
- Vcl.Imaging.JPeg,
- GLS.Scene,
- GLS.Objects,
- GLS.Texture,
- GLS.Extrusion,
- GLS.SceneViewer,
- GLS.Coordinates,
- GLS.BaseClasses,
- GLScene.Utils;
- type
- TFormPawn = class(TForm)
- GLScene1: TGLScene;
- GLSceneViewer1: TGLSceneViewer;
- GLCamera1: TGLCamera;
- GLLightSource1: TGLLightSource;
- DummyCube1: TGLDummyCube;
- RotationSolid1: TGLRevolutionSolid;
- Timer1: TTimer;
- Panel1: TPanel;
- Label1: TLabel;
- CheckBox1: TCheckBox;
- CheckBox2: TCheckBox;
- CheckBox3: TCheckBox;
- CheckBox4: TCheckBox;
- Label3: TLabel;
- TrackBar2: TTrackBar;
- Label4: TLabel;
- TrackBar3: TTrackBar;
- Label2: TLabel;
- TrackBar1: TTrackBar;
- LabelTri: TLabel;
- procedure GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState;
- X, Y: Integer);
- procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
- procedure FormCreate(Sender: TObject);
- procedure CheckBox1Click(Sender: TObject);
- procedure CheckBox2Click(Sender: TObject);
- procedure CheckBox3Click(Sender: TObject);
- procedure TrackBar1Change(Sender: TObject);
- procedure CheckBox4Click(Sender: TObject);
- procedure Timer1Timer(Sender: TObject);
- procedure TrackBar2Change(Sender: TObject);
- procedure TrackBar3Change(Sender: TObject);
- private
- PathToData: TFileName;
- public
- mx, my: Integer;
- end;
- var
- FormPawn: TFormPawn;
- implementation
- {$R *.DFM}
- procedure TFormPawn.FormCreate(Sender: TObject);
- begin
- PathToData := GetCurrentAssetPath();
- SetCurrentDir(PathToData + '\texture');
- RotationSolid1.Material.Texture.Image.LoadFromFile('ashwood.jpg');
- end;
- procedure TFormPawn.CheckBox1Click(Sender: TObject);
- begin
- if CheckBox1.Checked then
- RotationSolid1.SplineMode := lsmCubicSpline
- else
- RotationSolid1.SplineMode := lsmLines;
- end;
- procedure TFormPawn.CheckBox2Click(Sender: TObject);
- begin
- if CheckBox2.Checked then
- RotationSolid1.Normals := nsSmooth
- else
- RotationSolid1.Normals := nsFlat;
- end;
- procedure TFormPawn.CheckBox3Click(Sender: TObject);
- begin
- RotationSolid1.Material.Texture.Disabled := not CheckBox3.Checked;
- end;
- procedure TFormPawn.CheckBox4Click(Sender: TObject);
- begin
- if CheckBox4.Checked then
- RotationSolid1.Material.Texture.TextureMode := tmModulate
- else
- RotationSolid1.Material.Texture.TextureMode := tmDecal;
- end;
- procedure TFormPawn.TrackBar1Change(Sender: TObject);
- begin
- RotationSolid1.StopAngle := TrackBar1.Position;
- if TrackBar1.Position = 360 then
- RotationSolid1.Parts := RotationSolid1.Parts - [rspStartPolygon, rspStopPolygon]
- else
- RotationSolid1.Parts := RotationSolid1.Parts + [rspStartPolygon, rspStopPolygon];
- end;
- procedure TFormPawn.TrackBar2Change(Sender: TObject);
- begin
- RotationSolid1.Slices := TrackBar2.Position;
- end;
- procedure TFormPawn.TrackBar3Change(Sender: TObject);
- begin
- RotationSolid1.Division := TrackBar3.Position;
- end;
- procedure TFormPawn.Timer1Timer(Sender: TObject);
- begin
- LabelTri.Caption := Format('%d Triangles', [RotationSolid1.TriangleCount]);
- end;
- procedure TFormPawn.GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- begin
- mx := X;
- my := Y;
- end;
- procedure TFormPawn.GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
- begin
- if Shift <> [] then
- GLCamera1.MoveAroundTarget(my - Y, mx - X);
- mx := X;
- my := Y;
- end;
- end.
|