cleanup before v208 release
This commit is contained in:
parent
afc5843ab6
commit
17c928c4b9
@ -437,7 +437,7 @@ end;
|
|||||||
xf := xform[0];//random(NumXForms)];
|
xf := xform[0];//random(NumXForms)];
|
||||||
for i := 0 to FUSE do begin
|
for i := 0 to FUSE do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then continue;
|
//if xf.RetraceXform then continue;
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
@ -446,33 +446,18 @@ end;
|
|||||||
if UseFinalXform then
|
if UseFinalXform then
|
||||||
for i := 0 to NrPoints - 1 do begin
|
for i := 0 to NrPoints - 1 do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then begin
|
|
||||||
if xf.noPlot then
|
|
||||||
pPoint^.x := MaxDouble // hack
|
|
||||||
else begin
|
|
||||||
xf.NextPointTo(p, pPoint^);
|
|
||||||
finalXform.NextPoint(pPoint^);
|
|
||||||
end;
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
|
|
||||||
if xf.noPlot then
|
if xf.noPlot then
|
||||||
pPoint^.x := MaxDouble // hack
|
pPoint^.x := MaxDouble // hack
|
||||||
else
|
else
|
||||||
finalXform.NextPointTo(p, pPoint^);
|
finalXform.NextPointTo(p, pPoint^);
|
||||||
end;
|
|
||||||
Inc(pPoint);
|
Inc(pPoint);
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
for i := 0 to NrPoints - 1 do begin
|
for i := 0 to NrPoints - 1 do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then begin
|
|
||||||
if xf.noPlot then
|
|
||||||
pPoint^.x := MaxDouble // hack
|
|
||||||
else
|
|
||||||
xf.NextPointTo(p, pPoint^);
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
if xf.noPlot then
|
if xf.noPlot then
|
||||||
pPoint^.x := MaxDouble // hack
|
pPoint^.x := MaxDouble // hack
|
||||||
@ -480,7 +465,6 @@ end;
|
|||||||
//pPoint^.x := p.x; pPoint^.y := p.y; pPoint^.c := p.c;
|
//pPoint^.x := p.x; pPoint^.y := p.y; pPoint^.c := p.c;
|
||||||
pPoint^ := p;
|
pPoint^ := p;
|
||||||
end;
|
end;
|
||||||
end;
|
|
||||||
Inc(pPoint);
|
Inc(pPoint);
|
||||||
end;
|
end;
|
||||||
except
|
except
|
||||||
@ -883,9 +867,9 @@ begin
|
|||||||
end else if AnsiCompareText(CurrentToken, 'plotmode') = 0 then begin
|
end else if AnsiCompareText(CurrentToken, 'plotmode') = 0 then begin
|
||||||
Inc(ParsePos);
|
Inc(ParsePos);
|
||||||
xform[CurrentXForm].noPlot := (ParseValues[ParsePos] = '1');
|
xform[CurrentXForm].noPlot := (ParseValues[ParsePos] = '1');
|
||||||
end else if AnsiCompareText(CurrentToken, 'retrace') = 0 then begin
|
// end else if AnsiCompareText(CurrentToken, 'retrace') = 0 then begin
|
||||||
Inc(ParsePos);
|
// Inc(ParsePos);
|
||||||
xform[CurrentXForm].RetraceXform := (ParseValues[ParsePos] = '1');
|
// xform[CurrentXForm].RetraceXform := (ParseValues[ParsePos] = '1');
|
||||||
end else begin
|
end else begin
|
||||||
OutputDebugString(Pchar('Unknown Token: ' + CurrentToken));
|
OutputDebugString(Pchar('Unknown Token: ' + CurrentToken));
|
||||||
end;
|
end;
|
||||||
@ -1072,6 +1056,7 @@ begin
|
|||||||
miny := 1E99;
|
miny := 1E99;
|
||||||
maxy := -1E99;
|
maxy := -1E99;
|
||||||
for i := 0 to SUB_BATCH_SIZE - 1 do begin
|
for i := 0 to SUB_BATCH_SIZE - 1 do begin
|
||||||
|
if Points[i].x > 1e200 then continue;
|
||||||
minx := min(minx, Points[i].x);
|
minx := min(minx, Points[i].x);
|
||||||
maxx := max(maxx, Points[i].x);
|
maxx := max(maxx, Points[i].x);
|
||||||
miny := min(miny, Points[i].y);
|
miny := min(miny, Points[i].y);
|
||||||
@ -1092,6 +1077,7 @@ begin
|
|||||||
cntminy := 0;
|
cntminy := 0;
|
||||||
cntmaxy := 0;
|
cntmaxy := 0;
|
||||||
for i := 0 to SUB_BATCH_SIZE - 1 do begin
|
for i := 0 to SUB_BATCH_SIZE - 1 do begin
|
||||||
|
if Points[i].x > 1e200 then continue;
|
||||||
px := points[i].x * cosa + points[i].y * sina;
|
px := points[i].x * cosa + points[i].y * sina;
|
||||||
py := points[i].y * cosa - points[i].x * sina;
|
py := points[i].y * cosa - points[i].x * sina;
|
||||||
if (Points[i].x < minx) then Inc(cntminx);
|
if (Points[i].x < minx) then Inc(cntminx);
|
||||||
@ -1614,7 +1600,7 @@ begin
|
|||||||
sl.Add(s);
|
sl.Add(s);
|
||||||
|
|
||||||
sl.Add(Format('plotmode %d', [Ifthen(noPlot, 1, 0)]));
|
sl.Add(Format('plotmode %d', [Ifthen(noPlot, 1, 0)]));
|
||||||
sl.Add(Format('retrace %d', [Ifthen(RetraceXform, 1, 0)]));
|
// sl.Add(Format('retrace %d', [Ifthen(RetraceXform, 1, 0)]));
|
||||||
|
|
||||||
end;
|
end;
|
||||||
DecimalSeparator := OldDecimalSperator;
|
DecimalSeparator := OldDecimalSperator;
|
||||||
@ -1699,6 +1685,7 @@ begin
|
|||||||
zoom := 0;
|
zoom := 0;
|
||||||
for i := 0 to NXFORMS do xform[i].Clear;
|
for i := 0 to NXFORMS do xform[i].Clear;
|
||||||
FinalXformEnabled := false;
|
FinalXformEnabled := false;
|
||||||
|
soloxform := -1;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TControlPoint.HasFinalXForm: boolean;
|
function TControlPoint.HasFinalXForm: boolean;
|
||||||
|
@ -422,7 +422,7 @@ object EditForm: TEditForm
|
|||||||
Top = 31
|
Top = 31
|
||||||
Width = 170
|
Width = 170
|
||||||
Height = 331
|
Height = 331
|
||||||
ActivePage = tabColors
|
ActivePage = tabVariations
|
||||||
Align = alBottom
|
Align = alBottom
|
||||||
Anchors = [akLeft, akTop, akRight, akBottom]
|
Anchors = [akLeft, akTop, akRight, akBottom]
|
||||||
MultiLine = True
|
MultiLine = True
|
||||||
@ -1487,7 +1487,7 @@ object EditForm: TEditForm
|
|||||||
end
|
end
|
||||||
object GroupBox2: TGroupBox
|
object GroupBox2: TGroupBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 182
|
Top = 168
|
||||||
Width = 145
|
Width = 145
|
||||||
Height = 77
|
Height = 77
|
||||||
Caption = 'Variation preview'
|
Caption = 'Variation preview'
|
||||||
@ -1544,7 +1544,7 @@ object EditForm: TEditForm
|
|||||||
Left = 8
|
Left = 8
|
||||||
Top = 104
|
Top = 104
|
||||||
Width = 145
|
Width = 145
|
||||||
Height = 73
|
Height = 57
|
||||||
Caption = 'Transform visibility'
|
Caption = 'Transform visibility'
|
||||||
TabOrder = 2
|
TabOrder = 2
|
||||||
object chkXformInvisible: TCheckBox
|
object chkXformInvisible: TCheckBox
|
||||||
@ -1558,22 +1558,13 @@ object EditForm: TEditForm
|
|||||||
end
|
end
|
||||||
object chkXformSolo: TCheckBox
|
object chkXformSolo: TCheckBox
|
||||||
Left = 8
|
Left = 8
|
||||||
Top = 48
|
Top = 32
|
||||||
Width = 129
|
Width = 129
|
||||||
Height = 17
|
Height = 17
|
||||||
Caption = 'Solo'
|
Caption = 'Solo'
|
||||||
TabOrder = 1
|
TabOrder = 1
|
||||||
OnClick = chkXformSoloClick
|
OnClick = chkXformSoloClick
|
||||||
end
|
end
|
||||||
object chkRetrace: TCheckBox
|
|
||||||
Left = 8
|
|
||||||
Top = 32
|
|
||||||
Width = 129
|
|
||||||
Height = 17
|
|
||||||
Caption = 'Retrace xform'
|
|
||||||
TabOrder = 2
|
|
||||||
OnClick = chkRetraceClick
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
object tabVariations: TTabSheet
|
object tabVariations: TTabSheet
|
||||||
|
@ -201,7 +201,6 @@ type
|
|||||||
GroupBox4: TGroupBox;
|
GroupBox4: TGroupBox;
|
||||||
chkXformInvisible: TCheckBox;
|
chkXformInvisible: TCheckBox;
|
||||||
chkXformSolo: TCheckBox;
|
chkXformSolo: TCheckBox;
|
||||||
chkRetrace: TCheckBox;
|
|
||||||
|
|
||||||
procedure ValidateVariable;
|
procedure ValidateVariable;
|
||||||
procedure vleVariablesValidate(Sender: TObject; ACol, ARow: Integer; const KeyName, KeyValue: string);
|
procedure vleVariablesValidate(Sender: TObject; ACol, ARow: Integer; const KeyName, KeyValue: string);
|
||||||
@ -359,7 +358,7 @@ type
|
|||||||
procedure mnuChaosSetAllClick(Sender: TObject);
|
procedure mnuChaosSetAllClick(Sender: TObject);
|
||||||
procedure mnuLinkPostxformClick(Sender: TObject);
|
procedure mnuLinkPostxformClick(Sender: TObject);
|
||||||
procedure chkXformSoloClick(Sender: TObject);
|
procedure chkXformSoloClick(Sender: TObject);
|
||||||
procedure chkRetraceClick(Sender: TObject);
|
// procedure chkRetraceClick(Sender: TObject);
|
||||||
|
|
||||||
private
|
private
|
||||||
TriangleView: TCustomDrawControl;
|
TriangleView: TCustomDrawControl;
|
||||||
@ -836,8 +835,8 @@ begin
|
|||||||
chkXformInvisible.Enabled := true;
|
chkXformInvisible.Enabled := true;
|
||||||
chkXformInvisible.Checked := noPlot;
|
chkXformInvisible.Checked := noPlot;
|
||||||
chkXformSolo.Enabled := true;
|
chkXformSolo.Enabled := true;
|
||||||
chkRetrace.Enabled := not noPlot;
|
// chkRetrace.Enabled := not noPlot;
|
||||||
chkRetrace.Checked := RetraceXform;
|
// chkRetrace.Checked := RetraceXform;
|
||||||
if cp.soloXform >= 0 then begin
|
if cp.soloXform >= 0 then begin
|
||||||
chkXformSolo.Checked := true;
|
chkXformSolo.Checked := true;
|
||||||
chkXformSolo.Caption := Format('Solo transform #%d', [cp.soloXform + 1]);
|
chkXformSolo.Caption := Format('Solo transform #%d', [cp.soloXform + 1]);
|
||||||
@ -854,8 +853,8 @@ begin
|
|||||||
chkXformInvisible.Enabled := false;
|
chkXformInvisible.Enabled := false;
|
||||||
chkXformInvisible.Checked := false;
|
chkXformInvisible.Checked := false;
|
||||||
chkXformSolo.Enabled := false;
|
chkXformSolo.Enabled := false;
|
||||||
chkRetrace.Checked := true;
|
// chkRetrace.Checked := true;
|
||||||
chkRetrace.Enabled := false;
|
// chkRetrace.Enabled := false;
|
||||||
end;
|
end;
|
||||||
tbEnableFinalXform.Down := EnableFinalXform;
|
tbEnableFinalXform.Down := EnableFinalXform;
|
||||||
|
|
||||||
@ -4993,6 +4992,7 @@ end;
|
|||||||
|
|
||||||
procedure TEditForm.chkXformSoloClick(Sender: TObject);
|
procedure TEditForm.chkXformSoloClick(Sender: TObject);
|
||||||
begin
|
begin
|
||||||
|
if chkXformSolo.Checked <> (cp.soloXform >=0) then begin
|
||||||
if chkXformSolo.Checked then begin
|
if chkXformSolo.Checked then begin
|
||||||
if (SelectedTriangle < Transforms) then begin
|
if (SelectedTriangle < Transforms) then begin
|
||||||
cp.soloXform := SelectedTriangle;
|
cp.soloXform := SelectedTriangle;
|
||||||
@ -5003,8 +5003,10 @@ begin
|
|||||||
cp.soloXform := -1;
|
cp.soloXform := -1;
|
||||||
UpdateFlame(true);
|
UpdateFlame(true);
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{
|
||||||
procedure TEditForm.chkRetraceClick(Sender: TObject);
|
procedure TEditForm.chkRetraceClick(Sender: TObject);
|
||||||
var
|
var
|
||||||
newValue: boolean;
|
newValue: boolean;
|
||||||
@ -5018,6 +5020,7 @@ begin
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
}
|
||||||
|
|
||||||
end.
|
end.
|
||||||
|
|
||||||
|
@ -42,7 +42,7 @@ const
|
|||||||
RS_XO = 2;
|
RS_XO = 2;
|
||||||
RS_VO = 3;
|
RS_VO = 3;
|
||||||
|
|
||||||
AppVersionString = 'Apophysis 2.08 beta pre5';
|
AppVersionString = 'Apophysis 2.08 beta pre6';
|
||||||
|
|
||||||
type
|
type
|
||||||
TMouseMoveState = (msUsual, msZoomWindow, msZoomOutWindow, msZoomWindowMove,
|
TMouseMoveState = (msUsual, msZoomWindow, msZoomOutWindow, msZoomWindowMove,
|
||||||
@ -1369,6 +1369,9 @@ begin
|
|||||||
if cp1.vibrancy <> 1 then
|
if cp1.vibrancy <> 1 then
|
||||||
parameters := parameters + format('vibrancy="%g" ', [cp1.vibrancy]);
|
parameters := parameters + format('vibrancy="%g" ', [cp1.vibrancy]);
|
||||||
|
|
||||||
|
if cp1.soloXform >= 0 then
|
||||||
|
parameters := parameters + format('soloxform="%d" ', [cp1.soloXform]);
|
||||||
|
|
||||||
if exporting then parameters := parameters +
|
if exporting then parameters := parameters +
|
||||||
format('estimator_radius="%g" ', [cp1.estimator]) +
|
format('estimator_radius="%g" ', [cp1.estimator]) +
|
||||||
format('estimator_minimum="%g" ', [cp1.estimator_min]) +
|
format('estimator_minimum="%g" ', [cp1.estimator_min]) +
|
||||||
@ -4067,15 +4070,7 @@ begin
|
|||||||
Tokens := TStringList.Create;
|
Tokens := TStringList.Create;
|
||||||
try
|
try
|
||||||
|
|
||||||
if TagName='xformset' then // unused in this release...
|
if TagName='flame' then
|
||||||
begin
|
|
||||||
v := Attributes.Value('enabled');
|
|
||||||
if v <> '' then ParseCP.finalXformEnabled := (StrToInt(v) <> 0)
|
|
||||||
else ParseCP.finalXformEnabled := true;
|
|
||||||
|
|
||||||
inc(activeXformSet);
|
|
||||||
end
|
|
||||||
else if TagName='flame' then
|
|
||||||
begin
|
begin
|
||||||
v := Attributes.value('name');
|
v := Attributes.value('name');
|
||||||
if v <> '' then Parsecp.name := v else Parsecp.name := 'untitled';
|
if v <> '' then Parsecp.name := v else Parsecp.name := 'untitled';
|
||||||
@ -4142,6 +4137,9 @@ begin
|
|||||||
Parsecp.background[2] := 0;
|
Parsecp.background[2] := 0;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
v := Attributes.Value('soloxform');
|
||||||
|
if v <> '' then Parsecp.soloXform := StrToInt(v);
|
||||||
|
|
||||||
v := Attributes.Value('nick');
|
v := Attributes.Value('nick');
|
||||||
if Trim(v) = '' then v := SheepNick;
|
if Trim(v) = '' then v := SheepNick;
|
||||||
Parsecp.Nick := v;
|
Parsecp.Nick := v;
|
||||||
@ -4250,15 +4248,15 @@ begin
|
|||||||
if v <> '' then begin
|
if v <> '' then begin
|
||||||
if v = 'off' then begin
|
if v = 'off' then begin
|
||||||
noPlot := true;
|
noPlot := true;
|
||||||
RetraceXform := false;
|
//RetraceXform := false;
|
||||||
end
|
|
||||||
else if v = 'retrace' then begin
|
|
||||||
noPlot := false;
|
|
||||||
RetraceXform := true;
|
|
||||||
end
|
end
|
||||||
|
// else if v = 'retrace' then begin
|
||||||
|
// noPlot := false;
|
||||||
|
// RetraceXform := true;
|
||||||
|
// end
|
||||||
else begin
|
else begin
|
||||||
noPlot := false;
|
noPlot := false;
|
||||||
RetraceXform := false;
|
//RetraceXform := false;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -106,7 +106,7 @@ var
|
|||||||
Bucket: PBucket32;
|
Bucket: PBucket32;
|
||||||
MapColor: PColorMapColor;
|
MapColor: PColorMapColor;
|
||||||
|
|
||||||
p, q: TCPPoint;
|
p: TCPPoint;
|
||||||
xf: TXForm;
|
xf: TXForm;
|
||||||
begin
|
begin
|
||||||
{$ifndef _ASM_}
|
{$ifndef _ASM_}
|
||||||
@ -133,26 +133,11 @@ end;
|
|||||||
xf := fcp.xform[0];//random(fcp.NumXForms)];
|
xf := fcp.xform[0];//random(fcp.NumXForms)];
|
||||||
for i := 0 to FUSE do begin
|
for i := 0 to FUSE do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then continue;
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
for i := 0 to SUB_BATCH_SIZE-1 do begin
|
for i := 0 to SUB_BATCH_SIZE-1 do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then begin
|
|
||||||
if xf.noPlot then continue;
|
|
||||||
|
|
||||||
xf.NextPointTo(p, q);
|
|
||||||
|
|
||||||
px := q.x - camX0;
|
|
||||||
if (px < 0) or (px > camW) then continue;
|
|
||||||
py := q.y - camY0;
|
|
||||||
if (py < 0) or (py > camH) then continue;
|
|
||||||
|
|
||||||
Bucket := @buckets[Round(bhs * py)][Round(bws * px)];
|
|
||||||
MapColor := @ColorMap[Round(q.c * 255)];
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
|
|
||||||
if xf.noPlot then continue;
|
if xf.noPlot then continue;
|
||||||
@ -164,7 +149,6 @@ end;
|
|||||||
|
|
||||||
Bucket := @buckets[Round(bhs * py)][Round(bws * px)];
|
Bucket := @buckets[Round(bhs * py)][Round(bws * px)];
|
||||||
MapColor := @ColorMap[Round(p.c * 255)];
|
MapColor := @ColorMap[Round(p.c * 255)];
|
||||||
end;
|
|
||||||
|
|
||||||
Inc(Bucket.Red, MapColor.Red);
|
Inc(Bucket.Red, MapColor.Red);
|
||||||
Inc(Bucket.Green, MapColor.Green);
|
Inc(Bucket.Green, MapColor.Green);
|
||||||
@ -186,7 +170,7 @@ var
|
|||||||
Bucket: PBucket32;
|
Bucket: PBucket32;
|
||||||
MapColor: PColorMapColor;
|
MapColor: PColorMapColor;
|
||||||
|
|
||||||
p, q: TCPPoint;
|
p: TCPPoint;
|
||||||
xf: TXForm;
|
xf: TXForm;
|
||||||
begin
|
begin
|
||||||
{$ifndef _ASM_}
|
{$ifndef _ASM_}
|
||||||
@ -213,26 +197,11 @@ end;
|
|||||||
xf := fcp.xform[0];//random(fcp.NumXForms)];
|
xf := fcp.xform[0];//random(fcp.NumXForms)];
|
||||||
for i := 0 to FUSE do begin
|
for i := 0 to FUSE do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then continue;
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
for i := 0 to SUB_BATCH_SIZE-1 do begin
|
for i := 0 to SUB_BATCH_SIZE-1 do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then begin
|
|
||||||
if xf.noPlot then continue;
|
|
||||||
|
|
||||||
xf.NextPointTo(p, q);
|
|
||||||
|
|
||||||
px := q.x * cosa + q.y * sina + rcX;
|
|
||||||
if (px < 0) or (px > camW) then continue;
|
|
||||||
py := q.y * cosa - q.x * sina + rcY;
|
|
||||||
if (py < 0) or (py > camH) then continue;
|
|
||||||
|
|
||||||
Bucket := @buckets[Round(bhs * py)][Round(bws * px)];
|
|
||||||
MapColor := @ColorMap[Round(q.c * 255)];
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
|
|
||||||
if xf.noPlot then continue;
|
if xf.noPlot then continue;
|
||||||
@ -244,7 +213,6 @@ end;
|
|||||||
|
|
||||||
Bucket := @buckets[Round(bhs * py)][Round(bws * px)];
|
Bucket := @buckets[Round(bhs * py)][Round(bws * px)];
|
||||||
MapColor := @ColorMap[Round(p.c * 255)];
|
MapColor := @ColorMap[Round(p.c * 255)];
|
||||||
end;
|
|
||||||
|
|
||||||
Inc(Bucket.Red, MapColor.Red);
|
Inc(Bucket.Red, MapColor.Red);
|
||||||
Inc(Bucket.Green, MapColor.Green);
|
Inc(Bucket.Green, MapColor.Green);
|
||||||
@ -294,25 +262,16 @@ end;
|
|||||||
xf := fcp.xform[0];//random(fcp.NumXForms)];
|
xf := fcp.xform[0];//random(fcp.NumXForms)];
|
||||||
for i := 0 to FUSE do begin
|
for i := 0 to FUSE do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then continue;
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
for i := 0 to SUB_BATCH_SIZE-1 do begin
|
for i := 0 to SUB_BATCH_SIZE-1 do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then begin
|
|
||||||
if xf.noPlot then continue;
|
|
||||||
|
|
||||||
xf.NextPointTo(p, q);
|
|
||||||
finalXform.NextPoint(q);
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
|
|
||||||
if xf.noPlot then continue;
|
if xf.noPlot then continue;
|
||||||
|
|
||||||
finalXform.NextPointTo(p, q);
|
finalXform.NextPointTo(p, q);
|
||||||
end;
|
|
||||||
|
|
||||||
px := q.x - camX0;
|
px := q.x - camX0;
|
||||||
if (px < 0) or (px > camW) then continue;
|
if (px < 0) or (px > camW) then continue;
|
||||||
@ -369,25 +328,16 @@ end;
|
|||||||
xf := fcp.xform[0];//random(fcp.NumXForms)];
|
xf := fcp.xform[0];//random(fcp.NumXForms)];
|
||||||
for i := 0 to FUSE do begin
|
for i := 0 to FUSE do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then continue;
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
for i := 0 to SUB_BATCH_SIZE-1 do begin
|
for i := 0 to SUB_BATCH_SIZE-1 do begin
|
||||||
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
xf := xf.PropTable[Random(PROP_TABLE_SIZE)];
|
||||||
if xf.RetraceXform then begin
|
|
||||||
if xf.noPlot then continue;
|
|
||||||
|
|
||||||
xf.NextPointTo(p, q);
|
|
||||||
finalXform.NextPoint(q);
|
|
||||||
end
|
|
||||||
else begin
|
|
||||||
xf.NextPoint(p);
|
xf.NextPoint(p);
|
||||||
|
|
||||||
if xf.noPlot then continue;
|
if xf.noPlot then continue;
|
||||||
|
|
||||||
finalXform.NextPointTo(p, q);
|
finalXform.NextPointTo(p, q);
|
||||||
end;
|
|
||||||
|
|
||||||
px := q.x * cosa + q.y * sina + rcX;
|
px := q.x * cosa + q.y * sina + rcX;
|
||||||
if (px < 0) or (px > camW) then continue;
|
if (px < 0) or (px > camW) then continue;
|
||||||
|
@ -66,7 +66,8 @@ type
|
|||||||
postXswap: boolean;
|
postXswap: boolean;
|
||||||
|
|
||||||
noPlot: boolean;
|
noPlot: boolean;
|
||||||
RetraceXform: boolean;
|
//RetraceXform: boolean;
|
||||||
|
|
||||||
// nx,ny,x,y: double;
|
// nx,ny,x,y: double;
|
||||||
// script: TatPascalScripter;
|
// script: TatPascalScripter;
|
||||||
|
|
||||||
@ -234,7 +235,7 @@ begin
|
|||||||
modWeights[i] := 1;
|
modWeights[i] := 1;
|
||||||
|
|
||||||
noPlot := false;
|
noPlot := false;
|
||||||
RetraceXform := false;
|
//RetraceXform := false;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@ -2146,7 +2147,7 @@ begin
|
|||||||
modWeights[i] := xform.modWeights[i];
|
modWeights[i] := xform.modWeights[i];
|
||||||
|
|
||||||
noPlot := xform.noPlot;
|
noPlot := xform.noPlot;
|
||||||
RetraceXform := xform.RetraceXform;
|
//RetraceXform := xform.RetraceXform;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////////////////////
|
||||||
@ -2191,9 +2192,10 @@ begin
|
|||||||
Result := Result + '" ';
|
Result := Result + '" ';
|
||||||
end;
|
end;
|
||||||
|
|
||||||
if RetraceXform then
|
// if RetraceXform then
|
||||||
Result := Result + 'plotmode="retrace" '
|
// Result := Result + 'plotmode="retrace" '
|
||||||
else if noPlot then
|
// else
|
||||||
|
if noPlot then
|
||||||
Result := Result + 'plotmode="off" ';
|
Result := Result + 'plotmode="off" ';
|
||||||
|
|
||||||
Result := Result + '/>';
|
Result := Result + '/>';
|
||||||
|
Loading…
Reference in New Issue
Block a user