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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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