HighMap library (C++)
Loading...
Searching...
No Matches
hmap::TerrainTriMesh Class Reference

#include <terrain_tri_mesh.hpp>

Classes

struct  BoundingBox
 
struct  Edge
 
struct  EdgeHash
 
struct  Neighbor
 
struct  NeighborData
 
struct  Triangle
 

Public Member Functions

 TerrainTriMesh ()=default
 
 TerrainTriMesh (const std::vector< glm::vec3 > &ref_points)
 
 TerrainTriMesh (const std::vector< float > &x, const std::vector< float > &y, const std::vector< float > &z)
 
void triangulate_delaunay ()
 
void compute_neighbors ()
 
void compute_gradients ()
 
void relax_xy (float lambda=0.5f, int iterations=1, bool preserve_chull=true)
 
void relax_xyz (float lambda=0.5f, int iterations=1, bool preserve_chull=true)
 
void relax_xyz_taubin (float lambda=0.5f, float mu=-0.55f, int iterations=1, bool preserve_chull=true)
 
void remap_z (float vmin=0.f, float vmax=1.f)
 
void slope_limiter (float max_slope, int iterations=10, float sigma=0.1f)
 
void slope_limiter (const std::vector< float > &max_slope, int iterations=10, float sigma=0.1f)
 
void subdivise ()
 
bool barycentric (const glm::vec2 &p, size_t i0, size_t i1, size_t i2, float &w0, float &w1, float &w2) const
 
int find_triangle (const glm::vec2 &p, int start_tri=0, bool linear_search=false) const
 
int neighbor_triangle (int tri_index, int edge_index) const
 
float interpolate_z_linear (const glm::vec2 &p, int &last_tri, float fill_value=0.f) const
 
float interpolate_z_linear_gradient (const glm::vec2 &p, int &last_tri, float fill_value=0.f, float gradient_scaling=1.f) const
 
float interpolate_z_nearest (const glm::vec2 &p) const
 
float interpolate_z_nearest_approx (const glm::vec2 &p, int &last_tri, float fill_value=0.f) const
 
TerrainTriMesh::BoundingBox get_bbox () const
 
glm::vec2 get_range_z () const
 
glm::vec3 get_reference_lengths () const
 
std::vector< float > get_vertex_areas (bool normalized) const
 
float get_reference_area_xy () const
 
float get_reference_area () const
 
size_t size () const
 
const std::vector< glm::vec3 > & get_points () const
 
std::vector< glm::vec3 > & get_points ()
 
const std::vector< Triangle > & get_triangles () const
 
const std::vector< size_t > & get_convex_hull () const
 
const NeighborDataget_neighbors () const
 
bool export_obj (const std::string &filepath) const
 
std::string info_string () const
 
void print_info () const
 
Array to_array (const glm::ivec2 &shape, const std::vector< float > &values={}, const glm::vec4 &bbox={0.f, 1.f, 0.f, 1.f}) const
 
void to_csv (const std::string &fname) const
 

Constructor & Destructor Documentation

◆ TerrainTriMesh() [1/3]

hmap::TerrainTriMesh::TerrainTriMesh ( )
default

◆ TerrainTriMesh() [2/3]

hmap::TerrainTriMesh::TerrainTriMesh ( const std::vector< glm::vec3 > &  ref_points)

◆ TerrainTriMesh() [3/3]

hmap::TerrainTriMesh::TerrainTriMesh ( const std::vector< float > &  x,
const std::vector< float > &  y,
const std::vector< float > &  z 
)

Member Function Documentation

◆ triangulate_delaunay()

void hmap::TerrainTriMesh::triangulate_delaunay ( )

◆ compute_neighbors()

void hmap::TerrainTriMesh::compute_neighbors ( )

◆ compute_gradients()

void hmap::TerrainTriMesh::compute_gradients ( )

◆ relax_xy()

void hmap::TerrainTriMesh::relax_xy ( float  lambda = 0.5f,
int  iterations = 1,
bool  preserve_chull = true 
)

◆ relax_xyz()

void hmap::TerrainTriMesh::relax_xyz ( float  lambda = 0.5f,
int  iterations = 1,
bool  preserve_chull = true 
)

◆ relax_xyz_taubin()

void hmap::TerrainTriMesh::relax_xyz_taubin ( float  lambda = 0.5f,
float  mu = -0.55f,
int  iterations = 1,
bool  preserve_chull = true 
)

◆ remap_z()

void hmap::TerrainTriMesh::remap_z ( float  vmin = 0.f,
float  vmax = 1.f 
)

◆ slope_limiter() [1/2]

void hmap::TerrainTriMesh::slope_limiter ( float  max_slope,
int  iterations = 10,
float  sigma = 0.1f 
)

◆ slope_limiter() [2/2]

void hmap::TerrainTriMesh::slope_limiter ( const std::vector< float > &  max_slope,
int  iterations = 10,
float  sigma = 0.1f 
)

◆ subdivise()

void hmap::TerrainTriMesh::subdivise ( )

◆ barycentric()

bool hmap::TerrainTriMesh::barycentric ( const glm::vec2 &  p,
size_t  i0,
size_t  i1,
size_t  i2,
float &  w0,
float &  w1,
float &  w2 
) const

◆ find_triangle()

int hmap::TerrainTriMesh::find_triangle ( const glm::vec2 &  p,
int  start_tri = 0,
bool  linear_search = false 
) const

◆ neighbor_triangle()

int hmap::TerrainTriMesh::neighbor_triangle ( int  tri_index,
int  edge_index 
) const

◆ interpolate_z_linear()

float hmap::TerrainTriMesh::interpolate_z_linear ( const glm::vec2 &  p,
int &  last_tri,
float  fill_value = 0.f 
) const

◆ interpolate_z_linear_gradient()

float hmap::TerrainTriMesh::interpolate_z_linear_gradient ( const glm::vec2 &  p,
int &  last_tri,
float  fill_value = 0.f,
float  gradient_scaling = 1.f 
) const

◆ interpolate_z_nearest()

float hmap::TerrainTriMesh::interpolate_z_nearest ( const glm::vec2 &  p) const

◆ interpolate_z_nearest_approx()

float hmap::TerrainTriMesh::interpolate_z_nearest_approx ( const glm::vec2 &  p,
int &  last_tri,
float  fill_value = 0.f 
) const

◆ get_bbox()

TerrainTriMesh::BoundingBox hmap::TerrainTriMesh::get_bbox ( ) const

◆ get_range_z()

glm::vec2 hmap::TerrainTriMesh::get_range_z ( ) const

◆ get_reference_lengths()

glm::vec3 hmap::TerrainTriMesh::get_reference_lengths ( ) const

◆ get_vertex_areas()

std::vector< float > hmap::TerrainTriMesh::get_vertex_areas ( bool  normalized) const

◆ get_reference_area_xy()

float hmap::TerrainTriMesh::get_reference_area_xy ( ) const

◆ get_reference_area()

float hmap::TerrainTriMesh::get_reference_area ( ) const

◆ size()

size_t hmap::TerrainTriMesh::size ( ) const

◆ get_points() [1/2]

const std::vector< glm::vec3 > & hmap::TerrainTriMesh::get_points ( ) const

◆ get_points() [2/2]

std::vector< glm::vec3 > & hmap::TerrainTriMesh::get_points ( )

◆ get_triangles()

const std::vector< TerrainTriMesh::Triangle > & hmap::TerrainTriMesh::get_triangles ( ) const

◆ get_convex_hull()

const std::vector< size_t > & hmap::TerrainTriMesh::get_convex_hull ( ) const

◆ get_neighbors()

const TerrainTriMesh::NeighborData & hmap::TerrainTriMesh::get_neighbors ( ) const

◆ export_obj()

bool hmap::TerrainTriMesh::export_obj ( const std::string &  filepath) const

◆ info_string()

std::string hmap::TerrainTriMesh::info_string ( ) const

◆ print_info()

void hmap::TerrainTriMesh::print_info ( ) const

◆ to_array()

Array hmap::TerrainTriMesh::to_array ( const glm::ivec2 &  shape,
const std::vector< float > &  values = {},
const glm::vec4 &  bbox = {0.f, 1.f, 0.f, 1.f} 
) const

◆ to_csv()

void hmap::TerrainTriMesh::to_csv ( const std::string &  fname) const

The documentation for this class was generated from the following files: