Houdini Engine 5.0
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Intermediate Asset Results

Operating on assets by manipulating its inputs and extracting its outputs is a straightforward process that works most of the time. Sometimes, however, it isn't quite sufficient. A user might want to edit a result in the middle of an evaluation, in order to influence the outcome of the final evaluation. For example, we might have an asset that defines a rough outline shape of a city:


One of the steps in the computation of this asset might be a footprint of the city block, before it is extruded into the city outline:


A user might want to edit the computed footprint in the host environment. To enable this, the asset author needs to tag a specific spot in the evaluation of the asset as being exposed to edits. This is done by inserting an edit node into the chain of evaluation at a critical spot, and then tagging that edit node as being exposed by inserting it into the Editable nodes section of the asset:


Notice the use of the edit node just before the polyextrude1 node. This edit node is then marked as exposed by adding it to the editable nodes section of the type properties window:


Once you have done this, Houdini Engine will recognize the edit node as being exposed, and you will find that there will be an extra geo associated with the object that contained this network. The intermediate result edit geo will have a HAPI_GeoInfo::type of HAPI_GEOTYPE_INTERMEDIATE. You can then expose this geometry thus tagged for the user to edit:


Here we have dragged the footprint of the city block out a bit. Once we are done with the edits in the host environment, the updated geometry may be pushed back into Houdini Engine using the same set of methods we used to marshall geometry into Houdini Engine, covered earlier. Once we have done that, this is what the updated city results look like:


Finally, if we were to feed this asset to a detailer asset, a detailed city block with geometries (instanced) results: