2
// This unit is part of the GLScene Engine https://github.com/glscene
5
Editor fram for a TGLFaceProperties.
27
TRFaceEditor = class(TFrame)
28
PageControl: TPageControl;
31
TSEmission: TTabSheet;
32
TSSpecular: TTabSheet;
33
CEAmbiant: TRColorEditor;
35
TBEShininess: TRTrackBarEdit;
36
ImageList: TImageList;
37
CEDiffuse: TRColorEditor;
38
CEEmission: TRColorEditor;
39
CESpecular: TRColorEditor;
40
procedure TBEShininessTrackBarChange(Sender: TObject);
44
FOnChange : TNotifyEvent;
46
FFaceProperties : TGLFaceProperties;
47
procedure SetGLFaceProperties(const val : TGLFaceProperties);
48
procedure OnColorChange(Sender : TObject);
52
constructor Create(AOwner : TComponent); override;
53
destructor Destroy; override;
55
property OnChange : TNotifyEvent read FOnChange write FOnChange;
56
property FaceProperties : TGLFaceProperties read FFaceProperties write SetGLFaceProperties;
59
//=======================================================
61
//=======================================================
64
constructor TRFaceEditor.Create(AOwner : TComponent);
67
FFaceProperties:=TGLFaceProperties.Create(nil);
68
CEAmbiant.OnChange:=OnColorChange;
69
CEDiffuse.OnChange:=OnColorChange;
70
CEEmission.OnChange:=OnColorChange;
71
CESpecular.OnChange:=OnColorChange;
72
PageControl.DoubleBuffered:=True;
75
destructor TRFaceEditor.Destroy;
81
procedure TRFaceEditor.OnColorChange(Sender : TObject);
86
procedure AddBitmapFor(ce : TRColorEditor);
88
with bmp.Canvas do begin
89
Brush.Color:=ce.PAPreview.Color;
92
ImageList.Add(bmp, nil);
96
if not updating then begin
102
bmpRect:=Rect(0, 0, 16, 16);
104
AddBitmapFor(CEAmbiant);
105
FFaceProperties.Ambient.Color:=CEAmbiant.EditedColor;
106
AddBitmapFor(CEDiffuse);
107
FFaceProperties.Diffuse.Color:=CEDiffuse.EditedColor;
108
AddBitmapFor(CEEmission);
109
FFaceProperties.Emission.Color:=CEEmission.EditedColor;
110
AddBitmapFor(CESpecular);
111
FFaceProperties.Specular.Color:=CESpecular.EditedColor;
116
if Assigned(FOnChange) then FOnChange(Self);
120
procedure TRFaceEditor.TBEShininessTrackBarChange(Sender: TObject);
122
if not updating then begin
123
TBEShininess.TrackBarChange(Sender);
124
FFaceProperties.Shininess:=TBEShininess.Value;
125
if Assigned(FOnChange) then FOnChange(Self);
129
// SetGLFaceProperties
131
procedure TRFaceEditor.SetGLFaceProperties(const val : TGLFaceProperties);
135
CEAmbiant.EditedColor:=val.Ambient.Color;
136
CEDiffuse.EditedColor:=val.Diffuse.Color;
137
CEEmission.EditedColor:=val.Emission.Color;
138
CESpecular.EditedColor:=val.Specular.Color;
139
TBEShininess.Value:=val.Shininess;
144
TBEShininessTrackBarChange(Self);
150
{$I FRFaceEditor.lrs}