13 b.use_custom_socket_order();
14 b.allow_any_socket_order();
16 "X coordinate of the voxel in index space, or the minimum X coordinate of a tile");
18 "Y coordinate of the voxel in index space, or the minimum Y coordinate of a tile");
20 "Z coordinate of the voxel in index space, or the minimum Z coordinate of a tile");
21 auto &panel =
b.add_panel(
"Tile").default_closed(
true);
23 "True if the field is evaluated on a tile, i.e. on multiple voxels at once. If this is "
24 "false, the extent is always 1");
28 "Number of voxels in the X direction of the tile, or 1 if the field is evaluated on a "
33 "Number of voxels in the Y direction of the tile, or 1 if the field is evaluated on a "
38 "Number of voxels in the Z direction of the tile, or 1 if the field is evaluated on a "
45 if (
params.output_is_required(
"X")) {
49 if (
params.output_is_required(
"Y")) {
53 if (
params.output_is_required(
"Z")) {
57 if (
params.output_is_required(
"Is Tile")) {
58 params.set_output(
"Is Tile",
fn::GField(std::make_shared<bke::IsTileFieldInput>()));
60 if (
params.output_is_required(
"Extent X")) {
61 params.set_output(
"Extent X",
64 if (
params.output_is_required(
"Extent Y")) {
65 params.set_output(
"Extent Y",
68 if (
params.output_is_required(
"Extent Z")) {
69 params.set_output(
"Extent Z",
84 "Retrieve the integer coordinates of the voxel that the field is evaluated on";
#define NOD_REGISTER_NODE(REGISTER_FUNC)
void node_register_type(bNodeType &ntype)
void node_geo_exec_with_missing_openvdb(GeoNodeExecParams ¶ms)
void geo_node_type_base(blender::bke::bNodeType *ntype, std::string idname, const std::optional< int16_t > legacy_type)
std::string ui_description
NodeGeometryExecFunction geometry_node_execute
NodeDeclareFunction declare