From: Ronald H. <ron...@us...> - 2005-06-19 05:48:06
|
Update of /cvsroot/apophysis/2.10/Source In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv8184/Source Modified Files: ControlPoint.pas Editor.dfm Editor.pas Global.pas Main.pas Mutate.pas Options.pas Regstry.pas RndFlame.pas ScriptForm.dfm ScriptForm.pas XForm.pas Log Message: make the new variants temporary unavailable Index: ControlPoint.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/ControlPoint.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** ControlPoint.pas 5 Jun 2005 07:22:41 -0000 1.5 --- ControlPoint.pas 19 Jun 2005 05:47:55 -0000 1.6 *************** *** 26,30 **** const EPS = 1E-10; - NVARS = Xform.NVARS; NXFORMS = 12; SUB_BATCH_SIZE = 10000; --- 26,29 ---- *************** *** 138,144 **** var ! var_distrib: array[0..NVARS + 18] of integer; ! mixed_var_distrib: array[0..NVARS + 8] of integer; ! { TControlPoint } --- 137,142 ---- var ! var_distrib: array[0..NRVISVAR + 18] of integer; ! mixed_var_distrib: array[0..NRVISVAR + 8] of integer; { TControlPoint } *************** *** 823,827 **** xform[CurrentXForm].c[2, 1] := StrToFloat(ParseValues[ParsePos]); end else if AnsiCompareText(CurrentToken, 'var') = 0 then begin ! for i := 0 to NVARS - 1 do begin xform[CurrentXForm].vars[i] := 0; end; --- 821,825 ---- xform[CurrentXForm].c[2, 1] := StrToFloat(ParseValues[ParsePos]); end else if AnsiCompareText(CurrentToken, 'var') = 0 then begin ! for i := 0 to NRVAR - 1 do begin xform[CurrentXForm].vars[i] := 0; end; *************** *** 857,867 **** i, j, v: integer; rv: integer; begin ! repeat ! rv := var_distrib[random(Length(var_distrib))]; ! until Variations[rv]; for i := 0 to NXFORMS - 1 do begin ! for j := 0 to NVARS - 1 do begin xform[i].vars[j] := 0; end; --- 855,875 ---- i, j, v: integer; rv: integer; + VarPossible: boolean; begin ! VarPossible := false; ! for j := 0 to NRVISVAR - 1 do begin ! VarPossible := VarPossible or Variations[j]; ! end; ! ! if VarPossible then begin ! repeat ! rv := var_distrib[random(Length(var_distrib))]; ! until Variations[rv]; ! end else begin ! rv := 0; ! end; for i := 0 to NXFORMS - 1 do begin ! for j := 0 to NRVAR - 1 do begin xform[i].vars[j] := 0; end; *************** *** 871,877 **** if rv < 0 then begin ! repeat ! v := Mixed_var_distrib[random(Length(mixed_var_distrib))]; ! until Variations[v]; // Use only Variations set in options xform[i].vars[v] := 1 end --- 879,889 ---- if rv < 0 then begin ! if VarPossible then begin ! repeat ! v := Mixed_var_distrib[random(Length(mixed_var_distrib))]; ! until Variations[v]; // Use only Variations set in options ! end else begin ! v := 0; ! end; xform[i].vars[v] := 1 end *************** *** 889,892 **** --- 901,905 ---- i, j: integer; v, rv: integer; + VarPossible: boolean; begin //hue_rotation := random; *************** *** 898,904 **** //nrXforms := xform_distrib[random(13)]; nrXforms := random(Max - (Min - 1)) + Min; ! repeat ! rv := var_distrib[random(Length(var_distrib))]; ! until Variations[rv]; for i := 0 to NXFORMS - 1 do begin --- 911,927 ---- //nrXforms := xform_distrib[random(13)]; nrXforms := random(Max - (Min - 1)) + Min; ! ! VarPossible := false; ! for j := 0 to NRVISVAR - 1 do begin ! VarPossible := VarPossible or Variations[j]; ! end; ! ! if VarPossible then begin ! repeat ! rv := var_distrib[random(Length(var_distrib))]; ! until Variations[rv]; ! end else begin ! rv := 0; ! end; for i := 0 to NXFORMS - 1 do begin *************** *** 917,932 **** xform[i].c[2][1] := 4 * random - 2; ! for j := 0 to NVARS - 1 do begin xform[i].vars[j] := 0; end; ! for j := 0 to NVARS - 1 do begin xform[i].vars[j] := 0; end; if rv < 0 then begin ! repeat ! v := Mixed_var_distrib[random(Length(mixed_var_distrib))]; ! until Variations[v]; // use only variations set in options xform[i].vars[v] := 1 end else --- 940,960 ---- xform[i].c[2][1] := 4 * random - 2; ! for j := 0 to NRVAR - 1 do begin xform[i].vars[j] := 0; end; ! for j := 0 to NRVAR - 1 do begin xform[i].vars[j] := 0; end; if rv < 0 then begin ! if VarPossible then begin ! repeat ! v := Mixed_var_distrib[random(Length(mixed_var_distrib))]; ! until Variations[v]; // use only variations set in options ! end else begin ! v := 0; ! end; ! xform[i].vars[v] := 1 end else *************** *** 944,948 **** RandomCP; for i := 0 to NXFORMS - 1 do begin ! for j := 0 to NVARS - 1 do begin xform[i].vars[j] := 0; end; --- 972,976 ---- RandomCP; for i := 0 to NXFORMS - 1 do begin ! for j := 0 to NRVAR - 1 do begin xform[i].vars[j] := 0; end; *************** *** 1238,1242 **** Result.xform[i].density := c0 * cp1.xform[i].density + c1 * cp2.xform[i].density; Result.xform[i].color := c0 * cp1.xform[i].color + c1 * cp2.xform[i].color; ! for j := 0 to NVARS - 1 do begin Result.xform[i].vars[j] := c0 * cp1.xform[i].vars[j] + c1 * cp2.xform[i].vars[j]; end; --- 1266,1270 ---- Result.xform[i].density := c0 * cp1.xform[i].density + c1 * cp2.xform[i].density; Result.xform[i].color := c0 * cp1.xform[i].color + c1 * cp2.xform[i].color; ! for j := 0 to NRVAR - 1 do begin Result.xform[i].vars[j] := c0 * cp1.xform[i].vars[j] + c1 * cp2.xform[i].vars[j]; end; *************** *** 1353,1357 **** Result.xform[i].color := c0 * cp1.xform[i].color + c1 * cp2.xform[i].color; Result.xform[i].symmetry := c0 * cp1.xform[i].symmetry + c1 * cp2.xform[i].symmetry; ! for j := 0 to NVARS - 1 do begin Result.xform[i].vars[j] := c0 * cp1.xform[i].vars[j] + c1 * cp2.xform[i].vars[j]; end; --- 1381,1385 ---- Result.xform[i].color := c0 * cp1.xform[i].color + c1 * cp2.xform[i].color; Result.xform[i].symmetry := c0 * cp1.xform[i].symmetry + c1 * cp2.xform[i].symmetry; ! for j := 0 to NRVAR - 1 do begin Result.xform[i].vars[j] := c0 * cp1.xform[i].vars[j] + c1 * cp2.xform[i].vars[j]; end; *************** *** 1420,1424 **** sl.add(format('xform %d density %.3f color %f symmetry %f', [i, xform[i].density, xform[i].color, xform[i].symmetry])); s := 'var'; ! for j := 0 to NVARS - 1 do begin s := format('%s %f', [s, xform[i].vars[j]]); end; --- 1448,1452 ---- sl.add(format('xform %d density %.3f color %f symmetry %f', [i, xform[i].density, xform[i].color, xform[i].symmetry])); s := 'var'; ! for j := 0 to NRVAR - 1 do begin s := format('%s %f', [s, xform[i].vars[j]]); end; *************** *** 1488,1492 **** xform[i].color := 0; xform[i].vars[0] := 1; ! for j := 1 to NVARS - 1 do begin xform[i].vars[j] := 0; end; --- 1516,1520 ---- xform[i].color := 0; xform[i].vars[0] := 1; ! for j := 1 to NRVAR - 1 do begin xform[i].vars[j] := 0; end; *************** *** 1539,1543 **** cp.xform[i].symmetry := 1; cp.xform[i].vars[0] := 1.0; ! for j := 1 to NVARS - 1 do cp.xform[i].vars[j] := 0; cp.xform[i].color := 1.0; cp.xform[i].c[0][0] := -1.0; --- 1567,1572 ---- cp.xform[i].symmetry := 1; cp.xform[i].vars[0] := 1.0; ! for j := 1 to NRVAR - 1 do ! cp.xform[i].vars[j] := 0; cp.xform[i].color := 1.0; cp.xform[i].c[0][0] := -1.0; *************** *** 1562,1566 **** cp.xform[i].vars[0] := 1.0; cp.xform[i].symmetry := 1; ! for j := 1 to NVARS - 1 do cp.xform[i].vars[j] := 0; if sym < 3 then --- 1591,1595 ---- cp.xform[i].vars[0] := 1.0; cp.xform[i].symmetry := 1; ! for j := 1 to NRVAR - 1 do cp.xform[i].vars[j] := 0; if sym < 3 then Index: Editor.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Editor.pas,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Editor.pas 1 Jun 2005 19:26:54 -0000 1.4 --- Editor.pas 19 Jun 2005 05:47:55 -0000 1.5 *************** *** 516,520 **** EditForm.scrlXFormcolor.Position := Trunc(EditForm.cp.xform[t].color * 100); ! for i := 0 to NVars-1 do begin EditForm.VEVars.Values[VarNames[i]] := Format('%.6g', [EditForm.cp.xform[SelectedTriangle].vars[i]]); end; --- 516,520 ---- EditForm.scrlXFormcolor.Position := Trunc(EditForm.cp.xform[t].color * 100); ! for i := 0 to NRVISVAR-1 do begin EditForm.VEVars.Values[VarNames[i]] := Format('%.6g', [EditForm.cp.xform[SelectedTriangle].vars[i]]); end; *************** *** 640,644 **** cp.xform[i].color := cp.xform[i + 1].color; cp.xform[i].symmetry := cp.xform[i + 1].symmetry; ! for j := 0 to NVARS - 1 do cp.xform[i].vars[j] := cp.xform[i + 1].vars[j]; end; --- 640,644 ---- cp.xform[i].color := cp.xform[i + 1].color; cp.xform[i].symmetry := cp.xform[i + 1].symmetry; ! for j := 0 to NRVAR - 1 do cp.xform[i].vars[j] := cp.xform[i + 1].vars[j]; end; *************** *** 808,812 **** i: integer; begin ! for i:= 0 to NVars-1 do begin VEVars.InsertRow(Varnames[i], '0', True); end; --- 808,812 ---- i: integer; begin ! for i:= 0 to NRVISVAR - 1 do begin VEVars.InsertRow(Varnames[i], '0', True); end; *************** *** 1150,1154 **** ComputeWeights(cp, MainTriangles, transforms); cp.xform[Transforms - 1].vars[0] := 1; ! for i := 1 to NVARS - 1 do cp.xform[Transforms - 1].vars[i] := 0; cbTransforms.clear; --- 1150,1154 ---- ComputeWeights(cp, MainTriangles, transforms); cp.xform[Transforms - 1].vars[0] := 1; ! for i := 1 to NRVAR - 1 do cp.xform[Transforms - 1].vars[i] := 0; cbTransforms.clear; *************** *** 1169,1173 **** MainTriangles[Transforms - 1] := MainTriangles[SelectedTriangle]; ComputeWeights(cp, MainTriangles, transforms); ! for i := 0 to NVARS - 1 do cp.xform[Transforms - 1].vars[i] := cp.xform[SelectedTriangle].vars[i]; SelectedTriangle := Transforms - 1; --- 1169,1173 ---- MainTriangles[Transforms - 1] := MainTriangles[SelectedTriangle]; ComputeWeights(cp, MainTriangles, transforms); ! for i := 0 to NRVAR - 1 do cp.xform[Transforms - 1].vars[i] := cp.xform[SelectedTriangle].vars[i]; SelectedTriangle := Transforms - 1; Index: ScriptForm.dfm =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/ScriptForm.dfm,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ScriptForm.dfm 25 Mar 2005 08:35:39 -0000 1.1 --- ScriptForm.dfm 19 Jun 2005 05:47:55 -0000 1.2 *************** *** 166,170 **** MarkerList.UseDefaultMarkerImageIndex = False MarkerList.DefaultMarkerImageIndex = -1 ! MarkerList.ImageTransparentColor = 33554432 PrintOptions.MarginLeft = 0 PrintOptions.MarginRight = 0 --- 166,170 ---- MarkerList.UseDefaultMarkerImageIndex = False MarkerList.DefaultMarkerImageIndex = -1 ! MarkerList.ImageTransparentColor = -1 PrintOptions.MarginLeft = 0 PrintOptions.MarginRight = 0 Index: RndFlame.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/RndFlame.pas,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** RndFlame.pas 9 Apr 2005 06:50:05 -0000 1.1 --- RndFlame.pas 19 Jun 2005 05:47:55 -0000 1.2 *************** *** 29,33 **** uses ! SysUtils, Global, cmap, MyTypes, GradientHlpr; /////////////////////////////////////////////////////////////////////////////// --- 29,33 ---- uses ! SysUtils, Global, cmap, MyTypes, GradientHlpr, XForm; /////////////////////////////////////////////////////////////////////////////// *************** *** 81,96 **** var a, b, i, j: integer; begin inc(MainSeed); RandSeed := MainSeed; for i := 0 to NumXForms(cp) - 1 do begin ! for j := 0 to NVARS - 1 do cp.xform[i].vars[j] := 0; ! repeat ! a := random(NVARS); ! until Variations[a]; ! repeat ! b := random(NVARS); ! until Variations[b]; if (a = b) then begin cp.xform[i].vars[a] := 1; --- 81,111 ---- var a, b, i, j: integer; + VarPossible: boolean; begin inc(MainSeed); RandSeed := MainSeed; + + VarPossible := false; + for j := 0 to NRVISVAR - 1 do begin + VarPossible := VarPossible or Variations[j]; + end; + for i := 0 to NumXForms(cp) - 1 do begin ! for j := 0 to NRVAR - 1 do cp.xform[i].vars[j] := 0; ! ! if VarPossible then begin ! repeat ! a := random(NRVISVAR); ! until Variations[a]; ! ! repeat ! b := random(NRVISVAR); ! until Variations[b]; ! end else begin ! a := 0; ! b := 0; ! end; ! if (a = b) then begin cp.xform[i].vars[a] := 1; *************** *** 112,116 **** end else for i := 0 to NumXForms(cp) - 1 do begin ! for j := 0 to NVARS - 1 do cp.xform[i].vars[j] := 0; cp.xform[i].vars[integer(Variation)] := 1; --- 127,131 ---- end else for i := 0 to NumXForms(cp) - 1 do begin ! for j := 0 to NRVAR - 1 do cp.xform[i].vars[j] := 0; cp.xform[i].vars[integer(Variation)] := 1; *************** *** 311,315 **** Result.xform[i].symmetry := 0; Result.xform[i].vars[0] := 1; ! for j := 1 to NVARS - 1 do Result.xform[i].vars[j] := 0; Result.xform[i].Translate(random * 2 - 1, random * 2 - 1); --- 326,330 ---- Result.xform[i].symmetry := 0; Result.xform[i].vars[0] := 1; ! for j := 1 to NRVAR - 1 do Result.xform[i].vars[j] := 0; Result.xform[i].Translate(random * 2 - 1, random * 2 - 1); Index: Editor.dfm =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Editor.dfm,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** Editor.dfm 1 Jun 2005 19:26:55 -0000 1.4 --- Editor.dfm 19 Jun 2005 05:47:55 -0000 1.5 *************** *** 53,57 **** Top = 0 Width = 394 ! Height = 429 Align = alClient BevelOuter = bvLowered --- 53,57 ---- Top = 0 Width = 394 ! Height = 422 Align = alClient BevelOuter = bvLowered *************** *** 73,77 **** object StatusBar: TStatusBar Left = 0 ! Top = 429 Width = 574 Height = 15 --- 73,77 ---- object StatusBar: TStatusBar Left = 0 ! Top = 422 Width = 574 Height = 15 *************** *** 91,95 **** Top = 0 Width = 180 ! Height = 429 Align = alRight Alignment = taLeftJustify --- 91,95 ---- Top = 0 Width = 180 ! Height = 422 Align = alRight Alignment = taLeftJustify *************** *** 98,102 **** DesignSize = ( 180 ! 429) object lblTransform: TLabel Left = 10 --- 98,102 ---- DesignSize = ( 180 ! 422) object lblTransform: TLabel Left = 10 *************** *** 137,141 **** Height = 21 Style = csDropDownList ! ItemHeight = 13 TabOrder = 1 OnChange = cbTransformsChange --- 137,141 ---- Height = 21 Style = csDropDownList ! ItemHeight = 0 TabOrder = 1 OnChange = cbTransformsChange Index: XForm.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/XForm.pas,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** XForm.pas 1 May 2005 08:05:13 -0000 1.5 --- XForm.pas 19 Jun 2005 05:47:55 -0000 1.6 *************** *** 4,14 **** const ! {$IFDEF TESTVARIANT} ! NVARS = 28; ! {$ELSE} ! NVARS = 27; ! {$ENDIF} ! varnames: array[0..NVARS -1] of PChar = ( 'linear', 'sinusoidal', --- 4,11 ---- const ! NRVISVAR = 23; ! NRVAR = 28; ! varnames: array[0..NRVAR - 1] of PChar = ( 'linear', 'sinusoidal', *************** *** 37,44 **** 'daisy', 'checkers', ! 'crot' ! {$IFDEF TESTVARIANT} ! ,'test' ! {$ENDIF} ); --- 34,39 ---- 'daisy', 'checkers', ! 'crot', ! 'test' ); *************** *** 63,67 **** private FNrFunctions: Integer; ! FFunctionList: array[0..NVARS] of TCalcMethod; FTx, FTy: double; --- 58,62 ---- private FNrFunctions: Integer; ! FFunctionList: array[0..NRVAR-1] of TCalcMethod; FTx, FTy: double; *************** *** 109,113 **** public ! vars: array[0..NVARS - 1] of double; // normalized interp coefs between variations c: array[0..2, 0..1] of double; // the coefs to the affine part of the function density: double; // prob is this function is chosen. 0 - 1 --- 104,108 ---- public ! vars: array[0..NRVAR - 1] of double; // normalized interp coefs between variations c: array[0..2, 0..1] of double; // the coefs to the affine part of the function density: double; // prob is this function is chosen. 0 - 1 *************** *** 154,158 **** Color := 0; Vars[0] := 1; ! for i := 1 to NVARS - 1 do begin Vars[i] := 0; end; --- 149,153 ---- Color := 0; Vars[0] := 1; ! for i := 1 to NRVAR - 1 do begin Vars[i] := 0; end; *************** *** 314,323 **** end; ! {$IFDEF TESTVARIANT} ! if (vars[NVARS -1] <> 0.0) then begin FFunctionList[FNrFunctions] := TestVar; Inc(FNrFunctions); end; - {$ENDIF} CalculateAngle := (vars[5] <> 0.0) or (vars[6] <> 0.0) or (vars[7] <> 0.0) or (vars[8] <> 0.0) or --- 309,316 ---- end; ! if (vars[NRVAR -1] <> 0.0) then begin FFunctionList[FNrFunctions] := TestVar; Inc(FNrFunctions); end; CalculateAngle := (vars[5] <> 0.0) or (vars[6] <> 0.0) or (vars[7] <> 0.0) or (vars[8] <> 0.0) or *************** *** 673,677 **** var r : double; - dx, dy, dx2: double; Angle: double; begin --- 666,669 ---- *************** *** 696,700 **** var r : double; ! dx, dy, dx2: double; Angle: double; begin --- 688,692 ---- var r : double; ! // dx, dy, dx2: double; Angle: double; begin *************** *** 709,714 **** // r:= R - 0.04 * sin(6.2 * R - 1) - 0.008 * R; ! FPx := FPx + vars[NVars - 1] * r * cos(Angle); ! FPy := FPy + vars[NVars - 1] * r * sin(Angle); end; --- 701,706 ---- // r:= R - 0.04 * sin(6.2 * R - 1) - 0.008 * R; ! FPx := FPx + vars[NRVAR - 1] * r * cos(Angle); ! FPy := FPy + vars[NRVAR - 1] * r * sin(Angle); end; Index: Options.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Options.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Options.pas 2 Apr 2005 10:53:21 -0000 1.2 --- Options.pas 19 Jun 2005 05:47:55 -0000 1.3 *************** *** 275,279 **** { Variations tab } UnpackVariations(VariationOptions); ! for i := 0 to NVars -1 do clbVarEnabled.Checked[i] := Variations[i]; --- 275,279 ---- { Variations tab } UnpackVariations(VariationOptions); ! for i := 0 to NRVISVAR -1 do clbVarEnabled.Checked[i] := Variations[i]; *************** *** 319,323 **** { Variations tab } { Get option values from controls. Disallow bad values } ! for i := 0 to NVars -1 do Variations[i] := clbVarEnabled.Checked[i]; --- 319,323 ---- { Variations tab } { Get option values from controls. Disallow bad values } ! for i := 0 to NRVISVAR -1 do Variations[i] := clbVarEnabled.Checked[i]; *************** *** 472,476 **** i: integer; begin ! for i := 0 to NVars - 1 do clbVarEnabled.Checked[i] := True; end; --- 472,476 ---- i: integer; begin ! for i := 0 to NRVISVAR - 1 do clbVarEnabled.Checked[i] := True; end; *************** *** 480,484 **** i: integer; begin ! for i := 0 to NVars - 1 do clbVarEnabled.Checked[i] := False; end; --- 480,484 ---- i: integer; begin ! for i := 0 to NRVISVAR - 1 do clbVarEnabled.Checked[i] := False; end; *************** *** 583,587 **** i: integer; begin ! for i:= 0 to NVARS - 1 do begin clbVarEnabled.AddItem(varnames[i],nil); end; --- 583,587 ---- i: integer; begin ! for i:= 0 to NRVISVAR - 1 do begin clbVarEnabled.AddItem(varnames[i],nil); end; Index: ScriptForm.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/ScriptForm.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ScriptForm.pas 2 Apr 2005 10:53:21 -0000 1.3 --- ScriptForm.pas 19 Jun 2005 05:47:55 -0000 1.4 *************** *** 785,789 **** begin i := GetArrayIndex(0); ! if (i >= 0) and (i < NVARS) then ReturnOutPutArg(Variations[i]); end; --- 785,789 ---- begin i := GetArrayIndex(0); ! if (i >= 0) and (i < NRVAR) then ReturnOutPutArg(Variations[i]); end; *************** *** 799,803 **** v := GetInputArgAsBoolean(0); i := GetArrayIndex(0); ! if (i >= 0) and (i < NVARS) then begin Variations[i] := v; --- 799,803 ---- v := GetInputArgAsBoolean(0); i := GetArrayIndex(0); ! if (i >= 0) and (i < NRVAR) then begin Variations[i] := v; *************** *** 1650,1654 **** begin i := integer(Variation); ! if (i >= NVARS) or (i < 0) then i := -1; ReturnOutputArg(i); --- 1650,1654 ---- begin i := integer(Variation); ! if (i >= NRVAR) or (i < 0) then i := -1; ReturnOutputArg(i); *************** *** 1663,1668 **** begin i := GetInputArgAsInteger(0); ! if (i < 0) or (i >= NVARS) then ! i := NVARS; Variation := TVariation(i); if i = -1 then --- 1663,1668 ---- begin i := GetInputArgAsInteger(0); ! if (i < 0) or (i >= NRVAR) then ! i := NRVAR; Variation := TVariation(i); if i = -1 then *************** *** 1775,1779 **** ScriptEditor.cp.xform[ActiveTransform].density := 1 / NumTransforms; ScriptEditor.cp.xform[ActiveTransform].vars[0] := 1; ! for i := 1 to NVARS - 1 do ScriptEditor.cp.xform[ActiveTransform].vars[i] := 0; end --- 1775,1779 ---- ScriptEditor.cp.xform[ActiveTransform].density := 1 / NumTransforms; ScriptEditor.cp.xform[ActiveTransform].vars[0] := 1; ! for i := 1 to NRVAR - 1 do ScriptEditor.cp.xform[ActiveTransform].vars[i] := 0; end *************** *** 1810,1814 **** ScriptEditor.cp.xform[i].color := ScriptEditor.cp.xform[i + 1].color; ScriptEditor.cp.xform[i].symmetry := ScriptEditor.cp.xform[i + 1].symmetry; ! for j := 0 to NVARS - 1 do ScriptEditor.cp.xform[i].vars[j] := ScriptEditor.cp.xform[i + 1].vars[j]; end; --- 1810,1814 ---- ScriptEditor.cp.xform[i].color := ScriptEditor.cp.xform[i + 1].color; ScriptEditor.cp.xform[i].symmetry := ScriptEditor.cp.xform[i + 1].symmetry; ! for j := 0 to NRVAR - 1 do ScriptEditor.cp.xform[i].vars[j] := ScriptEditor.cp.xform[i + 1].vars[j]; end; *************** *** 1846,1850 **** ScriptEditor.cp.xform[ActiveTransform].color := ScriptEditor.cp.xform[old].color; ScriptEditor.cp.xform[ActiveTransform].density := ScriptEditor.cp.xform[old].density; ! for i := 0 to NVARS - 1 do ScriptEditor.cp.xform[ActiveTransform].vars[i] := ScriptEditor.cp.xform[old].vars[i] end --- 1846,1850 ---- ScriptEditor.cp.xform[ActiveTransform].color := ScriptEditor.cp.xform[old].color; ScriptEditor.cp.xform[ActiveTransform].density := ScriptEditor.cp.xform[old].density; ! for i := 0 to NRVAR - 1 do ScriptEditor.cp.xform[ActiveTransform].vars[i] := ScriptEditor.cp.xform[old].vars[i] end *************** *** 1940,1944 **** xform.density := 1 / NumTransforms; xform.vars[0] := 1; ! for i := 1 to NVARS - 1 do xform.vars[i] := 0; end; --- 1940,1944 ---- xform.density := 1 / NumTransforms; xform.vars[0] := 1; ! for i := 1 to NRVAR - 1 do xform.vars[i] := 0; end; *************** *** 2477,2481 **** v := GetInputArgAsFloat(0); i := GetArrayIndex(0); ! if (i >= 0) and (i < NVARS) then cp.xform[ActiveTransform].vars[i] := v; end; --- 2477,2481 ---- v := GetInputArgAsFloat(0); i := GetArrayIndex(0); ! if (i >= 0) and (i < NRVAR) then cp.xform[ActiveTransform].vars[i] := v; end; *************** *** 2649,2653 **** { Variables and constants } Scripter.AddConstant('PI', pi); ! Scripter.AddConstant('NVARS', NVARS); Scripter.AddConstant('NXFORMS', NXFORMS); Scripter.AddConstant('INSTALLPATH', ExtractFilePath(Application.exename)); --- 2649,2653 ---- { Variables and constants } Scripter.AddConstant('PI', pi); ! Scripter.AddConstant('NVARS', NRVAR); Scripter.AddConstant('NXFORMS', NXFORMS); Scripter.AddConstant('INSTALLPATH', ExtractFilePath(Application.exename)); *************** *** 2961,2965 **** dest.color := source.color; dest.density := source.density; ! for i := 0 to NVARS - 1 do dest.vars[i] := source.vars[i]; end; --- 2961,2965 ---- dest.color := source.color; dest.density := source.density; ! for i := 0 to NRVAR - 1 do dest.vars[i] := source.vars[i]; end; Index: Regstry.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Regstry.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Regstry.pas 1 Jun 2005 07:20:37 -0000 1.2 --- Regstry.pas 19 Jun 2005 05:47:55 -0000 1.3 *************** *** 34,38 **** i: integer; begin ! for i := 0 to NVARS - 1 do Variations[i] := boolean(v shr i and 1); end; --- 34,38 ---- i: integer; begin ! for i := 0 to NRVAR - 1 do Variations[i] := boolean(v shr i and 1); end; Index: Main.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Main.pas,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** Main.pas 5 Jun 2005 16:56:08 -0000 1.6 --- Main.pas 19 Jun 2005 05:47:55 -0000 1.7 *************** *** 28,32 **** Registry, RenderThread, Cmap, ExtDlgs, AppEvnts, ShellAPI, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdBaseComponent, IdIntercept, ! IdLogBase, IdLogFile, LibXmlParser, LibXmlComps; const --- 28,32 ---- Registry, RenderThread, Cmap, ExtDlgs, AppEvnts, ShellAPI, IdComponent, IdTCPConnection, IdTCPClient, IdHTTP, IdBaseComponent, IdIntercept, ! IdLogBase, IdLogFile, LibXmlParser, LibXmlComps, Xform; const *************** *** 303,307 **** AnimPal: TColorMap; ! VarMenus: array[0..NVARS] of TMenuItem; procedure LoadXMLFlame(filename, name: string); --- 303,307 ---- AnimPal: TColorMap; ! VarMenus: array[0..NRVISVAR] of TMenuItem; procedure LoadXMLFlame(filename, name: string); *************** *** 364,368 **** FullScreen, FormRender, Mutate, Adjust, Browser, Save, About, CmapData, HtmlHlp, ScriptForm, FormFavorites, Size, FormExport, msMultiPartFormData, ! Sheep, ImageColoring, RndFlame, XForm; {$R *.DFM} --- 364,368 ---- FullScreen, FormRender, Mutate, Adjust, Browser, Save, About, CmapData, HtmlHlp, ScriptForm, FormFavorites, Size, FormExport, msMultiPartFormData, ! Sheep, ImageColoring, RndFlame; {$R *.DFM} *************** *** 376,380 **** begin totvar := 0; ! for j := 0 to NVARS - 1 do begin if cp1.xform[i].vars[j] < 0 then cp1.xform[i].vars[j] := cp1.xform[i].vars[j] * -1; --- 376,380 ---- begin totvar := 0; ! for j := 0 to NRVAR - 1 do begin if cp1.xform[i].vars[j] < 0 then cp1.xform[i].vars[j] := cp1.xform[i].vars[j] * -1; *************** *** 386,390 **** end else ! for j := 0 to NVARS - 1 do begin if totVar <> 0 then cp1.xform[i].vars[j] := cp1.xform[i].vars[j] / totvar; --- 386,390 ---- end else ! for j := 0 to NRVAR - 1 do begin if totVar <> 0 then cp1.xform[i].vars[j] := cp1.xform[i].vars[j] / totvar; *************** *** 487,491 **** begin r := 0; ! for i := 0 to NVARS - 1 do begin r := r or byte(Variations[i]) shl i; --- 487,491 ---- begin r := 0; ! for i := 0 to NRVAR - 1 do begin r := r or byte(Variations[i]) shl i; *************** *** 499,503 **** i: integer; begin ! for i := 0 to NVARS - 1 do Variations[i] := boolean(v shr i and 1); end; --- 499,503 ---- i: integer; begin ! for i := 0 to NRVAR - 1 do Variations[i] := boolean(v shr i and 1); end; *************** *** 588,592 **** begin for i := 0 to Transforms - 1 do ! MainCp.xform[x].vars[i] := 1.0 / NVARS; end; --- 588,592 ---- begin for i := 0 to Transforms - 1 do ! MainCp.xform[x].vars[i] := 1.0 / NRVAR; end; *************** *** 615,625 **** for i := 0 to NumXForms(cp) - 1 do begin ! for j := 0 to NVARS - 1 do cp.xform[i].vars[j] := 0; repeat ! a := random(NVARS); until Variations[a]; repeat ! b := random(NVARS); until Variations[b]; if (a = b) then --- 615,625 ---- for i := 0 to NumXForms(cp) - 1 do begin ! for j := 0 to NRVAR - 1 do cp.xform[i].vars[j] := 0; repeat ! a := random(NRVISVAR); until Variations[a]; repeat ! b := random(NRVISVAR); until Variations[b]; if (a = b) then *************** *** 647,651 **** for i := 0 to NumXForms(cp) - 1 do begin ! for j := 0 to NVARS - 1 do cp.xform[i].vars[j] := 0; cp.xform[i].vars[integer(Variation)] := 1; --- 647,651 ---- for i := 0 to NumXForms(cp) - 1 do begin ! for j := 0 to NRVAR - 1 do cp.xform[i].vars[j] := 0; cp.xform[i].vars[integer(Variation)] := 1; *************** *** 1366,1370 **** f := c[2][1]; varlist := ''; ! for j := 0 to NVARS - 1 do begin if vars[j] <> 0 then --- 1366,1370 ---- f := c[2][1]; varlist := ''; ! for j := 0 to NRVAR - 1 do begin if vars[j] <> 0 then *************** *** 1432,1436 **** f := c[2][1]; varlist := ''; ! for j := 0 to NVARS - 1 do begin if vars[j] <> 0 then --- 1432,1436 ---- f := c[2][1]; varlist := ''; ! for j := 0 to NRVAR - 1 do begin if vars[j] <> 0 then *************** *** 2269,2273 **** Strings.Add(' p_xf' + inttostr(m) + '_cfe=' + Format('%.6g ', [e]) + ' p_xf' + inttostr(m) + '_cff=' + Format('%.6g ', [f])); ! for j := 0 to NVARS - 1 do Strings.Add(' p_xf' + inttostr(m) + '_var' + inttostr(j) + '=' + floatToStr(cp1.xform[m].vars[j])); --- 2269,2273 ---- Strings.Add(' p_xf' + inttostr(m) + '_cfe=' + Format('%.6g ', [e]) + ' p_xf' + inttostr(m) + '_cff=' + Format('%.6g ', [f])); ! for j := 0 to NRVAR - 1 do Strings.Add(' p_xf' + inttostr(m) + '_var' + inttostr(j) + '=' + floatToStr(cp1.xform[m].vars[j])); *************** *** 3993,3997 **** end; ! for i := 0 to NVARS - 1 do begin Parsecp.xform[nxform].vars[i] := 0; --- 3993,3997 ---- end; ! for i := 0 to NRVAR - 1 do begin Parsecp.xform[nxform].vars[i] := 0; *************** *** 4004,4008 **** if v <> '' then begin ! for i := 0 to NVARS - 1 do Parsecp.xform[nxform].vars[i] := 0; Parsecp.xform[nxform].vars[StrToInt(v)] := 1; --- 4004,4008 ---- if v <> '' then begin ! for i := 0 to NRVAR - 1 do Parsecp.xform[nxform].vars[i] := 0; Parsecp.xform[nxform].vars[StrToInt(v)] := 1; *************** *** 4011,4018 **** if v <> '' then begin ! for i := 0 to NVARS - 1 do Parsecp.xform[nxform].vars[i] := 0; GetTokens(v, tokens); ! if Tokens.Count > NVARS then ShowMessage('To many vars..crash?'); for i := 0 to Tokens.Count - 1 do Parsecp.xform[nxform].vars[i] := StrToFloat(Tokens[i]); --- 4011,4018 ---- if v <> '' then begin ! for i := 0 to NRVAR - 1 do Parsecp.xform[nxform].vars[i] := 0; GetTokens(v, tokens); ! if Tokens.Count > NRVAR then ShowMessage('To many vars..crash?'); for i := 0 to Tokens.Count - 1 do Parsecp.xform[nxform].vars[i] := StrToFloat(Tokens[i]); *************** *** 4318,4322 **** NewMenuItem : TMenuItem; begin ! for i := 0 to NVARS - 1 do begin NewMenuItem := TMenuItem.Create(self); NewMenuItem.Caption := uppercase(varnames[i][0]) + copy(varnames[i], 2, length(varnames[i])-1); --- 4318,4322 ---- NewMenuItem : TMenuItem; begin ! for i := 0 to NRVISVAR - 1 do begin NewMenuItem := TMenuItem.Create(self); NewMenuItem.Caption := uppercase(varnames[i][0]) + copy(varnames[i], 2, length(varnames[i])-1); Index: Global.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Global.pas,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Global.pas 2 Apr 2005 10:53:21 -0000 1.3 --- Global.pas 19 Jun 2005 05:47:55 -0000 1.4 *************** *** 22,26 **** uses SysUtils, Classes, SyncObjs, Controls, Graphics, Math, ! cmap, MyTypes, controlpoint; type --- 22,26 ---- uses SysUtils, Classes, SyncObjs, Controls, Graphics, Math, ! cmap, MyTypes, controlpoint, Xform; type *************** *** 109,113 **** SymmetryType: integer; SymmetryOrder: integer; ! Variations: array[0..NVARS - 1] of boolean; VariationOptions: integer; { For random gradients } --- 109,113 ---- SymmetryType: integer; SymmetryOrder: integer; ! Variations: array[0..NRVAR - 1] of boolean; VariationOptions: integer; { For random gradients } Index: Mutate.pas =================================================================== RCS file: /cvsroot/apophysis/2.10/Source/Mutate.pas,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** Mutate.pas 2 Apr 2005 10:53:21 -0000 1.2 --- Mutate.pas 19 Jun 2005 05:47:55 -0000 1.3 *************** *** 301,305 **** mutants[i].xform[j].c[2][0] := cps[0].xform[j].c[2][0]; mutants[i].xform[j].c[2][1] := cps[0].xform[j].c[2][1]; ! for k := 0 to NVARS - 1 do mutants[i].xform[j].vars[k] := cps[0].xform[j].vars[k]; end; --- 301,305 ---- mutants[i].xform[j].c[2][0] := cps[0].xform[j].c[2][0]; mutants[i].xform[j].c[2][1] := cps[0].xform[j].c[2][1]; ! for k := 0 to NRVISVAR - 1 do mutants[i].xform[j].vars[k] := cps[0].xform[j].vars[k]; end; *************** *** 355,359 **** cmbTrend.Items.clear; cmbTrend.AddItem('Random', Tobject(vRandom)); ! for i:= 0 to NVars -1 do begin cmbTrend.AddItem(varnames[i], Tobject(i)); end; --- 355,359 ---- cmbTrend.Items.clear; cmbTrend.AddItem('Random', Tobject(vRandom)); ! for i:= 0 to NRVISVAR -1 do begin cmbTrend.AddItem(varnames[i], Tobject(i)); end; *************** *** 483,487 **** cps[0].xform[i].c[2][0] := cpt.xform[i].c[2][0]; cps[0].xform[i].c[2][1] := cpt.xform[i].c[2][1]; ! for j := 0 to NVARS - 1 do cps[0].xform[i].vars[j] := cpt.xform[i].vars[j]; end; --- 483,487 ---- cps[0].xform[i].c[2][0] := cpt.xform[i].c[2][0]; cps[0].xform[i].c[2][1] := cpt.xform[i].c[2][1]; ! for j := 0 to NRVAR - 1 do cps[0].xform[i].vars[j] := cpt.xform[i].vars[j]; end; |