HeightfieldTesselator¶

class HeightfieldTesselator

Bases: Namable

Inheritance diagram

explicit HeightfieldTesselator(std::string const &name)
HeightfieldTesselator(HeightfieldTesselator const&) = default
NodePath generate(void)

Generates a tree of nodes that represents the heightfield. This can be reparented into the scene.

double get_elevation(double x, double y)

Fetches the elevation at (x,y), where the input coordinate is specified in pixels. This ignores the current tesselation level and instead provides an accurate number. Linear blending is used for non-integral coordinates.

PNMImage &heightfield(void)

Returns a reference to the heightfield (a PNMImage) contained inside the HeightfieldTesselator. You can use the reference to alter the heightfield.

void set_focal_point(int x, int y)

Sets the focal point. The tesselator generates high-resolution terrain around the focal point, and progressively lower and lower resolution terrain as you get farther away. The units are in pixels.

bool set_heightfield(Filename const &filename, PNMFileType *type = nullptr)

Loads the specified greyscale image file into the heightfield.

void set_horizontal_scale(double h)

Sets the horizontal scale. The default scale is 1.0, meaning that each pixel in the heightfield is 1x1 panda units wide.

void set_max_triangles(int n)

Sets the max triangles per geom.

void set_poly_count(int n)

Sets the polygon-count target. The tesselator usually manages to come within about 20% of the target, plus or minus.

void set_vertical_scale(double v)

Sets the vertical scale. The default scale is 255.0, meaning that each as the gray value ranges from (0-1), the elevation ranges from (0-255) feet.

void set_visibility_radius(int r)

Sets the visibility radius. Polygons that are completely outside the radius (relative to the focal point) are cropped away. The cropping is imperfect (all approximations are conservative), so this should be used in conjunction with a far clipping plane, fog, or some other visibility limiting mechanism. The units are in pixels.