something new...:)

This commit is contained in:
zueuk 2006-01-05 18:38:34 +00:00
parent 5ee487cc41
commit e3d705bd3d
11 changed files with 129 additions and 79 deletions

View File

@ -1,11 +1,11 @@
object AdjustForm: TAdjustForm
Left = 363
Top = 245
Left = 364
Top = 246
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = 'Adjust'
ClientHeight = 263
ClientWidth = 390
ClientHeight = 261
ClientWidth = 388
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@ -170,10 +170,10 @@ object AdjustForm: TAdjustForm
end
object PageControl: TPageControl
Left = 0
Top = 133
Width = 390
Top = 131
Width = 388
Height = 130
ActivePage = TabSheet1
ActivePage = TabSheet2
Align = alBottom
TabOrder = 1
object TabSheet1: TTabSheet
@ -478,6 +478,7 @@ object AdjustForm: TAdjustForm
Width = 75
Height = 21
TabOrder = 8
OnExit = editPPUValidate
OnKeyPress = editPPUKeyPress
end
end
@ -672,7 +673,7 @@ object AdjustForm: TAdjustForm
object GradientPnl: TPanel
Left = 0
Top = 0
Width = 382
Width = 380
Height = 49
Align = alTop
BevelOuter = bvLowered

View File

@ -250,6 +250,7 @@ type
procedure btnApplySizeClick(Sender: TObject);
procedure mnuInstantPreviewClick(Sender: TObject);
procedure editPPUKeyPress(Sender: TObject; var Key: Char);
procedure editPPUValidate(Sender: TObject);
private
Resetting: boolean;
@ -375,7 +376,7 @@ begin
BackupPal := cp.cmap;
Resetting := False;
editPPU.Text := FloatToStr(cp.pixels_per_unit);
editPPU.Text := Format('%.6g', [cp.pixels_per_unit]);
end; //***
DrawPreview;
end;
@ -1886,22 +1887,27 @@ begin
end;
procedure TAdjustForm.editPPUKeyPress(Sender: TObject; var Key: Char);
var
t: double;
begin
if key=#13 then
begin
key := #0;
try
t:=strtofloat(editPPU.Text);
except
exit;
end;
MainForm.UpdateUndo;
cp.pixels_per_unit:=t;
UpdateFlame;
editPPUValidate(Sender);
end;
end;
procedure TAdjustForm.editPPUValidate(Sender: TObject);
var
v: double;
begin
try
v := strtofloat(editPPU.Text);
except
exit;
end;
MainForm.UpdateUndo;
cp.pixels_per_unit := v;
UpdateFlame;
end;
end.

View File

@ -1,7 +1,7 @@
object EditForm: TEditForm
Left = 302
Top = 226
Width = 586
Left = 303
Top = 227
Width = 584
Height = 573
Caption = 'Transform Editor'
Color = clBtnFace
@ -55,7 +55,7 @@ object EditForm: TEditForm
object StatusBar: TStatusBar
Left = 0
Top = 530
Width = 578
Width = 576
Height = 15
Panels = <
item
@ -71,7 +71,7 @@ object EditForm: TEditForm
object topPnl: TPanel
Left = 0
Top = 0
Width = 578
Width = 576
Height = 24
Align = alTop
BevelOuter = bvSpace
@ -268,12 +268,12 @@ object EditForm: TEditForm
object EditPnl: TPanel
Left = 0
Top = 24
Width = 578
Width = 576
Height = 506
Align = alClient
TabOrder = 1
object Splitter1: TSplitter
Left = 396
Left = 394
Top = 1
Width = 9
Height = 504
@ -286,7 +286,7 @@ object EditForm: TEditForm
object GrphPnl: TPanel
Left = 1
Top = 1
Width = 395
Width = 393
Height = 504
Align = alClient
BevelOuter = bvNone
@ -294,7 +294,7 @@ object EditForm: TEditForm
TabOrder = 0
end
object RightPanel: TPanel
Left = 405
Left = 403
Top = 1
Width = 172
Height = 504
@ -367,9 +367,9 @@ object EditForm: TEditForm
end
object PageControl: TPageControl
Left = 1
Top = 30
Top = 32
Width = 170
Height = 335
Height = 333
ActivePage = TriangleTab
Align = alBottom
Anchors = [akLeft, akTop, akRight, akBottom]
@ -382,7 +382,7 @@ object EditForm: TEditForm
Left = 0
Top = 0
Width = 162
Height = 289
Height = 287
HorzScrollBar.Visible = False
VertScrollBar.Smooth = True
VertScrollBar.Style = ssFlat
@ -401,7 +401,7 @@ object EditForm: TEditForm
TabOrder = 0
object LabelB: TLabel
Left = 4
Top = 32
Top = 56
Width = 12
Height = 13
Caption = 'O:'
@ -415,7 +415,7 @@ object EditForm: TEditForm
end
object LabelC: TLabel
Left = 4
Top = 56
Top = 32
Width = 10
Height = 13
Caption = 'Y:'
@ -932,7 +932,7 @@ object EditForm: TEditForm
end
object txtCy: TEdit
Left = 88
Top = 52
Top = 28
Width = 65
Height = 21
AutoSelect = False
@ -943,7 +943,7 @@ object EditForm: TEditForm
end
object txtCx: TEdit
Left = 20
Top = 52
Top = 28
Width = 65
Height = 21
AutoSelect = False
@ -954,7 +954,7 @@ object EditForm: TEditForm
end
object txtBy: TEdit
Left = 88
Top = 28
Top = 52
Width = 65
Height = 21
AutoSelect = False
@ -965,7 +965,7 @@ object EditForm: TEditForm
end
object txtBx: TEdit
Left = 20
Top = 28
Top = 52
Width = 65
Height = 21
AutoSelect = False
@ -1008,6 +1008,7 @@ object EditForm: TEditForm
Text = '0.1'
OnExit = txtValidateValue
OnKeyPress = txtValKeyPress
OnSelect = txtValidateValue
Items.Strings = (
'1'
'0.5'
@ -1028,6 +1029,7 @@ object EditForm: TEditForm
Text = '15'
OnExit = txtValidateValue
OnKeyPress = txtValKeyPress
OnSelect = txtValidateValue
Items.Strings = (
'5'
'15'
@ -1050,6 +1052,7 @@ object EditForm: TEditForm
Text = '125'
OnExit = txtValidateValue
OnKeyPress = txtValKeyPress
OnSelect = txtValidateValue
Items.Strings = (
'110'
'125'
@ -1525,8 +1528,9 @@ object EditForm: TEditForm
ItemIndex = 0
TabOrder = 3
Text = '0'
OnExit = txtSymmetryExit
OnExit = txtSymmetrySet
OnKeyPress = txtSymmetryKeyPress
OnSelect = txtSymmetrySet
Items.Strings = (
'0'
'1')

View File

@ -28,7 +28,7 @@ uses
const
// PixelCountMax = 32768;
WM_PTHREAD_COMPLETE = WM_APP + 5438;
// WM_PTHREAD_COMPLETE = WM_APP + 5438;
crEditArrow = 20;
crEditMove = 21;
@ -222,7 +222,7 @@ type
procedure chkHelpersClick(Sender: TObject);
procedure txtXFormColorExit(Sender: TObject);
procedure txtXFormColorKeyPress(Sender: TObject; var Key: Char);
procedure txtSymmetryExit(Sender: TObject);
procedure txtSymmetrySet(Sender: TObject);
procedure txtSymmetryKeyPress(Sender: TObject; var Key: Char);
procedure btTrgRotateLeftClick(Sender: TObject);
@ -305,6 +305,7 @@ type
MousePos: TPoint; // in screen coordinates
mouseOverTriangle, mouseOverCorner: integer;
mouseOverPos: TSPoint;
varDragMode: boolean;
varDragIndex :integer;
@ -1326,7 +1327,15 @@ end;
Pen.Style := psSolid;
pen.Color := clWhite;
brush.Color := clSilver;
Ellipse(a.x - 2, a.y - 2, a.x + 2, a.y + 2);
if pivotMode = pivotLocal then i := 2
else i := 3;
Ellipse(a.x - i, a.y - i, a.x + i, a.y + i);
if editMode = modePick then begin // hmm...
a := ToScreen(mouseOverPos.x, mouseOverPos.y);
brush.Style := bsClear;
Ellipse(a.x - i, a.y - i, a.x + i, a.y + i);
end;
if TWinControl(Sender).Focused then
begin
@ -1371,7 +1380,7 @@ begin
TriangleView.OnPaint := TriangleViewPaint;
TriangleView.OnDblClick := mnuAutoZoomClick;//TriangleViewDblClick;
TriangleView.OnDblClick := mnuAutoZoomClick;
TriangleView.OnMouseDown := TriangleViewMouseDown;
TriangleView.OnMouseMove := TriangleViewMouseMove;
TriangleView.OnMouseUp := TriangleViewMouseUp;
@ -1494,10 +1503,19 @@ begin
olddist := Hypot(oldx, oldy);
// --
// -- for Pick Pivot
if editMode = modePick then
begin
mouseOverPos.x := MainTriangles[mouseOverTriangle].x[mouseOverCorner];
mouseOverPos.y := MainTriangles[mouseOverTriangle].y[mouseOverCorner];
end;
// ---
goto FoundCorner;
end;
end;
mouseOverCorner:=-1;
mouseOverPos.x := fx;
mouseOverPos.y := fy;
i := InsideTriangle(fx, fy);
if i >= 0 then mouseOverTriangle:=i
@ -1719,6 +1737,7 @@ Skip2:
else StatusBar.Panels[2].Text := '';
TriangleView.Refresh;
end
else if editMode = modePick then TriangleView.Refresh; // hmm...
end;
procedure TEditForm.TriangleViewMouseDown(Sender: TObject; Button: TMouseButton;
@ -1736,6 +1755,11 @@ begin
if editMode = modePick then
begin
if (mouseOverCorner >= 0) then // snap to point
begin
fx := MainTriangles[mouseOverTriangle].x[mouseOverCorner];
fy := MainTriangles[mouseOverTriangle].y[mouseOverCorner];
end;
if PivotMode = pivotLocal then
with MainTriangles[SelectedTriangle] do begin
LocalPivot.x :=
@ -2637,7 +2661,7 @@ begin
end;
end;
procedure TEditForm.txtSymmetryExit(Sender: TObject);
procedure TEditForm.txtSymmetrySet(Sender: TObject);
var
Allow: boolean;
NewVal, OldVal: double;
@ -3183,6 +3207,10 @@ begin
VK_END: btTrgScaleDownClick(Sender);
VK_INSERT: mnuDupClick(Sender);
VK_DELETE: mnuDeleteClick(Sender);
// can be changed in the future...
Ord('R'): btnResetPivotClick(Sender);
Ord('P'): btnPickPivotClick(Sender);
end;
end;
@ -3724,6 +3752,14 @@ end;
procedure TEditForm.btnResetPivotClick(Sender: TObject);
begin
if editMode = modePick then begin
editMode := oldMode;
oldMode := modeNone;
// hack: to generate MouseMove event
GetCursorPos(MousePos);
SetCursorPos(MousePos.x, MousePos.y);
//
end;
if PivotMode = pivotLocal then
begin
LocalPivot.x := 0;
@ -3742,12 +3778,16 @@ begin
if editMode = modePick then begin
editMode := oldMode;
oldMode := modeNone;
// hack: to generate MouseMove event
GetCursorPos(MousePos);
SetCursorPos(MousePos.x, MousePos.y);
//
exit;
end;
if oldMode <> modeNone then exit;
oldMode := editMode;
editMode := modePick;
TriangleView.Cursor := crCross; //...
//TriangleView.Cursor := crCross; //...
btnPickPivot.Down := true;
end;

View File

@ -1,11 +1,11 @@
object RenderForm: TRenderForm
Left = 286
Top = 251
Left = 287
Top = 252
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = 'RenderForm'
ClientHeight = 416
ClientWidth = 424
ClientHeight = 414
ClientWidth = 422
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@ -51,8 +51,8 @@ object RenderForm: TRenderForm
TextHeight = 13
object ProgressBar: TProgressBar
Left = 0
Top = 384
Width = 424
Top = 382
Width = 422
Height = 13
Align = alBottom
TabOrder = 0
@ -437,8 +437,8 @@ object RenderForm: TRenderForm
end
object StatusBar: TStatusBar
Left = 0
Top = 397
Width = 424
Top = 395
Width = 422
Height = 19
Panels = <
item

View File

@ -704,6 +704,7 @@ begin
end;
ImageWidth := StrToInt(cbWidth.Text);
ImageHeight := StrToInt(cbHeight.Text);
Sample_Density := StrToFloat(txtDensity.Text);
ShowMemoryStatus;
end;

View File

@ -1,10 +1,10 @@
object FullscreenForm: TFullscreenForm
Left = 438
Top = 324
Left = 439
Top = 325
BorderStyle = bsNone
Caption = 'FullscreenForm'
ClientHeight = 133
ClientWidth = 188
ClientHeight = 131
ClientWidth = 186
Color = clBlack
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@ -22,8 +22,8 @@ object FullscreenForm: TFullscreenForm
object Image: TImage
Left = 0
Top = 0
Width = 188
Height = 133
Width = 186
Height = 131
Align = alClient
OnDblClick = ImageDblClick
end

View File

@ -1,7 +1,7 @@
object MainForm: TMainForm
Left = 400
Top = 157
Width = 731
Left = 401
Top = 158
Width = 729
Height = 530
Caption = 'Apophysis'
Color = clBtnFace
@ -34,7 +34,7 @@ object MainForm: TMainForm
object ToolBar: TToolBar
Left = 0
Top = 0
Width = 723
Width = 721
Height = 28
BorderWidth = 1
Flat = True
@ -116,9 +116,7 @@ object MainForm: TMainForm
Hint = 'Rendering quality|Rendering quality of the main window'
AutoComplete = False
ItemHeight = 13
ItemIndex = 0
TabOrder = 0
Text = '5'
OnExit = tbQualityBoxSet
OnKeyPress = tbQualityBoxKeyPress
OnSelect = tbQualityBoxSet
@ -306,7 +304,7 @@ object MainForm: TMainForm
object BackPanel: TPanel
Left = 164
Top = 28
Width = 559
Width = 557
Height = 435
Align = alClient
BevelInner = bvLowered
@ -317,7 +315,7 @@ object MainForm: TMainForm
object Image: TImage
Left = 1
Top = 1
Width = 557
Width = 555
Height = 433
Align = alClient
AutoSize = True
@ -332,7 +330,7 @@ object MainForm: TMainForm
object StatusBar: TStatusBar
Left = 0
Top = 463
Width = 723
Width = 721
Height = 19
Panels = <
item
@ -2485,7 +2483,6 @@ object MainForm: TMainForm
Top = 56
object MainFile: TMenuItem
Caption = '&File'
Hint = 'Contains commands for working with files'
OnClick = MainFileClick
object mnuOpen: TMenuItem
Caption = '&Open...'
@ -2575,7 +2572,6 @@ object MainForm: TMainForm
end
object MainEdit: TMenuItem
Caption = '&Edit'
Hint = 'Contains edit commands'
object mnuUndo: TMenuItem
Caption = '&Undo'
Enabled = False
@ -2682,7 +2678,6 @@ object MainForm: TMainForm
end
object F1: TMenuItem
Caption = 'Flame'
Hint = 'Contains commands for manipulating the flame'
object mnuResetLocation: TMenuItem
Caption = 'Reset Location'
Hint = 'Recalculate flame location'
@ -2740,7 +2735,6 @@ object MainForm: TMainForm
end
object mnuVar: TMenuItem
Caption = 'Variation'
Hint = 'Set the flame variation to use'
object mnuVRandom: TMenuItem
Caption = 'Random'
Checked = True
@ -2797,7 +2791,6 @@ object MainForm: TMainForm
end
object mnuView: TMenuItem
Caption = 'Options'
Hint = 'Contains commands for customizing Apophysis'
object mnuToolbar: TMenuItem
Caption = 'Toolbar'
Checked = True

View File

@ -1,11 +1,11 @@
object MutateForm: TMutateForm
Left = 857
Top = 311
Left = 858
Top = 312
BorderIcons = [biSystemMenu, biMinimize]
BorderStyle = bsSingle
Caption = 'Mutation'
ClientHeight = 383
ClientWidth = 372
ClientHeight = 381
ClientWidth = 370
Color = clBtnFace
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@ -285,6 +285,7 @@ object MutateForm: TMutateForm
Width = 145
Height = 21
Style = csDropDownList
DropDownCount = 16
ItemHeight = 13
TabOrder = 1
OnChange = cmbTrendChange

View File

@ -121,9 +121,9 @@ begin
MainCp.Copy(cps[0]);
Transforms := MainCp.TrianglesFromCP(MainTriangles);
MainCp.cmap := cmap;
MainCp.name := name;
MainCp.nick := nick;
mainCp.url := url;
MainCp.name := name; // this is kinda funny,
MainCp.nick := nick; // like author's nick can change during mutation?
mainCp.url := url; // hee-heheee :-)
if mnuResetLocation.checked then
begin
MainForm.Mainzoom := cps[0].zoom;

View File

@ -2713,6 +2713,9 @@ begin
Scripter.AddConstant('V_COSINE', 20);
Scripter.AddConstant('V_RINGS', 21);
Scripter.AddConstant('V_FAN', 22);
Scripter.AddConstant('V_EYEFISH', 23);
Scripter.AddConstant('V_BUBBLE', 24);
Scripter.AddConstant('V_CYLINDER', 25);
Scripter.AddConstant('V_RANDOM', -1);
{ Variables }
Scripter.AddVariable('SelectedTransform', EditForm.SelectedTriangle);
@ -2979,6 +2982,7 @@ begin
dest.c[2, 0] := source.c[2, 0];
dest.c[2, 1] := source.c[2, 1];
dest.color := source.color;
// hmm, why no symmetry here? // dest.symmetry := source.symmetry;
dest.density := source.density;
for i := 0 to NRVAR - 1 do
dest.vars[i] := source.vars[i];