Stage 3 of the planCameraTour pipeline — pick the
order of spaces to visit and the chosen viewpoint per stop.
The default planner is planTourTwoOpt — it seeds with the
greedy nearest-neighbour walk from
CameraTourPlanOptions.startSpaceId (or the largest
space when no start hint is given), selects each space's
highest-scoring viewpoint, then runs 2-opt swaps until the
tour is a local optimum. planTourGreedy is the unrefined
seed, exposed so latency-sensitive callers can skip the
refinement pass.
Implementations should:
visit every space that has at least one viewpoint;
skip spaces whose viewpoint bucket is empty;
prefer adjacent-via-portal hops over teleporting across
the building, even when a teleport would be shorter
Euclidean distance.
Stage 3 of the planCameraTour pipeline — pick the order of spaces to visit and the chosen viewpoint per stop.
The default planner is
planTourTwoOpt— it seeds with the greedy nearest-neighbour walk from CameraTourPlanOptions.startSpaceId (or the largest space when no start hint is given), selects each space's highest-scoring viewpoint, then runs 2-opt swaps until the tour is a local optimum.planTourGreedyis the unrefined seed, exposed so latency-sensitive callers can skip the refinement pass.Implementations should: