Pure 3D placement geometry and key helpers, extracted from [ObjectPlacementService3D] so the edge/face math and the registry-key algebra live in one focused, stateless utility. Every method is static — the service passes in whatever context a helper needs (the GridMap, a pre-resolved surface height, the cell size) so the helpers never hold placement state.
Source: addons/grid_placement/systems/building/3d/object_placement_geometry_3d.gd
Syntax
class ObjectPlacementGeometry3D extends RefCountedMembers
| Name | Kind | Summary |
|---|---|---|
NO_GROUND | Field | Sentinel matching [constant GridMap.INVALID_CELL_ITEM] column keys. |
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_item_name | Method | |
placement_position | Method | |
footprint_cells | Method | |
cell_world_aabb | Method | |
single_cell_world_aabb | Method | |
nearest_edge | Method | |
face_normal_from_ray | Method | |
edge_position | Method | |
edge_yaw | Method | |
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 on a provider scene root. Authored as a Node3D child whose origin sits on the wall's visible face plane with -Z pointing outward. When present, the service mates FACE consumers to this real surface instead of the cell-derived plane fallback. |
FACE_SOCKET_SYMMETRIC_META | Field | Provider meta key stamped by the service when the provider's snap profile explicitly opts into rotational symmetry ([member PlacementSnapProfile3D. face_socket_symmetric]). Presence with a true value permits yaw derivation of the canonical socket onto faces with no authored socket; absent meta is fail-closed (cell-derived fallback instead). |
declared_face_socket | Method | |
face_mount_transform | Method | |
anchor | Property | |
anchor_local | Property | |
derived_face_mount_transform | Method | |
anchor | Property | |
target | Property | |
yaw_to | Property | |
sockets | Property | |
outward | Property | |
candidate_dir | Property | |
yaw_candidate | Property | |
direct_world | Property | |
anchor_local | Property | |
symmetric | Property | |
outward_local | Property | |
yaw_from | Property | |
yaw | Property | |
rotated_socket_local | Property | |
rotated_socket_world | Property | |
anchor_local | Property | |
edge_key | Method | |
face_key | Method | |
face_occupancy_key | Method | |
CARDINAL_FACE_NORMALS | Field | The four vertical cardinal face normals, in stable order. Shared by the face-key algebra and the service's face registration sweeps. |
is_cardinal_face_normal | Method | |
yaw_steps_from_rotation | Method | |
mount_height_band | Method | |
cell_derived_face_transform | Method |