Stateless 3D placement geometry and registry-key helpers for [ObjectPlacementService3D]. Every method is static; callers pass the GridMap, a pre-resolved surface height, and cell size, so no placement state is held.
Source: addons/grid_placement/systems/building/3d/object_placement_geometry_3d.gd
Syntax
class ObjectPlacementGeometry3D extends RefCountedMembers
| Name | Kind | Summary |
|---|---|---|
NO_GROUND | Field | Sentinel for a column with no ground item. |
EDGE_STICK_FRACTION | Field | Default edge-stick margin for [method nearest_edge_sticky], as a fraction of the smaller horizontal cell extent. A rival edge must beat the current one by this distance before the ghost switches, so cursor tremor near a diagonal or the cell center cannot strobe the wall preview. |
TOP_RIDGE_FRACTION | Field | TOP ridge capture radius for [method nearest_top_socket], as a fraction of the cell X extent. A cursor pick inside this ring reads the cell-centered ridge socket ([constant Vector3i.ZERO]); outside it reads the nearest slope edge. The sticky variant holds each socket past this ring by the stick margin, so roof ghosts commit to a socket instead of strobing. |
seam_shift_3d | Method | |
shift | Property | |
yaw | Property | |
basis | Property | |
size | Property | |
used_axes | Property | |
dir | Property | |
grid_axis | Property | |
mesh_dir | Property | |
face_dist | Property | |
cells_along | Property | |
cell_len | Property | |
step | Property | |
column_key | Method | |
resolve_surface_height | Method | |
resolve_surface_row | Method | |
resolve_surface_item_name | Method | |
placement_position | Method | |
footprint_cells | Method | |
cell_world_aabb | Method | |
single_cell_world_aabb | Method | |
nearest_edge | Method | |
nearest_edge_sticky | Method | |
nearest_top_socket | Method | |
nearest_top_socket_sticky | Method | |
fresh | Property | |
margin | Property | |
center | Property | |
r | Property | |
ring | Property | |
face_normal_from_ray | Method | |
face_normal_from_hit | Method | |
edge_position | Method | |
edge_yaw | Method | |
center_local | Property | |
midpoint | Property | |
steps | Property | |
corners | Property | |
lo | Property | |
hi | Property | |
rotated | Property | |
edge_outward_yaw | Method | |
top_yaw | Method | |
top_position | Method | |
factor | Property | |
key | Property | |
world_position | Property | |
aabb | Property | |
position | Property | |
aabb | Property | |
is_cell_corner | Method | |
CARDINAL_CORNERS | Field | The four XZ cell-corner offsets, in stable order. |
nearest_corner | Method | |
corner_position | Method | |
corner_yaw | Method | |
corner_key | Method | |
face_position | Method | |
face_yaw | Method | |
FACE_SOCKET_NODE_NAME | Field | Node name of the optional declared FACE mount socket: a Node3D child whose origin sits on the wall's visible face plane with -Z outward. When present, the service mates consumers to it instead of the cell-derived fallback. |
FACE_SOCKET_SYMMETRIC_META | Field | Meta key stamped when the provider opts into rotational symmetry ([member PlacementSnapProfile3D.face_socket_symmetric]). True permits yaw derivation onto faces without an authored socket; absent is fail-closed. |
declared_face_socket | Method | |
face_mount_transform | Method | |
anchor | Property | |
anchor_local | Property | |
derived_face_mount_transform | Method | |
chain | Property | |
consumer_anchor_local | Method | |
derived_face_mount_transform_for_anchor_local | Method | |
socket | Property | |
axis | Property | |
center | Property | |
half | Property | |
opposite | Property | |
nearest_outside | Property | |
nearest_outside_s | Property | |
socket_world | Property | |
s | Property | |
outward | Property | |
candidate_dir | Property | |
yaw_candidate | Property | |
d | Property | |
outward | Property | |
candidate_dir | Property | |
yaw_candidate | Property | |
missed | Property | |
target | Property | |
target_local | Property | |
yaw_to | Property | |
sockets | Property | |
outward_match | Property | |
sided | Property | |
legacy_match | Property | |
symmetric | Property | |
outward_local | Property | |
yaw_from | Property | |
yaw | Property | |
rotated_socket_local | Property | |
edge_key | Method | |
top_key | Method | |
is_top_edge | Method | |
face_key | Method | |
face_occupancy_key | Method | |
CARDINAL_FACE_NORMALS | Field | The four vertical cardinal face normals, in stable order. |
is_cardinal_face_normal | Method | |
yaw_steps_from_rotation | Method | |
basis_for_support_normal | Method | |
mount_height_band | Method | |
cell_derived_face_transform | Method |