/*! \page prism_3d_algo_page 3D extrusion meshing algorithm 3D extrusion algorithm can be used for meshing prisms, i.e. 3D shapes defined by two opposing faces having the same number of vertices and edges. These two faces should be connected by quadrangle "side" faces. The prism is allowed to have sides composed of several faces. (A prism side is a row of faces (or one face) connecting the corresponding edges of the top and base faces). However, a prism side can be split only vertically as indicated in the picture below. \image html prism_ok_ko.png "A suitable and an unsuitable prism" In this picture, the left prism is suitable for meshing with 3D extrusion algorithm: it has six sides, two of which are split vertically. The right prism cannot be meshed with this algorithm because one of the prism sides is split horizontally (the splitting edge is highlighted). The algorithm can propagate 2D mesh not only between horizontal (i.e. base and top) faces of one prism but also between faces of prisms organized in a stack and between stacks sharing prism sides. \image html prism_stack.png "Prism stacks" This picture shows four neighboring prism stacks, each comprising two prisms. The shown sub-mesh is used by the algorithm to mesh all eight prisms in the stacks. To use 3D extrusion algorithm you need to assign algorithms and hypotheses of lower dimensions as follows. (A sample picture below shows algorithms and hypotheses used to mesh a cylinder with prismatic volumes). \image html prism_needs_hyps.png The \b Global algorithms and hypotheses to be chosen at \ref create_mesh_anchor "Creation of a mesh object" are: The \b Local algorithms and hypotheses to be chosen at \ref constructing_submeshes_page "Construction of sub-meshes" are: If 3D extrusion algorithm is assigned to a sub-mesh in a mesh with multiple sub-meshes, the described above approach may not work as expected. For example the bottom face may be meshed by other algorithm before 3D extrusion have a chance to project a mesh from the base face. This thing can happen with vertical edges as well. All these can lead to either a meshing failure or to an incorrect meshing. In such a case, it's necessary to explicitly define algorithms that 3D extrusion implicitly applies in a simple case: - assign \ref projection_1D2D algorithm to the top face and - assign a 1D algorithm to a group of all vertical edges. \image html image157.gif "Prism with 3D extrusion meshing. Vertical division is different on neighbor edges because several local 1D hypotheses are assigned." \sa a sample TUI Script of \ref tui_prism_3d_algo "Use 3D extrusion meshing algorithm". */