discover the type of mesh, then call the corresponding orthoslicing base module
group DVorthoslice {
Mesh_Struct+Node_Data+Iparam &in {
nnodes+req;
};
int+Iparam axis;
int+Iparam plane;
DVorthoslice_struct DVorthoslice_struct {
&axis => <-.axis;
&plane => <-.plane;
};
DVorthoslice_unif DVorthoslice_unif {
&axis => <-.axis;
&plane => <-.plane;
};
DVorthoslice_rect DVorthoslice_rect {
&axis => <-.axis;
&plane => <-.plane;
};
DVfld_match DVfld_match {
Mesh_Struct+IPort2 &in=> <-.in;
links {
link0 => DVorthoslice_unif.in;
link1 => DVorthoslice_rect.in;
link2 => DVorthoslice_struct.in;
};
};
DVswitch DVswitch {
in => {DVorthoslice_unif.out, DVorthoslice_rect.out,
DVorthoslice_struct.out};
index => DVfld_match.index;
};
olink out => DVswitch.out;
};
DVorthoslice is a utility base module. It discovers what type of mesh (Mesh_Struct, Mesh_Rect, or Mesh_Unif) its input field has, then passes control through DVswitch to the corresponding base module (DVorthoslice_struct, DVorthoslice_rect, or DVorthoslice_unif).
A reference to a field containing any type of structured mesh, plus Node_Data.
The orthoslicing parameters. These are passed through to the selected base module.
The output is the same as the DVswitch selection.