fixed problem with rotated flames

This commit is contained in:
ronaldhordijk 2005-04-02 06:28:50 +00:00
parent e6423e4f5d
commit 8b0e9e46c2

View File

@ -55,8 +55,8 @@ type
filter_width: Integer; filter_width: Integer;
filter: array of array of extended; filter: array of array of extended;
image_Width: Integer; image_Width: Int64;
image_Height: Integer; image_Height: Int64;
BucketWidth: Integer; BucketWidth: Integer;
BucketHeight: Integer; BucketHeight: Integer;
BucketSize: Integer; BucketSize: Integer;
@ -74,6 +74,7 @@ type
bounds: array[0..3] of extended; bounds: array[0..3] of extended;
size: array[0..1] of extended; size: array[0..1] of extended;
FRotationCenter: array[0..1] of extended;
ppux, ppuy: extended; ppux, ppuy: extended;
nrSlices: int64; nrSlices: int64;
Slice: int64; Slice: int64;
@ -350,14 +351,14 @@ begin
if FStop then if FStop then
Exit; Exit;
px := points[i].x - FCP.Center[0]; px := points[i].x - FRotationCenter[0];
py := points[i].y - FCP.Center[1]; py := points[i].y - FRotationCenter[1];
nx := px * ca + py * sa; nx := px * ca + py * sa;
ny := -px * sa + py * ca; ny := -px * sa + py * ca;
px := nx + FCP.Center[0] - bx; px := nx + FRotationCenter[0] - bx;
py := ny + FCP.Center[1] - by; py := ny + FRotationCenter[1] - by;
if ((px < 0) or (px > wx) or if ((px < 0) or (px > wx) or
(py < 0) or (py > wy)) then (py < 0) or (py > wy)) then
@ -413,7 +414,6 @@ end;
procedure TRendererMM64.CreateBMFromBuckets(YOffset: Integer); procedure TRendererMM64.CreateBMFromBuckets(YOffset: Integer);
var var
i, j: integer; i, j: integer;
alpha: double; alpha: double;
// r,g,b: double; // r,g,b: double;
ai, ri, gi, bi: Integer; ai, ri, gi, bi: Integer;
@ -600,6 +600,9 @@ var
begin begin
FStop := False; FStop := False;
FRotationCenter[0] := fcp.center[0];
FRotationCenter[1] := fcp.center[1];
image_height := fcp.Height; image_height := fcp.Height;
image_Width := fcp.Width; image_Width := fcp.Width;
oversample := fcp.spatial_oversample; oversample := fcp.spatial_oversample;