|
| auto | layout () const noexcept -> const std::vector< PieceLayout > & |
| void | rebuild () |
| void | bakeVoxel () |
| void | sendLayout () |
| auto | getPieceAt (glm::vec3 pos) -> Box< Node > |
| auto | getPieceCount () const noexcept -> int |
| auto | pickPiece (glm::vec3 origin, glm::vec3 direction) -> VoxelPiece * |
| auto | pieceAt (glm::ivec3 voxel) -> VoxelPiece * |
| void | keepGrids (bool keep) noexcept |
| auto | composePieces (std::span< VoxelPiece *const > only) -> std::optional< Composed > |
| | VoxelNode ()=default |
| | VoxelNode (assets::Handle< assets::VoxelModel > model) |
| auto | getModel () const -> const assets::Handle< assets::VoxelModel > & |
| auto | getModel () -> assets::Handle< assets::VoxelModel > & |
| void | setModel (assets::Handle< assets::VoxelModel > model) |
| auto | getPalette () const -> const assets::Handle< assets::VoxelPalette > & |
| void | setPalette (assets::Handle< assets::VoxelPalette > palette) |
| auto | paletteUid () const -> uint64_t |
| auto | resolvedModel () const -> const assets::VoxelModel * |
| auto | resolvedPalette () -> const voxel::Palette * |
| auto | resolvedMaterialLibrary () -> const voxel::MaterialLibrary * |
| auto | getVoxel (glm::vec3 pos) -> int |
| auto | getSize () -> glm::vec3 |
| auto | getBounds () -> std::vector< glm::vec3 > |
| auto | getVoxelCount () -> int |
| auto | worldToVoxel (glm::vec3 pos) -> glm::vec3 |
| auto | voxelToWorld (glm::vec3 pos) -> glm::vec3 |
| void | setVoxel (glm::vec3 pos, int id) |
| void | removeVoxel (glm::vec3 pos) |
| void | fillBox (glm::vec3 min, glm::vec3 max, int id, voxel::WriteMode mode=voxel::WriteMode::replace, int match_id=0) |
| void | fillSphere (glm::vec3 center, float radius, int id, voxel::WriteMode mode=voxel::WriteMode::replace, int match_id=0) |
| void | fillCylinder (glm::vec3 a, glm::vec3 b, float radius, int id, voxel::WriteMode mode=voxel::WriteMode::replace, int match_id=0) |
| void | fillLine (glm::vec3 a, glm::vec3 b, float radius, int id, voxel::WriteMode mode=voxel::WriteMode::replace, int match_id=0) |
| void | carveBox (glm::vec3 min, glm::vec3 max) |
| void | carveSphere (glm::vec3 center, float radius) |
|
void | setLayers (int included_layers, int excluded_layers) |
|
void | includeLayer (int layer, bool value=true) |
|
void | excludeLayer (int layer, bool value=true) |
| void | carveCylinder (glm::vec3 a, glm::vec3 b, float radius) |
| void | carveLine (glm::vec3 a, glm::vec3 b, float radius) |
| void | paintBox (glm::vec3 min, glm::vec3 max, int id) |
| void | paintSphere (glm::vec3 center, float radius, int id) |
| void | replaceId (int from, int to) |
| void | slice (glm::vec3 point, glm::vec3 normal, int side) |
| void | extrudeFace (glm::vec3 pos, glm::vec3 normal, int distance) |
| void | stamp (const assets::Handle< assets::VoxelModel > &asset, glm::vec3 pos, glm::quat rotation=glm::quat(1.0f, 0.0f, 0.0f, 0.0f), voxel::WriteMode mode=voxel::WriteMode::replace, int match_id=0) |
| auto | copy (glm::vec3 min, glm::vec3 max) -> int |
| void | paste (int region, glm::vec3 pos, voxel::WriteMode mode=voxel::WriteMode::replace, int match_id=0) |
| void | clearRegions () |
| void | sleep () |
| void | wake () |
| void | editVoxel () |
|
auto | volume () -> voxel::Volume * |
|
auto | revision () const noexcept -> uint32_t |
|
auto | voxelOrigin () const noexcept -> glm::ivec3 |
|
auto | volumeLocalTransform () const -> glm::mat4 |
|
auto | localBoundingSphere () const -> glm::vec4 |
|
auto | latticePlacement () const -> std::optional< voxel::LatticePlacement > |
|
auto | renderOnly () const noexcept -> bool |
| auto | raycast (glm::vec3 dir, glm::vec3 offset=glm::vec3(0.0f), float max_distance=-1.0f, bool ignore_self=true, const std::vector< int > &layers=std::vector< int > {}) const -> std::optional< physics::RayHit > |
| | The nearest thing a ray from this node hits.
|
| auto | raymulticast (glm::vec3 dir, glm::vec3 offset=glm::vec3(0.0f), float max_distance=-1.0f, int max_hits=-1, bool ignore_self=true, const std::vector< int > &layers=std::vector< int > {}) const -> std::vector< physics::RayHit > |
| | Up to max_hits things collisions.
|
| auto | linecast (glm::vec3 from, glm::vec3 to, int max_hits=-1, bool ignore_self=true, const std::vector< int > &layers=std::vector< int > {}) const -> std::vector< physics::RayHit > |
| | Everything on the line between two points, nearest to from first.
|
| void | lookAt (glm::vec3 target, glm::vec3 up={0.0f, 0.0f, 1.0f}) |
| | Orients the node so its forward axis points at a world-space target.
|
| void | lookAtZ (glm::vec3 target) |
| | lookAt() constrained to the XY plane; the node faces the target with no roll
|
| auto | up () const -> glm::vec3 |
| auto | forward () const -> glm::vec3 |
|
void | syncTransform () const |
|
void | syncWorldTransform () const |
|
void | refreshTransformParent () |
|
auto | getTransform () const noexcept -> const glm::mat4 & |
|
auto | getWorldTransform () const noexcept -> const glm::mat4 & |
|
auto | uid () const noexcept -> const UID & |
| | Stable unique identifier, assigned at construction or deserialization. Never changes.
|
|
auto | rid () const noexcept -> std::uintptr_t |
| | Runtime identifier for this node, guaranteed to be unique but changes every time.
|
|
auto | name () const noexcept -> std::string_view |
| | Display name. Siblings may share one - this is not an identifier.
|
| void | name (std::string_view name) noexcept |
| | Sets the display name.
|
| auto | enabled () const noexcept -> bool |
| | Whether this node is currently active.
|
|
auto | participatesIn (NodeOwnerParticipation use) const noexcept -> bool |
| auto | owner () const noexcept -> INodeOwner * |
| | The World or Workspace this node belongs to.
|
| void | enabled (bool value) noexcept |
| | Sets the local enabled flag and propagates the change to all children.
|
| auto | box () const noexcept -> Box< Node > |
| | Returns an owning handle to this node.
|
| auto | info () const -> const NodeInfo * |
| | Reflection metadata registered by the code generator.
|
| auto | sourcePrefab () const noexcept -> const assets::Handle< assets::Prefab > & |
| | The prefab this node was instantiated from.
|
| auto | isInstanceRoot () const noexcept -> bool |
| | Whether this node is the root of a prefab instance.
|
| auto | root () const noexcept -> Box< Node > |
| | The topmost ancestor that is not the world root.
|
| auto | state () const noexcept -> NodeState |
| auto | type () const noexcept -> NodeType |
|
auto | listener () noexcept -> event::Listener & |
| | The event Listener owned by this node. Lazy-allocated, freed only with the node.
|
| auto | parent () noexcept -> Box< Node > |
| | The immediate parent of this node.
|
| auto | children () const noexcept -> const std::vector< Box< Node > > & |
| | The ordered list of direct children.
|
|
auto | childrenSnapshot () const -> std::vector< Box< Node > > |
| auto | create (std::string_view type="toast::Node") noexcept -> Box< Node > |
| | Creates a new child node of the given type and attaches it to this node.
|
| auto | spawn (UID uid) noexcept -> Box< Node > |
| | Asynchronously instantiates a prefab as a child of this node.
|
| auto | spawn (std::string_view uri) noexcept -> Box< Node > |
| | Asynchronously instantiates a prefab as a child of this node.
|
| auto | find (std::string_view query) -> Box< Node > |
| | Depth-first search for a single descendant.
|
| auto | find (const UID &uid) -> Box< Node > |
| | Looks up a node by UID within this node's local root.
|
| auto | search (std::string_view query) -> std::vector< Box< Node > > |
| | Depth-first search for all matching descendants.
|
|
auto | childrenOfType (const NodeInfo *type) const -> std::vector< Box< Node > > |
|
auto | searchType (const NodeInfo *type) const -> std::vector< Box< Node > > |
|
void | addDependsOn (Node &other) |
|
void | removeDependsOn (Node &other) |
|
void | interactsWith (Node &other) |
| | Declares that the scripts of this node and of other call each other.
|
|
auto | scriptRuntime () noexcept -> scripting::ScriptRuntime * |
| auto | hasTickFunction (TickFunctionList mask) const noexcept -> bool |
| auto | scriptVm (TickFunctionList func) const noexcept -> std::optional< size_t > |
| | The interpreter this node runs Lua on while it executes func, empty when it runs none.
|
|
auto | scriptVmAny () const noexcept -> std::optional< size_t > |
| | The interpreter the scripts of this node live on whatever phase they define.
|
| auto | hasCallable (std::string_view name) const noexcept -> bool |
|
void | reloadScripts () noexcept |
| | Rebuilds the script runtime after a script asset changed (hot reload or attach).
|
| auto | scripts () const noexcept -> const std::vector< assets::Handle< assets::Script > > & |
| void | setScripts (std::vector< assets::Handle< assets::Script > > scripts) noexcept |
| void | addScript (const assets::Handle< assets::Script > &script) noexcept |
| template<typename R = void, typename... Args> |
| auto | call (std::string_view name, Args &&... args) -> R |
| | Invokes all C++ reflected implementations of name (base→derived) and all same-named Lua functions across every attached script, forwarding args.
|
| template<typename T> |
| auto | get (std::string_view name) const -> T |
| | Reads a named value: reflected C++ field first, then the first matching Lua instance variable.
|
|
template<typename T> |
| void | set (std::string_view name, const T &value) |
| | Writes a named value: reflected C++ field if present and every Lua instance variable of that name that already exists.
|
|
auto | isRecursivePrefab () const noexcept -> bool |
|
|
signals::Signal | rebuilt_shape |
| | Sent after a rebuild once editShape is done.
|
|
signals::Signal< int, glm::vec3 > | damaged |
| | Sent when hits remove voxels with how many and where in the world.
|
|
signals::Signal< int > | broke_apart |
| | Sent when a piece breaks off with how many voxels it took.
|
|
signals::Signal | emptied |
| | Sent when the last voxel is gone.
|
|
signals::Signal< toast::Box< toast::Node > > | contact_begin |
| | Sent when it starts touching another body.
|
|
signals::Signal< toast::Box< toast::Node > > | contact_end |
| | Sent when it stops touching another body.
|
|
signals::Signal | went_to_sleep |
| | Sent when the body falls asleep.
|
|
signals::Signal | woke_up |
| | Sent when the body wakes up.
|
|
glm::vec3 | position = glm::vec3(0.0f) |
|
glm::quat | rotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f) |
|
glm::vec3 | scale = glm::vec3(1.0f) |
|
glm::vec3 | world_position = glm::vec3(0.0f) |
|
glm::quat | world_rotation = glm::quat(1.0f, 0.0f, 0.0f, 0.0f) |
|
glm::vec3 | world_scale = glm::vec3(1.0f) |
|
signals::Signal< Box< Node > > | on_enable |
|
signals::Signal< Box< Node > > | on_disable |
|
signals::Signal< Box< Node > > | on_begin |
|
signals::Signal< Box< Node > > | on_end |
|
static const glm::vec3 | world_up = {0.0f, 0.0f, 1.0f} |
|
static const glm::vec3 | world_forward = {0.0f, 1.0f, 0.0f} |
| | Z axis.
|
|
static const glm::vec3 | world_right = {1.0f, 0.0f, 0.0f} |
| | Y axis.
|
|
assets::Handle< assets::VoxelModel > | m_model |
|
assets::Handle< assets::VoxelPalette > | m_palette |
| SimulationType | simulation_type = SimulationType::dynamic |
|
float | mass = 0.0f |
|
bool | render_only = false |
| | Read when the game starts.
|
|
uint32_t | included = 1 |
|
uint32_t | excluded = 0 |
|
bool | allow_sleep = true |
|
bool | awake = true |
|
float | gravity_scale = 1.0f |
| bool | auto_mass_center = true |
|
glm::vec3 | center_of_mass = {} |
|
glm::vec3 | inertia = {} |
|
float | linear_damping = 0.0f |
|
float | angular_damping = 0.0f |
|
float | drag_scale = 1.0f |
|
glm::vec3 | linear_velocity = {} |
|
glm::vec3 | angular_velocity = {} |
|
glm::vec3 | constant_force = {} |
|
glm::vec3 | constant_torque = {} |
|
bool | lock_pos_x = false |
|
bool | lock_pos_y = false |
|
bool | lock_pos_z = false |
|
bool | lock_rot_x = false |
|
bool | lock_rot_y = false |
|
bool | lock_rot_z = false |
|
bool | show_aabb = false |
|
glm::vec4 | aabb_color = glm::vec4(1.0f, 0.75f, 0.15f, 0.6f) |
| bool | aabb_fill = false |
|
std::unique_ptr< voxel::Volume > | m_volume |
|
std::vector< std::unique_ptr< voxel::Volume > > | m_retired_volumes |
|
glm::ivec3 | m_voxel_origin {0} |
|
uint32_t | m_revision = 0 |
|
const assets::VoxelModel * | m_instanced_from = nullptr |
|
assets::Handle< assets::VoxelPalette > | m_model_palette |
|
std::vector< std::optional< voxel::Region > > | m_regions |
|
bool | m_volume_stale = false |
|
bool | m_rebuild_requested = false |
|
bool | m_edit_shape_pending = false |
|
bool | m_split_pending = false |
|
bool | m_building_shape = false |
|
PendingEvents | m_pending_events |
|
physics::BodyID | m_body |
|
physics::ShapeID | m_shape |
|
std::vector< ActiveContact > | m_active_contacts |
|
bool | m_registration_requested = false |
|
bool | m_registered_proxy = false |
|
bool | m_debug_visible = false |
|
uint64_t | m_shape_key = 0 |
|
uint64_t | m_reported_wrong_model = 0 |
|
uint64_t | m_reported_wrong_palette = 0 |
|
INodeOwner * | m_owner = nullptr |