Added definable limit of added variations count when generating a symmetric flame.

This commit is contained in:
utak3r 2005-10-09 13:28:00 +00:00
parent c6185f9095
commit fff8159c07
6 changed files with 71 additions and 16 deletions

View File

@ -1,10 +1,11 @@
2.02j
2.03a
+ Fixed save flame naming problem
+ Save png transparent images
+ multithread rendering
+ Parameterized variations
+ blob variation
+ pdj variation
+ Added definable limit of added variations count when generating symmetric flames
2.02i
+ Fixed Randomize gradient in batch bug

View File

@ -1650,7 +1650,8 @@ begin
// for (k = 1; (k < sym)&&(i < NXFORMS); k + + ) {
k := 1;
while (k < sym) and (i < NXFORMS) do
// while (k < sym) and (i < NXFORMS) do
while (k < sym) and (i < SymmetryNVars) do
begin
cp.xform[i].density := 1.0;
cp.xform[i].vars[0] := 1.0;

View File

@ -107,6 +107,7 @@ var
defFlameFile: string;
SymmetryType: integer;
SymmetryOrder: integer;
SymmetryNVars: integer;
Variations: array[0..63] of boolean;
VariationOptions: int64;
{ For random gradients }

View File

@ -4,7 +4,7 @@ object OptionsForm: TOptionsForm
BorderIcons = [biSystemMenu, biMinimize, biMaximize, biHelp]
BorderStyle = bsDialog
Caption = 'Options'
ClientHeight = 296
ClientHeight = 308
ClientWidth = 467
Color = clBtnFace
Font.Charset = ANSI_CHARSET
@ -22,7 +22,7 @@ object OptionsForm: TOptionsForm
TextHeight = 13
object btnOK: TButton
Left = 304
Top = 264
Top = 280
Width = 75
Height = 25
Caption = 'OK'
@ -32,7 +32,7 @@ object OptionsForm: TOptionsForm
end
object btnCancel: TButton
Left = 384
Top = 264
Top = 280
Width = 75
Height = 25
Caption = 'Cancel'
@ -43,8 +43,8 @@ object OptionsForm: TOptionsForm
Left = 8
Top = 8
Width = 451
Height = 249
ActivePage = GeneralPage
Height = 265
ActivePage = RandomPage
TabOrder = 0
TabStop = False
object GeneralPage: TTabSheet
@ -490,7 +490,7 @@ object OptionsForm: TOptionsForm
Left = 8
Top = 136
Width = 193
Height = 72
Height = 97
Caption = 'Forced symmetry'
TabOrder = 3
object Label7: TLabel
@ -511,6 +511,15 @@ object OptionsForm: TOptionsForm
AutoSize = False
Caption = 'Order:'
end
object Label24: TLabel
Left = 8
Top = 72
Width = 32
Height = 13
Alignment = taRightJustify
AutoSize = False
Caption = 'Limit:'
end
object cmbSymType: TComboBox
Left = 48
Top = 16
@ -548,6 +557,25 @@ object OptionsForm: TOptionsForm
TabOrder = 2
Thousands = False
end
object txtSymNVars: TEdit
Left = 48
Top = 70
Width = 121
Height = 21
TabOrder = 3
Text = '12'
end
object udSymNVars: TUpDown
Left = 169
Top = 70
Width = 15
Height = 21
Associate = txtSymNVars
Min = 4
Position = 12
TabOrder = 4
Thousands = False
end
end
end
object VariationsPage: TTabSheet
@ -557,7 +585,7 @@ object OptionsForm: TOptionsForm
Left = 8
Top = 0
Width = 341
Height = 217
Height = 233
HelpContext = 1026
Caption = 'Enabled'
TabOrder = 2
@ -565,7 +593,7 @@ object OptionsForm: TOptionsForm
Left = 12
Top = 16
Width = 309
Height = 189
Height = 209
ItemHeight = 13
TabOrder = 0
TabWidth = 100
@ -573,7 +601,7 @@ object OptionsForm: TOptionsForm
end
object btnSetAll: TButton
Left = 356
Top = 160
Top = 176
Width = 75
Height = 25
HelpContext = 1027
@ -583,7 +611,7 @@ object OptionsForm: TOptionsForm
end
object btnClearAll: TButton
Left = 356
Top = 192
Top = 208
Width = 75
Height = 25
HelpContext = 1028
@ -1431,6 +1459,6 @@ object OptionsForm: TOptionsForm
end
object OpenDialog: TOpenDialog
Left = 16
Top = 264
Top = 280
end
end

View File

@ -178,6 +178,9 @@ type
txtTryLength: TEdit;
txtJPEGquality: TComboBox;
rgTransparency: TRadioGroup;
Label24: TLabel;
txtSymNVars: TEdit;
udSymNVars: TUpDown;
procedure btnCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btnOKClick(Sender: TObject);
@ -280,8 +283,13 @@ begin
txtRandomPrefix.text := RandomPrefix;
chkKeepbackground.Checked := KeepBackground;
cmbSymType.ItemIndex := SymmetryType;
if (SymmetryType = 0) or (SymmetryType = 1) then txtSymOrder.enabled := false;
if (SymmetryType = 0) or (SymmetryType = 1) then
begin
txtSymOrder.enabled := false;
txtSymNVars.enabled := false;
end;
udSymOrder.Position := SymmetryOrder;
udSymNVars.Position := SymmetryNVars;
{ Variations tab }
UnpackVariations(VariationOptions);
@ -395,6 +403,7 @@ begin
RandomPrefix := txtRandomPrefix.text;
SymmetryType := cmbSymType.ItemIndex;
SymmetryOrder := udSymOrder.Position;
SymmetryNVars := udSymNVars.Position;
KeepBackground := chkKeepbackground.Checked;
{Gradient tab }
@ -477,9 +486,14 @@ end;
procedure TOptionsForm.cmbSymTypeChange(Sender: TObject);
begin
if (cmbSymType.ItemIndex = 0) or (cmbSymType.ItemIndex = 1) then
txtSymOrder.enabled := false
else
begin
txtSymOrder.enabled := false;
txtSymNVars.enabled := false;
end else
begin
txtSymOrder.enabled := true;
txtSymNVars.enabled := true;
end;
end;
procedure TOptionsForm.btnSetAllClick(Sender: TObject);

View File

@ -267,6 +267,14 @@ begin
begin
SymmetryOrder := 4;
end;
if Registry.ValueExists('SymmetryNVars') then
begin
SymmetryNVars := Registry.ReadInteger('SymmetryNVars');
end
else
begin
SymmetryNVars := 12;
end;
if Registry.ValueExists('VariationOptions') then
begin
VariationOptions := Registry.ReadInteger('VariationOptions');
@ -535,6 +543,7 @@ begin
RandomDate := '';
SymmetryType := 0;
SymmetryOrder := 4;
SymmetryNVars := 12;
VariationOptions := 262143;
UnpackVariations(VariationOptions);
MinNodes := 2;
@ -872,6 +881,7 @@ begin
Registry.WriteString('SmoothPaletteFile', defSmoothPaletteFile);
Registry.WriteInteger('SymmetryType', SymmetryType);
Registry.WriteInteger('SymmetryOrder', SymmetryOrder);
Registry.WriteInteger('SymmetryNVars', SymmetryNVars);
Registry.WriteInteger('VariationOptions', VariationOptions);
Registry.WriteInteger('ReferenceMode', ReferenceMode);
Registry.WriteInteger('MinNodes', MinNodes);