Procedural modelling in Houdini based on Function Representation
Procedural modelling in Houdini based on Function Representation
Procedural modelling in Houdini based on Function Representation
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
4.1 System overview<br />
The core of the <str<strong>on</strong>g>in</str<strong>on</strong>g>termediate layer c<strong>on</strong>sists of a set of custom Houd<str<strong>on</strong>g>in</str<strong>on</strong>g>i nodes (see Figure 4.1).<br />
They all <str<strong>on</strong>g>in</str<strong>on</strong>g>herit from FRep_Node which forms the base for primitives and operati<strong>on</strong>s. At the<br />
same time FRep_Node is resp<strong>on</strong>sible for travers<str<strong>on</strong>g>in</str<strong>on</strong>g>g the nodes (see Secti<strong>on</strong> 4.4.2), build<str<strong>on</strong>g>in</str<strong>on</strong>g>g the<br />
FRep tree and outputt<str<strong>on</strong>g>in</str<strong>on</strong>g>g the mesh (see Secti<strong>on</strong> 4.4.3).<br />
SOP_Node<br />
FRep_Node<br />
- m_templateList[] : PRM_Template<br />
- m_variables[] : CH_LocalVariable<br />
- m_attrNames[] : PRM_Name<br />
+ myC<strong>on</strong>structor(i_net : OP_Network, i_name : c<strong>on</strong>st char, i_op : OP_Operator) : OP_ERROR<br />
+ getId() : unsigned <str<strong>on</strong>g>in</str<strong>on</strong>g>t<br />
+ fillParameters(i_entity : ENTITY_BASE_T*, i_now : double, i_srcNode = NULL : OP_Node) : BOOL<br />
+ fillParametersTransform(i_entity : ENTITY_BASE_T, i_now : double, i_thisNode : OP_Node) : BOOL<br />
+ cookMySop(i_c<strong>on</strong>text : OP_C<strong>on</strong>text&) : OP_ERROR<br />
+ cookMyGuide1(i_c<strong>on</strong>text : OP_C<strong>on</strong>text&) : OP_ERROR<br />
- gather(i_now : double) : OP_ERROR<br />
- generateMesh(i_node : ENTITY_NODE_T*, i_now : double) : OP_ERROR<br />
- retrieveChildren(i_node : OP_Node, i_now : double) : ENTITY_NODE_T*<br />
Box_Node CSG_Node Bend_Node Metamorph_Node<br />
Sphere_Node<br />
Blend_Node<br />
Twist_Node<br />
Instancer_Node<br />
Torus_Node<br />
Bounded_Blend_Node<br />
Taper_Node<br />
Sphere_Sweep_Node<br />
C<strong>on</strong>e_Node<br />
Deform_Po<str<strong>on</strong>g>in</str<strong>on</strong>g>t_Node<br />
Cyl<str<strong>on</strong>g>in</str<strong>on</strong>g>der_Node<br />
Figure 4.1: Class diagram of custom Houd<str<strong>on</strong>g>in</str<strong>on</strong>g>i nodes<br />
15