no-wrap option; pivoted exponential zoom
This commit is contained in:
@@ -36,7 +36,7 @@ func TestDrawCirclesFromPlan_DuplicatesAcrossTilesAndClips(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
d := &fakePrimitiveDrawer{}
|
||||
drawCirclesFromPlan(d, plan, w.W, w.H)
|
||||
drawCirclesFromPlan(d, plan, w.W, w.H, true)
|
||||
|
||||
// Expect 4 circle copies, one per tile that covers the expanded canvas.
|
||||
wantNames := []string{
|
||||
@@ -118,7 +118,7 @@ func TestDrawCirclesFromPlan_SkipsTilesWithoutCircles(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
d := &fakePrimitiveDrawer{}
|
||||
drawCirclesFromPlan(d, plan, w.W, w.H)
|
||||
drawCirclesFromPlan(d, plan, w.W, w.H, true)
|
||||
|
||||
// No circles => no commands.
|
||||
require.Empty(t, d.Commands())
|
||||
@@ -149,7 +149,7 @@ func TestDrawCirclesFromPlan_ProjectsRadiusWithZoom(t *testing.T) {
|
||||
require.NoError(t, err)
|
||||
|
||||
d := &fakePrimitiveDrawer{}
|
||||
drawCirclesFromPlan(d, plan, w.W, w.H)
|
||||
drawCirclesFromPlan(d, plan, w.W, w.H, true)
|
||||
|
||||
// There should be at least one AddCircle.
|
||||
cmds := d.CommandsByName("AddCircle")
|
||||
@@ -161,3 +161,39 @@ func TestDrawCirclesFromPlan_ProjectsRadiusWithZoom(t *testing.T) {
|
||||
require.Equal(t, 4.0, c.Args[2])
|
||||
}
|
||||
}
|
||||
|
||||
func TestCircles_NoWrap_DoesNotDuplicateAcrossEdges(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
w := NewWorld(10, 10)
|
||||
w.resetGrid(2 * SCALE)
|
||||
|
||||
_, err := w.AddCircle(9, 9, 2)
|
||||
require.NoError(t, err)
|
||||
for _, obj := range w.objects {
|
||||
w.indexObject(obj)
|
||||
}
|
||||
|
||||
params := RenderParams{
|
||||
ViewportWidthPx: 10,
|
||||
ViewportHeightPx: 10,
|
||||
MarginXPx: 0,
|
||||
MarginYPx: 0,
|
||||
CameraXWorldFp: 5 * SCALE,
|
||||
CameraYWorldFp: 5 * SCALE,
|
||||
CameraZoom: 1.0,
|
||||
Options: &RenderOptions{
|
||||
DisableWrapScroll: true,
|
||||
Layers: []RenderLayer{RenderLayerCircles},
|
||||
},
|
||||
}
|
||||
|
||||
d := &fakePrimitiveDrawer{}
|
||||
require.NoError(t, w.Render(d, params))
|
||||
|
||||
cmds := d.CommandsByName("AddCircle")
|
||||
require.Len(t, cmds, 1)
|
||||
|
||||
// Center must be at (9,9) only, no (-1,*) or (*,-1).
|
||||
require.Equal(t, []float64{9, 9, 2}, cmds[0].Args)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user