geom

GeomDisc

Inherits: Node3D

A disc, pie, ring or arc placed in 3D space.

Drawing it

The code behind the picture above.

GeomDraw.disc_colored(Vector3.ZERO, 1.0, CYAN)

Properties

float angle_end_degrees 270.0
float angle_start_degrees 0.0
bool arc_end_cap_round false
bool billboard false
BlendMode blend_mode Geom.BLEND_TRANSPARENT
Color color Color(1, 1, 1, 1)
Color color_end Color(1, 1, 1, 1)
ColorMode color_mode Geom.COLOR_SINGLE
GeomDash dash null
DiscType disc_type Geom.DISC_DISC
float radius 0.5
ThicknessSpace radius_space Geom.SPACE_METERS
float thickness 0.05
ThicknessSpace thickness_space Geom.SPACE_METERS

Enumerations

enum Geom.ThicknessSpace

Geom.SPACE_METERS = 0
Thickness in world units; shrinks on screen with distance.
Geom.SPACE_PIXELS = 1
Thickness in screen pixels; constant on-screen size.
Geom.SPACE_VIEWPORT = 2
A fraction of the viewport: 100 span its shorter side, so 1 is one percent of it and about 11 pixels at 1080p. The same idea as CSS vmin. Radii and sizes here are whole-ish numbers; strokes come out below 1, and a stroke that should stay a fixed pixel width wants SPACE_PIXELS instead.

enum Geom.ColorMode

Geom.COLOR_SINGLE = 0
One flat color.
Geom.COLOR_RADIAL = 1
Interpolate color to color_end from the center outwards.
Geom.COLOR_ANGULAR = 2
Interpolate color to color_end around the sweep.

enum Geom.BlendMode

Geom.BLEND_OPAQUE = 0
Writes depth and sorts against other geometry; hard edges, no fade.
Geom.BLEND_TRANSPARENT = 1
Standard alpha compositing. The default.
Geom.BLEND_ADDITIVE = 2
Brightens what is behind. Good for glows.
Geom.BLEND_MULTIPLY = 3
Darkens what is behind. Good for tints.
Geom.BLEND_SUBTRACT = 4
Subtracts this color from the background.
Geom.BLEND_TRANSPARENT_DEPTH = 5
Transparent, but writing depth so shapes occlude by position.

enum Geom.DiscType

Geom.DISC_DISC = 0
Filled circle.
Geom.DISC_PIE = 1
Filled circular sector, bounded by the start and end angle.
Geom.DISC_RING = 2
Hollow ring. radius is to the middle of the wall, not the outer edge.
Geom.DISC_ARC = 3
A section of a ring, bounded by the start and end angle.

Property descriptions

float angle_end_degrees = 270.0

Sweep end for pie and arc. The sweep runs forward from the start, wrapping past a full turn, so 350 to 10 is a 20 degree arc across zero.

float angle_start_degrees = 0.0

Sweep start for pie and arc. Degrees here for the inspector's sake; radians everywhere inside the library.

bool arc_end_cap_round = false

Whether an arc's ends are rounded.

bool billboard = false

Turn to face the camera instead of sitting in this node's own plane.

Off by default, so rotating the node rotates the shape. Turn it on for something that must stay readable from any angle, such as a marker on the ground or a bar over a character's head.

BlendMode blend_mode = Geom.BLEND_TRANSPARENT

How the shape combines with what is behind it. Transparent Depth is the one that also writes depth, so shapes occlude each other by position rather than by the order they were drawn.

Color color = Color(1, 1, 1, 1)

Fill color, or the wall's color for an outline.

Color color_end = Color(1, 1, 1, 1)

The far end of the gradient. Ignored unless color_mode is something other than Single.

ColorMode color_mode = Geom.COLOR_SINGLE

Single flat color, or a Radial or Angular gradient between color and color_end.

GeomDash dash = null

Assign a GeomDash to dash this shape; leave empty for solid.

DiscType disc_type = Geom.DISC_DISC

Which member of the family: disc, pie, ring or arc.

float radius = 0.5

For ring and arc this is to the center of the wall, not its outer edge.

ThicknessSpace radius_space = Geom.SPACE_METERS

Whether radius is measured in meters, in pixels, or in viewport units. Meters are world units and shrink with distance; pixels hold their size on screen however far away the camera is. The node's scale multiplies it either way.

float thickness = 0.05

Wall thickness. Ignored by disc and pie, which are solid.

ThicknessSpace thickness_space = Geom.SPACE_METERS

Whether thickness is measured in meters, in pixels, or in viewport units. Meters are world units and shrink with distance; pixels hold their size on screen however far away the camera is. The node's scale multiplies it either way.