pub struct WorldDistance(/* private fields */);Expand description
Distance in the coordinate units a replay packet stream is in (1 unit = 15 meters): entity positions, shell impact points, and any offset between two of them.
The 15 is measured, three ways, on the 15.1.0 corpus:
- Hull length. Shell impacts on a ship, rotated into its body frame, reach 8 to 10 units from the hull origin on ships whose bow fire node sits 104 to 128 m out. At 15 m/unit that is 120 to 152 m, just past the bow node and inside a ~135 m half-length. At 30 it would be 240 to 300 m, i.e. half-kilometre ships.
- Hull beam. The same impacts reach 1.1 to 1.6 units abeam, which at 15 m/unit is a 34 to 49 m beam for ships whose real beams are 26 to 38 m. Generous by the few meters an impact point sits proud of the plate; at 30 it would put every beam past 68 m.
- Gun range. The longest shot in a replay, as
|target - origin|from the salvo packet, runs 247 to 808 units. At 15 m/unit those are 3.7 to 12.1 km, every one inside the firing ship’s GameParamsmaxDist. At 30, ten of the twenty-six replays measured put shots beyond their own ship’s maximum range.
A fourth, functional measurement agrees: sweeping the scale used to place shell impacts into hull fire sections, and scoring each against the section the server actually lit, gives a single-peaked curve topping out at 15 to 16.
So this space and ShipModelDistance measure the same, which is why
[WORLD_TO_METERS] is defined as [SHIP_TO_METERS]. They are still separate
types because they are separate spaces: a world position is not a
ship-model coordinate, and only one of the two is anchored by the waterline
and dispersion evidence on ShipModelDistance.
Implementations§
Trait Implementations§
Source§impl Clone for WorldDistance
impl Clone for WorldDistance
Source§fn clone(&self) -> WorldDistance
fn clone(&self) -> WorldDistance
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more