Spatial

Most basic 3D game object, parent of all 3D-related nodes.

Most basic 3D game object, with a 3D Transform and visibility settings. All other 3D game objects inherit from Spatial. Use Spatial as a parent node to move, scale, rotate and show/hide children in a 3D project. Affine operations (rotate, scale, translate) happen in parent's local coordinate system, unless the Spatial object is set as top-level. Affine operations in this coordinate system correspond to direct affine operations on the Spatial's transform. The word local below refers to this coordinate system. The coordinate system that is attached to the Spatial object itself is referred to as object-local coordinate system. Note: Unless otherwise specified, all methods that have angle parameters must have angles specified as radians. To convert degrees to radians, use @GDScript.deg2rad.

@GodotBaseClass
struct Spatial {}

Members

Aliases

BaseClasses
alias BaseClasses = AliasSeq!(typeof(_GODOT_base), typeof(_GODOT_base).BaseClasses)
Undocumented in source.

Enums

Constants
enum Constants

Functions

_updateGizmo
void _updateGizmo()
forceUpdateTransform
void forceUpdateTransform()

Forces the transform to update. Transform changes in physics are not instant for performance reasons. Transforms are accumulated and then set. Use this if you need an up-to-date transform when doing physics operations.

getGizmo
Ref!SpatialGizmo getGizmo()
getGlobalTransform
Transform getGlobalTransform()
getParentSpatial
Spatial getParentSpatial()

Returns the parent Spatial, or an empty GodotObject if no parent exists or parent is not of type Spatial.

getRotation
Vector3 getRotation()
getRotationDegrees
Vector3 getRotationDegrees()
getScale
Vector3 getScale()
getTransform
Transform getTransform()
getTranslation
Vector3 getTranslation()
getWorld
Ref!World getWorld()

Returns the current World resource this Spatial node is registered to.

globalRotate
void globalRotate(Vector3 axis, double angle)

Rotates the global (world) transformation around axis, a unit Vector3, by specified angle in radians. The rotation axis is in global coordinate system.

globalScale
void globalScale(Vector3 scale)

Scales the global (world) transformation by the given Vector3 scale factors.

globalTranslate
void globalTranslate(Vector3 offset)

Moves the global (world) transformation by Vector3 offset. The offset is in global coordinate system.

hide
void hide()

Disables rendering of this node. Changes visible to false.

isLocalTransformNotificationEnabled
bool isLocalTransformNotificationEnabled()

Returns whether node notifies about its local transformation changes. Spatial will not propagate this by default.

isScaleDisabled
bool isScaleDisabled()

Returns whether this node uses a scale of (1, 1, 1) or its local transformation scale.

isSetAsToplevel
bool isSetAsToplevel()

Returns whether this node is set as Toplevel, that is whether it ignores its parent nodes transformations.

isTransformNotificationEnabled
bool isTransformNotificationEnabled()

Returns whether the node notifies about its global and local transformation changes. Spatial will not propagate this by default.

isVisible
bool isVisible()
isVisibleInTree
bool isVisibleInTree()

Returns true if the node is present in the SceneTree, its visible property is true and all its antecedents are also visible. If any antecedent is hidden, this node will not be visible in the scene tree.

lookAt
void lookAt(Vector3 target, Vector3 up)

Rotates itself so that the local -Z axis points towards the target position. The transform will first be rotated around the given up vector, and then fully aligned to the target by a further rotation around an axis perpendicular to both the target and up vectors. Operations take place in global space.

lookAtFromPosition
void lookAtFromPosition(Vector3 position, Vector3 target, Vector3 up)

Moves the node to the specified position, and then rotates itself to point toward the target as per lookAt. Operations take place in global space.

opAssign
typeof(null) opAssign(typeof(null) n)
opEquals
bool opEquals(Spatial other)
opEquals
bool opEquals(typeof(null) n)
orthonormalize
void orthonormalize()

Resets this node's transformations (like scale, skew and taper) preserving its rotation and translation by performing Gram-Schmidt orthonormalization on this node's Transform.

rotate
void rotate(Vector3 axis, double angle)

Rotates the local transformation around axis, a unit Vector3, by specified angle in radians.

rotateObjectLocal
void rotateObjectLocal(Vector3 axis, double angle)

Rotates the local transformation around axis, a unit Vector3, by specified angle in radians. The rotation axis is in object-local coordinate system.

rotateX
void rotateX(double angle)

Rotates the local transformation around the X axis by angle in radians.

rotateY
void rotateY(double angle)

Rotates the local transformation around the Y axis by angle in radians.

rotateZ
void rotateZ(double angle)

Rotates the local transformation around the Z axis by angle in radians.

scaleObjectLocal
void scaleObjectLocal(Vector3 scale)

Scales the local transformation by given 3D scale factors in object-local coordinate system.

setAsToplevel
void setAsToplevel(bool enable)

Makes the node ignore its parents transformations. Node transformations are only in global space.

setDisableScale
void setDisableScale(bool disable)

Sets whether the node uses a scale of (1, 1, 1) or its local transformation scale. Changes to the local transformation scale are preserved.

setGizmo
void setGizmo(SpatialGizmo gizmo)
setGlobalTransform
void setGlobalTransform(Transform global)
setIdentity
void setIdentity()

Reset all transformations for this node (sets its Transform to the identity matrix).

setIgnoreTransformNotification
void setIgnoreTransformNotification(bool enabled)

Sets whether the node ignores notification that its transformation (global or local) changed.

setNotifyLocalTransform
void setNotifyLocalTransform(bool enable)

Sets whether the node notifies about its local transformation changes. Spatial will not propagate this by default.

setNotifyTransform
void setNotifyTransform(bool enable)

Sets whether the node notifies about its global and local transformation changes. Spatial will not propagate this by default, unless it is in the editor context and it has a valid gizmo.

setRotation
void setRotation(Vector3 euler)
setRotationDegrees
void setRotationDegrees(Vector3 euler_degrees)
setScale
void setScale(Vector3 scale)
setTransform
void setTransform(Transform local)
setTranslation
void setTranslation(Vector3 translation)
setVisible
void setVisible(bool visible)
show
void show()

Enables rendering of this node. Changes visible to true.

toGlobal
Vector3 toGlobal(Vector3 local_point)

Transforms local_point from this node's local space to world space.

toHash
size_t toHash()
toLocal
Vector3 toLocal(Vector3 global_point)

Transforms global_point from world space to this node's local space.

translate
void translate(Vector3 offset)

Changes the node's position by the given offset Vector3. Note that the translation offset is affected by the node's scale, so if scaled by e.g. (10, 1, 1), a translation by an offset of (2, 0, 0) would actually add 20 (2 * 10) to the X coordinate.

translateObjectLocal
void translateObjectLocal(Vector3 offset)

Changes the node's position by the given offset Vector3 in local space.

updateGizmo
void updateGizmo()

Updates the SpatialGizmo of this node.

Mixins

__anonymous
mixin baseCasts
Undocumented in source.

Properties

gizmo
SpatialGizmo gizmo [@property getter]
SpatialGizmo gizmo [@property setter]

The SpatialGizmo for this node. Used for example in EditorSpatialGizmo as custom visualization and editing handles in Editor.

globalTransform
Transform globalTransform [@property getter]
Transform globalTransform [@property setter]

World space (global) Transform of this node.

rotation
Vector3 rotation [@property getter]
Vector3 rotation [@property setter]

Rotation part of the local transformation in radians, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle). Note: In the mathematical sense, rotation is a matrix and not a vector. The three Euler angles, which are the three independent parameters of the Euler-angle parametrization of the rotation matrix, are stored in a Vector3 data structure not because the rotation is a vector, but only because Vector3 exists as a convenient data-structure to store 3 floating-point numbers. Therefore, applying affine operations on the rotation "vector" is not meaningful.

rotationDegrees
Vector3 rotationDegrees [@property getter]
Vector3 rotationDegrees [@property setter]

Rotation part of the local transformation in degrees, specified in terms of YXZ-Euler angles in the format (X angle, Y angle, Z angle).

scale
Vector3 scale [@property getter]
Vector3 scale [@property setter]

Scale part of the local transformation.

transform
Transform transform [@property getter]
Transform transform [@property setter]

Local space Transform of this node, with respect to the parent node.

translation
Vector3 translation [@property getter]
Vector3 translation [@property setter]

Local translation of this node.

visible
bool visible [@property getter]
bool visible [@property setter]

If true, this node is drawn. The node is only visible if all of its antecedents are visible as well (in other words, isVisibleInTree must return true).

Static functions

_new
Spatial _new()

Construct a new instance of Spatial. Note: use memnew!Spatial instead.

Static variables

_classBindingInitialized
bool _classBindingInitialized;
Undocumented in source.

Structs

GDNativeClassBinding
struct GDNativeClassBinding
Undocumented in source.

Unions

__anonymous
union __anonymous
Undocumented in source.

Variables

_GODOT_internal_name
enum string _GODOT_internal_name;
Undocumented in source.

Mixed In Members

From mixin baseCasts

as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(To) as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
inout(ToRef) as()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(To)
Undocumented in source.
opCast
template opCast(ToRef)
Undocumented in source.
opCast
void* opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
godot_object opCast()
Undocumented in source. Be warned that the author may not have intended to support it.
opCast
bool opCast()
Undocumented in source. Be warned that the author may not have intended to support it.

Meta