123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- unit fLiningShader;
- interface
- uses
- System.SysUtils,
- System.Classes,
- Vcl.Graphics,
- Vcl.Controls,
- Vcl.Forms,
- Vcl.Dialogs,
- Vcl.StdCtrls,
- Vcl.ExtCtrls,
- GLS.Scene,
- GLS.Objects,
- GLS.SceneViewer,
- GLS.Texture,
- GLS.GeomObjects,
- GLSL.LineShaders,
-
- GLS.Material,
- GLS.Coordinates,
- GLS.BaseClasses;
- type
- TFormLiningShader = class(TForm)
- GLScene1: TGLScene;
- GLSceneViewer1: TGLSceneViewer;
- GLCamera1: TGLCamera;
- GLLightSource1: TGLLightSource;
- Torus1: TGLTorus;
- Sphere1: TGLSphere;
- GLMaterialLibrary1: TGLMaterialLibrary;
- GLAnnulusOutlined: TGLAnnulus;
- GLAnnulusPink: TGLAnnulus;
- GLCubeGreen: TGLCube;
- GLCubeTransparent: TGLCube;
- GLOutlineShader1: TGLOutlineShader;
- GLHiddenLineShader1: TGLHiddenLineShader;
- GLHiddenLineShader2: TGLHiddenLineShader;
- GLHiddenLineShader3: TGLHiddenLineShader;
- GLHiddenLineShader4: TGLHiddenLineShader;
- Panel1: TPanel;
- CheckBox1: TCheckBox;
- GroupBox1: TGroupBox;
- CheckBox2: TCheckBox;
- CheckBox3: TCheckBox;
- Label1: TLabel;
- CheckBox4: TCheckBox;
- Label2: TLabel;
- Label3: TLabel;
- GLHiddenLineShader5: TGLHiddenLineShader;
- GLAnnulusDotted: TGLAnnulus;
- Bevel1: TBevel;
- Panel2: TPanel;
- CheckBox5: TCheckBox;
- CheckBox6: TCheckBox;
- Bevel2: TBevel;
- procedure GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- procedure GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
- X, Y: Integer);
- procedure CheckBox1Click(Sender: TObject);
- procedure CheckBox2Click(Sender: TObject);
- procedure CheckBox3Click(Sender: TObject);
- procedure CheckBox4Click(Sender: TObject);
- procedure CheckBox5Click(Sender: TObject);
- procedure CheckBox6Click(Sender: TObject);
- public
- mx, my: Integer;
- end;
- var
- FormLiningShader: TFormLiningShader;
- // --------------------------------------
- implementation
- // --------------------------------------
- {$R *.dfm}
- procedure TFormLiningShader.CheckBox1Click(Sender: TObject);
- begin
- GLOutlineShader1.Enabled := CheckBox1.Checked;
- end;
- procedure TFormLiningShader.CheckBox2Click(Sender: TObject);
- begin
- GLHiddenLineShader2.Enabled := CheckBox2.Checked;
- end;
- procedure TFormLiningShader.CheckBox3Click(Sender: TObject);
- begin
- GLHiddenLineShader2.Solid := CheckBox3.Checked;
- end;
- procedure TFormLiningShader.CheckBox4Click(Sender: TObject);
- begin
- with GLHiddenLineShader2.BackLine do
- if CheckBox4.Checked then
- Pattern := $FF00 // bit pattern
- else
- Pattern := $FFFF;
- end;
- procedure TFormLiningShader.CheckBox5Click(Sender: TObject);
- begin
- GLHiddenLineShader2.SurfaceLit := CheckBox5.Checked;
- end;
- procedure TFormLiningShader.CheckBox6Click(Sender: TObject);
- begin
- if CheckBox6.Checked then
- GLHiddenLineShader2.ShadeModel := smFlat
- else
- GLHiddenLineShader2.ShadeModel := smSmooth;
- end;
- //
- // Classic mouse movement bits
- //
- procedure TFormLiningShader.GLSceneViewer1MouseDown(Sender: TObject; Button: TMouseButton;
- Shift: TShiftState; X, Y: Integer);
- begin
- mx := X;
- my := Y;
- end;
- procedure TFormLiningShader.GLSceneViewer1MouseMove(Sender: TObject; Shift: TShiftState;
- X, Y: Integer);
- begin
- if Shift = [ssLeft] then
- GLCamera1.MoveAroundTarget(my - Y, mx - X)
- else if Shift = [ssRight] then
- GLCamera1.RotateTarget(my - Y, mx - X);
- mx := X;
- my := Y;
- end;
- end.
|