HEGoAssetNode
Inherits: HEGoTransformableInputReceiverNode < HEGoTransformableNode < HEGoBaseNode < HEGoTrackableNode < RefCounted
Represents an instantiated Houdini Digital Asset (HDA) node.
Description
Use this class to instantiate an HDA by operator name, set parameters, cook, and fetch output data.
Call HEGoBaseNode.instantiate() after assigning op_name. Most data-access methods require a valid instantiated node; when called before instantiation they log an error and return a failed task.
All methods that interact with Houdini Engine return an HEGoTask. Await the task to get the result:
var task = asset_node.cook()
var result = await _await_task(task)
fetch_points() expects a resource compatible with HEGoFetchPointsConfig. fetch_surfaces() expects a resource compatible with HEGoFetchSurfacesConfig.
Properties
|
|
Methods
cook() |
|
fetch_heightfield_layer_image(part_id: |
|
fetch_points(fetch_point_config: |
|
fetch_surfaces(fetch_surface_config: |
|
get_heightfield_layers(read_prim_attribs: |
|
insert_multiparm_instance(parm_id: |
|
remove_multiparm_instance(parm_id: |
|
set_parm(parm_name: |
|
set_parms_batch(parms: |
|
set_preset(preset: |
Property Descriptions
String op_name = "" 🔗
void set_op_name(value:
String)Stringget_op_name()
Houdini operator name used by HEGoBaseNode.instantiate() to create the asset node.
Method Descriptions
Submits a cook task for this asset node.
Returns an HEGoTask that completes when cooking is finished. The task result is null.
HEGoTask fetch_heightfield_layer_image(part_id: int) 🔗
Submits a task to fetch one heightfield layer as an Image from the specified part id.
The task result is an Image, or an invalid image reference when the node is not instantiated or the requested part cannot be read.
HEGoTask fetch_points(fetch_point_config: Resource) 🔗
Submits a task to fetch point data using a point-fetch configuration resource.
Config fields are interpreted as follows:
filter_attribs and filter_attrib_values: paired by index; a point is kept only if all point_attr == filter_value checks pass.
filter_attribs and filter_attrib_values should have the same length.
read_attribs: extra point attributes to fetch at leaf level (in addition to P, which is always included).
split_attribs: point attributes used to build nested dictionary groups.
The method reads from the display mesh part of the cooked node.
The task result is a Dictionary with the following structure:
If split_attribs is empty, the result is a flat dictionary with leaf keys.
If split_attribs is non-empty, each split attribute adds one nesting level keyed by that attribute’s value.
Leaf dictionaries contain:
ids: filtered point indices in the source point array.
P: Array of Vector3 positions.
Additional keys from read_attribs, each mapped to an Array aligned with ids.
Returns an empty dictionary when no points pass filters, when no mesh part exists, or when geometry query fails.
HEGoTask fetch_surfaces(fetch_surface_config: Resource) 🔗
Submits a task to fetch surface data using a surface-fetch configuration resource.
Config fields are interpreted as follows:
normal, color, uv, uv2, tangents: toggles for point-derived channels included in generated Godot surface arrays.
read_attribs, filter_attribs, filter_attrib_values, split_attribs: primitive-attribute lists used for metadata readback, filtering, and grouping.
filter_attribs and filter_attrib_values are paired by index.
filter_attribs and filter_attrib_values should have the same length.
The method reads the display mesh part.
The task result is a Dictionary with the following structure:
If split_attribs is empty, the root is a single leaf dictionary.
If split_attribs is non-empty, result is nested by split attribute values.
Each leaf contains:
surface_array: a Godot Mesh.ARRAY_MAX-sized array usable with ArrayMesh.add_surface_from_arrays(), including at minimum vertices and indices; optional channels are present depending on config and source attributes.
ids: filtered primitive ids local to the current filtered set.
Any primitive attributes requested through read_attribs, each as an Array aligned with ids.
Returns an empty dictionary when no mesh part exists, no faces are available, no elements pass filters, or when geometry query fails.
HEGoTask get_heightfield_layers(read_prim_attribs: PackedStringArray = PackedStringArray()) 🔗
Submits a task to return available heightfield layers from the cooked asset.
Use read_prim_attribs to request primitive attributes that should be included in each returned layer entry.
The task result is an Array where each entry is a Dictionary containing layer metadata such as part id, layer name, voxel dimensions, scale, and transform information.
Submits a task to return the input names defined on this HDA node.
The task result is a PackedStringArray of input names. This is useful for mapping script-side inputs to operator input slots.
Submits a task to return a dictionary describing the current parameter values.
The task result is a Dictionary intended for inspection and tooling workflows, mirroring parameter state read from HAPI.
Submits a task to serialize current parameter state as a Houdini preset blob.
The task result is a PackedByteArray. Use together with set_preset() to save and restore HDA parameter setups.
HEGoTask insert_multiparm_instance(parm_id: int, index: int) 🔗
Submits a task to insert one multiparm instance at index for the parameter id.
Use this to grow multiparm blocks before setting values on newly created entries.
Submits a task to instantiate the HDA node from op_name.
If op_name is empty, the task fails with an error.
On success, the created node id is stored and this wrapper is registered in the session manager.
HEGoTask remove_multiparm_instance(parm_id: int, index: int) 🔗
Submits a task to remove one multiparm instance at index for the parameter id.
Indices follow Houdini multiparm ordering.
HEGoTask set_parm(parm_name: String, value: Variant) 🔗
Submits a task to set a parameter by name.
The Variant value type is converted to the matching Houdini parameter storage type when possible.
Call after HEGoBaseNode.instantiate(). Invalid node state causes the task to fail.
HEGoTask set_parms_batch(parms: Dictionary) 🔗
Submits a single task to set multiple parameters at once.
parms is a Dictionary mapping parameter names (String) to values (Variant). All parameters are set in one HAPI round-trip, which is more efficient than calling set_parm() repeatedly.
HEGoTask set_preset(preset: PackedByteArray) 🔗
Submits a task to apply a serialized Houdini parameter preset to this asset.
The preset payload should come from get_preset() or a compatible Houdini preset source.
Class Registration
Kind: Concrete
Inherited Methods
set_transform() from HEGoTransformableNode.
connect_input() from HEGoTransformableInputReceiverNode.