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.

# Curve2D¶

Inherits: Resource < RefCounted < Object

Describes a Bézier curve in 2D space.

## Description¶

This class describes a Bézier curve in 2D space. It is mainly used to give a shape to a Path2D, 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 `5.0` int point_count `0`

## Methods¶

 void add_point ( Vector2 position, Vector2 in=Vector2(0, 0), Vector2 out=Vector2(0, 0), int index=-1 ) void float get_baked_length ( ) const PackedVector2Array get_baked_points ( ) const float get_closest_offset ( Vector2 to_point ) const Vector2 get_closest_point ( Vector2 to_point ) const Vector2 get_point_in ( int idx ) const Vector2 get_point_out ( int idx ) const Vector2 get_point_position ( int idx ) const void remove_point ( int idx ) Vector2 sample ( int idx, float t ) const Vector2 sample_baked ( float offset=0.0, bool cubic=false ) const Transform2D sample_baked_with_rotation ( float offset=0.0, bool cubic=false ) const Vector2 samplef ( float fofs ) const void set_point_in ( int idx, Vector2 position ) void set_point_out ( int idx, Vector2 position ) void set_point_position ( int idx, Vector2 position ) PackedVector2Array tessellate ( int max_stages=5, float tolerance_degrees=4 ) const PackedVector2Array tessellate_even_length ( int max_stages=5, float tolerance_length=20.0 ) const

## Property Descriptions¶

float bake_interval = `5.0`

• void set_bake_interval ( float value )

• float get_bake_interval ( )

The distance in pixels between two adjacent cached points. Changing it forces the cache to be recomputed the next time the get_baked_points or get_baked_length function is called. The smaller the distance, the more points in the cache and the more memory it will consume, so use with care.

int point_count = `0`

• void set_point_count ( int value )

• int get_point_count ( )

The number of points describing the curve.

## Method Descriptions¶

void add_point ( Vector2 position, Vector2 in=Vector2(0, 0), Vector2 out=Vector2(0, 0), int index=-1 )

Adds a point with the specified `position` relative to the curve's own position, with control points `<`