Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Curve3D

Inherits: Resource < RefCounted < Object

Describes a Bézier curve in 3D space.

Description

This class describes a Bézier curve in 3D space. It is mainly used to give a shape to a Path3D, but can be manually sampled for other purposes.

It keeps a cache of precalculated points along the curve, to speed up further calculations.

Properties

float

bake_interval

0.2

int

point_count

0

bool

up_vector_enabled

true

Methods

void

add_point(position: Vector3, in: Vector3 = Vector3(0, 0, 0), out: Vector3 = Vector3(0, 0, 0), index: int = -1)

void

clear_points()

float

get_baked_length() const

PackedVector3Array

get_baked_points() const

PackedFloat32Array

get_baked_tilts() const

PackedVector3Array

get_baked_up_vectors() const

float

get_closest_offset(to_point: Vector3) const

Vector3

get_closest_point(to_point: Vector3) const

Vector3

get_point_in(idx: int) const

Vector3

get_point_out(idx: int) const

Vector3

get_point_position(idx: int) const

float

get_point_tilt(idx: int) const

void

remove_point(idx: int)

Vector3

sample(idx: int, t: float) const

Vector3

sample_baked(offset: float = 0.0, cubic: bool = false) const

Vector3

sample_baked_up_vector(offset: float, apply_tilt: bool = false) const

Transform3D

sample_baked_with_rotation(offset: float = 0.0, cubic: bool = false, apply_tilt: bool = false) const

Vector3

samplef(fofs: float) const

void

set_point_in(idx: int, position: Vector3)

void

set_point_out(idx: int, position: Vector3)

void

set_point_position(idx: int, position: Vector3)

void

set_point_tilt(idx: int, tilt: float)

PackedVector3Array

tessellate(max_stages: int = 5, tolerance_degrees: float = 4) const

PackedVector3Array

tessellate_even_length(max_stages: int = 5, tolerance_length: float = 0.2)