pub struct ElevationGrid {
pub width: u32,
pub height: u32,
pub min_elev: f32,
pub max_elev: f32,
pub data: Vec<f32>,
pub tile: TileId,
}Expand description
Fields§
§width: u32Number of samples along the X (east-west) axis.
height: u32Number of samples along the Y (north-south) axis.
min_elev: f32Minimum elevation in the grid (meters).
max_elev: f32Maximum elevation in the grid (meters).
data: Vec<f32>Row-major elevation data (width * height samples, meters).
Index y * width + x gives the sample at column x, row y,
where row 0 is the northern-most row.
tile: TileIdThe tile this grid is aligned to.
Implementations§
Source§impl ElevationGrid
impl ElevationGrid
Sourcepub fn flat(tile: TileId, width: u32, height: u32) -> Self
pub fn flat(tile: TileId, width: u32, height: u32) -> Self
Create a flat (all-zero) elevation grid for a tile.
Useful as a no-op placeholder when terrain is disabled or while a real elevation tile is still loading.
Sourcepub fn from_data(
tile: TileId,
width: u32,
height: u32,
data: Vec<f32>,
) -> Option<Self>
pub fn from_data( tile: TileId, width: u32, height: u32, data: Vec<f32>, ) -> Option<Self>
Create an elevation grid from raw height data, computing min/max automatically.
Returns None if data.len() != width * height (size mismatch).
Sourcepub fn elevation_range(&self) -> f32
pub fn elevation_range(&self) -> f32
The elevation range (max - min) in meters.
Returns 0.0 for flat grids. Useful for terrain mesh LOD decisions: tiles with small elevation range can use coarser mesh resolution.
Sourcepub fn sample(&self, u: f64, v: f64) -> Option<f32>
pub fn sample(&self, u: f64, v: f64) -> Option<f32>
Bilinear interpolation at fractional coordinates (u, v) in
[0, 1].
(0, 0)is the north-west corner of the tile.(1, 1)is the south-east corner.
Values outside [0, 1] are clamped to the grid boundary.
Returns None if the grid is empty (width == 0 or
height == 0).
Sourcepub fn sample_geo(&self, coord: &GeoCoord) -> Option<f32>
pub fn sample_geo(&self, coord: &GeoCoord) -> Option<f32>
Sample elevation at a geographic coordinate.
Converts the GeoCoord to tile-relative (u, v) using the
tile’s geographic bounds, then delegates to sample.
Returns None if:
- The tile has zero geographic extent (degenerate).
- The grid is empty.
Coordinates outside the tile’s bounds are clamped to the
nearest edge (via the [0, 1] clamp in sample).
Trait Implementations§
Source§impl Clone for ElevationGrid
impl Clone for ElevationGrid
Source§fn clone(&self) -> ElevationGrid
fn clone(&self) -> ElevationGrid
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more