Most of the changes have been made to accomplish behavior in the Curvature.tscn demo.
HoodieData, HoodieArrayMesh and HoodieGeo are the most notable class introductions.
HoodieData has been introduced to pack data you want to pass between nodes in only one object (e.g. now to pass the arrays necessary to create a Godot ArrayMesh you want to use HoodieArrayMesh). This also simplifies introducing custom data tabs in the inspector to debug the data returned by the nodes (e.g. now you can inspect mesh data through sub-tabs).
HoodieGeo is a mesh representation that takes Houdini geometry data as a reference:
Points, represent the physical points of the mesh;
Primitives, represent the connections between points (most likely will result in triangles, quads, but can also represent curves if you reference a series of points);
Attributes, represent additional data you want to attach to points using a HashMap (here you want to store tangents, normals etc.).
From this merge HoodieGeo will probably become the main data type for nodes, since it enables more complex behaviours.
Outputs for nodes are now stored in a Array defined in the HoodieNode class, as this seems a cleaner solution to the previous one, where a new variable was needed for each new node class.
Most of the guards in HoodieNode_process() have been deleted since they were almost useless: more crashes are now expected, but they will be addressed in the next PRs.
Most of the changes have been made to accomplish behavior in the
Curvature.tscn
demo.HoodieData
,HoodieArrayMesh
andHoodieGeo
are the most notable class introductions.HoodieData
has been introduced to pack data you want to pass between nodes in only one object (e.g. now to pass the arrays necessary to create a GodotArrayMesh
you want to useHoodieArrayMesh
). This also simplifies introducing custom data tabs in the inspector to debug the data returned by the nodes (e.g. now you can inspect mesh data through sub-tabs).HoodieGeo
is a mesh representation that takes Houdini geometry data as a reference:HashMap
(here you want to store tangents, normals etc.).From this merge
HoodieGeo
will probably become the main data type for nodes, since it enables more complex behaviours.Outputs for nodes are now stored in a
Array
defined in theHoodieNode
class, as this seems a cleaner solution to the previous one, where a new variable was needed for each new node class.Most of the guards in
HoodieNode
_process()
have been deleted since they were almost useless: more crashes are now expected, but they will be addressed in the next PRs.