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.

@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()
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)
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. Change Spatial Visible property to false.

isLocalTransformNotificationEnabled
bool isLocalTransformNotificationEnabled()

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

isScaleDisabled
bool isScaleDisabled()
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 whether the node is visible, taking into consideration that its parents visibility.

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
Spatial opAssign(T n)
Undocumented in source. Be warned that the author may not have intended to support it.
opEquals
bool opEquals(Spatial other)
Undocumented in source. Be warned that the author may not have intended to support it.
opEquals
bool opEquals(typeof(null) n)
Undocumented in source. Be warned that the author may not have intended to support it.
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 Transform3D.

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)
setGizmo
void setGizmo(SpatialGizmo gizmo)
setGlobalTransform
void setGlobalTransform(Transform global)
setIdentity
void setIdentity()

Reset all transformations for this node. Set its Transform3D to identity matrix.

setIgnoreTransformNotification
void setIgnoreTransformNotification(bool enabled)

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

setNotifyLocalTransform
void setNotifyLocalTransform(bool enable)

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

setNotifyTransform
void setNotifyTransform(bool enable)

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

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. Change Spatial Visible property to "True".

toGlobal
Vector3 toGlobal(Vector3 local_point)

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

toLocal
Vector3 toLocal(Vector3 global_point)

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

translate
void translate(Vector3 offset)

Changes the node's position by given offset Vector3.

translateObjectLocal
void translateObjectLocal(Vector3 offset)
updateGizmo
void updateGizmo()

Updates the SpatialGizmo of this node.

Mixins

__anonymous
mixin baseCasts
Undocumented in source.

Properties

gizmo
SpatialGizmo gizmo [@property setter]

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

gizmo
SpatialGizmo gizmo [@property getter]

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 that 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. Default value: true.

Static functions

_new
Spatial _new()
Undocumented in source. Be warned that the author may not have intended to support it.

Static variables

_classBindingInitialized
bool _classBindingInitialized;
Undocumented in source.

Structs

_classBinding
struct _classBinding
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
To as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
To as()
Undocumented in source. Be warned that the author may not have intended to support it.
as
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