');
FileList.Add('');
// ***** Flame parameters *****
FileList.Add('');
FileList.Add('');
if makeThumbnail > 0 then
FileList.Add(' | ');
// Display of params as of here (Adjust Panel: Rendering and Camera)
FileList.Add('| Name | ' + Flame.name + ' | ');
FileList.Add('| Version | ' + ProgramVersionString + ' | ');
FileList.Add('| Size | ' + IntToStr(Flame.width) + 'x' + IntToStr(Flame.height) + ' px | ');
FileList.Add('| X Position | ' + Format('%.4f', [Flame.X]) + ' | ');
FileList.Add('| Y Position | ' + Format('%.4f', [Flame.Y]) + ' | ');
FileList.Add('| Rotation | ' + Format('%.2f', [RadToDeg(Flame.angle)]) + ' | ');
FileList.Add('| Zoom | ' + Format('%.3f', [Flame.Zoom]) + ' | ');
FileList.Add('| Scale | ' + Format('%.4f', [Flame.Scale]) + ' | ');
FileList.Add('| Gamma | ' + Format('%.2f', [Flame.Gamma]) + ' | ');
FileList.Add('| Brightness | ' + Format('%.2f', [Flame.Brightness]) + ' | ');
FileList.Add('| Vibrancy | ' + Format('%.2f', [Flame.Vibrancy]) + ' | ');
FileList.Add('| Background | | ');
FileList.Add('');
FileList.Add(' ');
FileList.Add(' | ');
// ***** Transforms pane *****
FileList.Add('');
FileList.Add('');
FileList.Add('');
fx := 0;
tf := Transforms;
FileList.Add('');
FileList.Add('| Transform | ');
SetActiveTransform(Transforms);
if Flame.FinalXformEnabled then fx := 1;
for Xform := 0 to tf do begin
if (fx > 0) And (Xform = tf) then FileList.Add('Final | ');
else if (Xform <> tf) then FileList.Add('' + IntToStr(Xform + 1) + ' | ');
end;
FileList.Add(' ');
if fx > 0 then tf := Transforms+1;
// Display COEFS
FileList.Add('');
FileList.Add('| Xx | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
FileList.Add('' + Format('%.6f', [Transform.A]) + ' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| Xy | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
FileList.Add('' + Format('%.6f', [0 - Transform.C]) + ' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| Yx | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
FileList.Add('' + Format('%.6f', [0 - Transform.B]) + ' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| Yy | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
FileList.Add('' + Format('%.6f', [Transform.D]) + ' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| Ox | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
FileList.Add('' + Format('%.6f', [Transform.E]) + ' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| Oy | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
FileList.Add('' + Format('%.6f', [0 - Transform.F]) + ' | ');
end;
FileList.Add(' ');
// POST transforms
// First check if any post-transforms are used on any transform
Xform := 0;
isPost:=0;
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
if (Transform.post[0,0]<>1) or (Transform.post[0,1]<>0) or (Transform.post[1,0]<>0) or (Transform.post[1,1]<>1) or (Transform.post[2,0]<>0) or (Transform.post[2,1]<>0) then inc(isPost);
end;
// Then, if at least one was found, check for each transform to display them
if isPost > 0 then begin
FileList.Add('');
FileList.Add('| post Xx | ');
for XPform := 0 to tf-1 do begin
SetActiveTransform(XPform)
if(Transform.post[0,0]<>1) or (Transform.post[0,1]<>0) or (Transform.post[1,0]<>0) or (Transform.post[1,1]<>1) or (Transform.post[2,0]<>0) or (Transform.post[2,1]<>0) then
FileList.Add('' + Format('%.6f', [Transform.post[0,0]]) + ' | ');
else FileList.Add(' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| post Xy | ');
for XPform := 0 to tf-1 do begin
SetActiveTransform(XPform)
if(Transform.post[0,0]<>1) or (Transform.post[0,1]<>0) or (Transform.post[1,0]<>0) or (Transform.post[1,1]<>1) or (Transform.post[2,0]<>0) or (Transform.post[2,1]<>0) then
FileList.Add('' + Format('%.6f', [Transform.post[0,1]]) + ' | ');
else FileList.Add(' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| post Yx | ');
for XPform := 0 to tf-1 do begin
SetActiveTransform(XPform)
if(Transform.post[0,0]<>1) or (Transform.post[0,1]<>0) or (Transform.post[1,0]<>0) or (Transform.post[1,1]<>1) or (Transform.post[2,0]<>0) or (Transform.post[2,1]<>0) then
FileList.Add('' + Format('%.6f', [Transform.post[1,0]]) + ' | ');
else FileList.Add(' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| post Yy | ');
for XPform := 0 to tf-1 do begin
SetActiveTransform(XPform)
if(Transform.post[0,0]<>1) or (Transform.post[0,1]<>0) or (Transform.post[1,0]<>0) or (Transform.post[1,1]<>1) or (Transform.post[2,0]<>0) or (Transform.post[2,1]<>0) then
FileList.Add('' + Format('%.6f', [Transform.post[1,1]]) + ' | ');
else FileList.Add(' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| post Ox | ');
for XPform := 0 to tf-1 do begin
SetActiveTransform(XPform)
if(Transform.post[0,0]<>1) or (Transform.post[0,1]<>0) or (Transform.post[1,0]<>0) or (Transform.post[1,1]<>1) or (Transform.post[2,0]<>0) or (Transform.post[2,1]<>0) then
FileList.Add('' + Format('%.6f', [Transform.post[2,0]]) + ' | ');
else FileList.Add(' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| post Oy | ');
for XPform := 0 to tf-1 do begin
SetActiveTransform(XPform)
if(Transform.post[0,0]<>1) or (Transform.post[0,1]<>0) or (Transform.post[1,0]<>0) or (Transform.post[1,1]<>1) or (Transform.post[2,0]<>0) or (Transform.post[2,1]<>0) then
FileList.Add('' + Format('%.6f', [Transform.post[2,1]]) + ' | ');
else FileList.Add(' | ');
end;
FileList.Add(' ');
end;
// Display Weight, Symmetry and Color
FileList.Add('');
FileList.Add('| Weight | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
if (Xform = Transforms) And (fx > 0) then FileList.Add(' | ');
else FileList.Add('' + Format('%.4f', [Transform.Weight]) + ' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| Symmetry | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
FileList.Add('' + Format('%.4f', [Transform.Symmetry]) + ' | ');
end;
FileList.Add(' ');
FileList.Add('');
FileList.Add('| Color | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
FileList.Add('' + Format('%.3f', [Transform.Color]) + ' | ');
end;
FileList.Add(' ');
// Display VARIATIONS
for Vars := 0 to NVARS - 1 do begin
// Test if this variation should be on display
displayAllow := 0;
if displayAllVars > 0 then displayAllow := 1;
else begin
VarVal := 0;
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
VarVal := VarVal + Transform.Variation[Vars];
end;
if VarVal <> 0 then displayAllow := 1;
end
// Show the row for this variation if allowed
if displayAllow = 1 then begin
FileList.Add('');
FileList.Add('| ' + VariationName(Vars) + ' | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
if (Transform.Variation[Vars] = 0) then FileList.Add(' | ');
else FileList.Add('' + Format('%.6f', [Transform.Variation[Vars]]) + ' | ');
end;
FileList.Add(' ');
// Display VARIABLES if any for this variation
for varia := 0 to NumVariables do begin
oscope := 0;
wedge := 0;
if (VariationName(Vars)='oscilloscope') and Pos('oscope_', VariableName(varia)) = 1 then oscope:=1;
// if VariationName(Vars)='wedge' and (Pos('wedge_j', VariableName(varia)) = 0 and Pos('wedge_s', VariableName(varia)) = 0) then wedge:=1;
// if ((oscope=1 or wedge=1) or (Pos(VariationName(Vars)+'_', VariableName(varia)) = 1)) then begin
if ((oscope=1) or (Pos(VariationName(Vars)+'_', VariableName(varia)) = 1)) then begin
FileList.Add('');
FileList.Add('| '+VariableName(varia)+' | ');
for Xform := 0 to tf-1 do begin
SetActiveTransform(Xform);
if (Transform.Variation[Vars] = 0) then FileList.Add(' | ');
else FileList.Add('' + Format('%.4f', [Transform.Variable[varia]]) + ' | ');
end;
FileList.Add(' ');
end;
end;
end;
end;
FileList.Add('');
FileList.Add(' ');
FileList.Add(' | ');
FileList.Add('
');
FileList.Add('