51 lines
1.1 KiB
Go
51 lines
1.1 KiB
Go
package world
|
|
|
|
import (
|
|
"image/color"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/require"
|
|
)
|
|
|
|
func TestRender_CircleRadiusScale_AffectsRenderedRadiusPx(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
w := NewWorld(10, 10)
|
|
w.resetGrid(2 * SCALE)
|
|
|
|
// Ensure index state is initialized so Add triggers rebuild if needed.
|
|
w.IndexOnViewportChange(10, 10, 1.0)
|
|
|
|
_, err := w.AddCircle(5, 5, 2) // raw radius = 2 units
|
|
require.NoError(t, err)
|
|
|
|
// scale = 2.0
|
|
require.NoError(t, w.SetCircleRadiusScaleFp(2*SCALE))
|
|
|
|
// Reindex explicitly (safe).
|
|
w.Reindex()
|
|
|
|
params := RenderParams{
|
|
ViewportWidthPx: 10,
|
|
ViewportHeightPx: 10,
|
|
MarginXPx: 0,
|
|
MarginYPx: 0,
|
|
CameraXWorldFp: 5 * SCALE,
|
|
CameraYWorldFp: 5 * SCALE,
|
|
CameraZoom: 1.0,
|
|
Options: &RenderOptions{
|
|
BackgroundColor: color.RGBA{A: 255},
|
|
},
|
|
}
|
|
|
|
d := &fakePrimitiveDrawer{}
|
|
require.NoError(t, w.Render(d, params))
|
|
|
|
circles := d.CommandsByName("AddCircle")
|
|
require.NotEmpty(t, circles)
|
|
|
|
// AddCircle args: cx, cy, rPx
|
|
rPx := circles[0].Args[2]
|
|
require.Equal(t, float64(4), rPx, "raw radius=2 with scale=2 => eff radius=4 => rPx=4 at zoom=1")
|
|
}
|