HeightMapShape3D
A 3D height map shape used for physics collision.
HeightMapShape3D.swift:22class HeightMapShape3D
A 3D heightmap shape, intended for use in physics. Usually used to provide a shape for a CollisionShape3D
. This is useful for terrain, but it is limited as overhangs (such as caves) cannot be stored. Holes in a HeightMapShape3D
are created by assigning very low values to points in the desired area.
Performance: HeightMapShape3D
is faster to check collisions against than ConcavePolygonShape3D
, but it is significantly slower than primitive shapes like BoxShape3D
.
A heightmap collision shape can also be build by using an Image
reference:
Superclasses
class Shape3D
Abstract base class for 3D shapes used for physics collision.
Citizens in SwiftGodot
Conformances
protocol CustomStringConvertible
A type with a customized textual representation.
protocol Equatable
A type that can be compared for value equality.
protocol Hashable
A type that can be hashed into a
Hasher
to produce an integer hash value.protocol Identifiable<ID>
A class of types whose instances hold the value of an entity with stable identity.
protocol VariantRepresentable
Types that conform to VariantRepresentable can be stored directly in
Variant
with no conversion. These include all of the Variant types from Godot (for exampleGString
,Rect
,Plane
), Godot objects (those that subclass SwiftGodot.Object) as well as the built-in Swift types UInt8, Int64 and Double.protocol VariantStorable
Types that conform to VariantStorable can be stored in a Variant and can be extracted back out of a Variant.
Type members
Instance members
var mapData: PackedFloat32Array
Height map data. The array’s size must be equal to
mapWidth
multiplied bymapDepth
.var mapDepth: Int32
Number of vertices in the depth of the height map. Changing this will resize the
mapData
.var mapWidth: Int32
Number of vertices in the width of the height map. Changing this will resize the
mapData
.func getMaxHeight(
) -> Double Returns the largest height value found in
mapData
. Recalculates only whenmapData
changes.func getMinHeight(
) -> Double Returns the smallest height value found in
mapData
. Recalculates only whenmapData
changes.func updateMapDataFromImage(Image?, heightMin: Double, heightMax: Double
) Updates
mapData
with data read from anImage
reference. Automatically resizes heightmapmapWidth
andmapDepth
to fit the full image width and height.