# The requirement is to have a surface mesh on the cube comprised of
# triangles of exactly the same size arranged in a grid pattern.
#
-# To fulfill this requirement we mesh the box using Quadrangle (Mapping)
+# To fulfill this requirement we mesh the box using Quadrangle: Mapping
# meshing algorithm, split quadrangles into triangles and then generate
# tetrahedrons.
-# Arithmetic 1D and Geometric Progression
+# Arithmetic Progression and Geometric Progression
import salome
salome.salome_init()
-# Deflection 1D and Number of Segments
+# Deflection and Number of Segments
import salome
salome.salome_init()
-# Radial Quadrangle 1D2D example
+# Radial Quadrangle 1D-2D example
import salome
salome.salome_init()
-# Usage of 3D Extrusion meshing algorithm
+# Usage of Extrusion 3D meshing algorithm
import salome
salome.salome_init()
<ul>
<li>\ref average_length_anchor "Local Length"</li>
<li>\ref max_length_anchor "Max Size"</li>
- <li>\ref number_of_segments_anchor "Number of segments" with Equidistant distribution</li>
+ <li>\ref number_of_segments_anchor "Number of Segments" with Equidistant distribution</li>
<li>\ref automatic_length_anchor "Automatic Length"</li>
</ul></li>
<li>Constantly increasing or decreasing length of segments:
<ul>
- <li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
+ <li>\ref arithmetic_1d_anchor "Arithmetic Progression"</li>
<li>\ref geometric_1d_anchor "Geometric Progression"</li>
<li>\ref start_and_end_length_anchor "Start and end length"</li>
- <li>\ref number_of_segments_anchor "Number of segments" with Scale distribution</li>
+ <li>\ref number_of_segments_anchor "Number of Segments" with Scale distribution</li>
</ul></li>
<li>Distribution depending on curvature:
<ul>
<li>\ref adaptive_1d_anchor "Adaptive"</li>
- <li>\ref deflection_1d_anchor "Deflection 1D"</li>
+ <li>\ref deflection_1d_anchor "Deflection"</li>
</ul></li>
<li>Arbitrary distribution:
<ul>
- <li>\ref fixed_points_1d_anchor "Fixed points 1D"</li>
- <li>\ref number_of_segments_anchor "Number of segments" with
+ <li>\ref fixed_points_1d_anchor "Fixed Points"</li>
+ <li>\ref number_of_segments_anchor "Number of Segments" with
\ref analyticdensity_anchor "Analytic Density Distribution" or Table Density Distribution</li>
</ul></li>
</ul>
- <b>Max size</b> parameter defines the length of segments on straight edges.
- \b Deflection parameter gives maximal distance of a segment from a curved edge.
-\image html adaptive1d_sample_mesh.png "Adaptive hypothesis and Netgen 2D algorithm - the size of mesh segments reflects the size of geometrical features"
+\image html adaptive1d_sample_mesh.png "Adaptive hypothesis and NETGEN 2D algorithm - the size of mesh segments reflects the size of geometrical features"
<b>See Also</b> a \ref tui_1d_adaptive "sample TUI Script" that uses Adaptive hypothesis.
<br>
\anchor arithmetic_1d_anchor
-<h2>Arithmetic 1D hypothesis</h2>
+<h2>Arithmetic Progression hypothesis</h2>
-<b>Arithmetic 1D</b> hypothesis allows to split edges into segments with a
+<b>Arithmetic Progression</b> hypothesis allows to split edges into segments with a
length that changes in arithmetic progression (Lk = Lk-1 + d)
beginning from a given starting length and up to a given end length.
\image html a-arithmetic1d.png
-\image html b-ithmetic1d.png "Arithmetic 1D hypothesis - the size of mesh elements gradually increases"
+\image html b-ithmetic1d.png "Arithmetic Progression hypothesis - the size of mesh elements gradually increases"
<b>See Also</b> a sample TUI Script of a
-\ref tui_1d_arithmetic "Defining Arithmetic 1D and Geometric Progression hypothesis" operation.
+\ref tui_1d_arithmetic "Defining Arithmetic Progression and Geometric Progression hypothesis" operation.
<br>
\anchor geometric_1d_anchor
\image html a-geometric1d.png
<b>See Also</b> a sample TUI Script of a
-\ref tui_1d_arithmetic "Defining Arithmetic 1D and Geometric Progression hypothesis" operation.
+\ref tui_1d_arithmetic "Defining Arithmetic Progression and Geometric Progression hypothesis" operation.
<br>
\anchor deflection_1d_anchor
-<h2>Deflection 1D hypothesis</h2>
+<h2>Deflection hypothesis</h2>
-<b>Deflection 1D</b> hypothesis can be applied for meshing curvilinear edges
+<b>Deflection</b> hypothesis can be applied for meshing curvilinear edges
composing your geometrical object. It defines only one parameter: the
value of deflection (or chord error).
\image html a-deflection1d.png
-\image html b-flection1d.png "Deflection 1D hypothesis - useful for meshing curvilinear edges"
+\image html b-flection1d.png "Deflection hypothesis - useful for meshing curvilinear edges"
<b>See Also</b> a sample TUI Script of a
-\ref tui_deflection_1d "Defining Deflection 1D hypothesis" operation.
+\ref tui_deflection_1d "Defining Deflection hypothesis" operation.
<br>
\anchor average_length_anchor
<b>Use preestimated length</b> check box lets you use \b length
automatically calculated basing on size of your geometrical object,
namely as diagonal of bounding box divided by ten. The divider can be
-changed via "Ratio Bounding Box Diagonal / Max Size"
+changed via \ref diagonal_size_ratio_pref "Ratio Bounding Box Diagonal / Max Size"
preference parameter.
<b>Use preestimated length</b> check box is enabled only if the
geometrical object has been selected before hypothesis definition.
<br>
\anchor number_of_segments_anchor
-<h2>Number of segments hypothesis</h2>
+<h2>Number of Segments hypothesis</h2>
-<b>Number of segments</b> hypothesis can be applied for approximating
+<b>Number of Segments</b> hypothesis can be applied for approximating
edges by a definite number of mesh segments with length depending on
-the selected type of distribution of nodes.
+the selected type of distribution of nodes. The default number of
+segments can be set via
+\ref nb_segments_pref "Automatic Parameters / Default Number of Segments"
+preference parameter.
The direction of the splitting is defined by the orientation of the
underlying geometrical edge. <b>Reverse Edges</b> list box allows to
<br>
\anchor fixed_points_1d_anchor
-<h2>Fixed points 1D hypothesis</h2>
+<h2>Fixed Points hypothesis</h2>
-<b>Fixed points 1D</b> hypothesis allows splitting edges through a
+<b>Fixed Points</b> hypothesis allows splitting edges through a
set of points parametrized on the edge (from 1 to 0) and a number of
segments for each interval limited by the points.
defining <b>Reversed Edges</b> parameter.
-\image html mesh_fixedpnt.png "Example of a sub-mesh on the edge built using Fixed points 1D hypothesis"
+\image html mesh_fixedpnt.png "Example of a sub-mesh on the edge built using Fixed Points hypothesis"
<b>See Also</b> a sample TUI Script of a
\ref tui_fixed_points "Defining Fixed Points" hypothesis operation.
\image html reduce_three_to_one.png "The fastest transition pattern: 3 to 1"
-<b>Base vertex</b> tab allows using Quadrangle (Mapping)
+<b>Base vertex</b> tab allows using Quadrangle: Mapping
algorithm for meshing of trilateral faces. In this case it is
necessary to select the vertex, which will be used as the forth
degenerated side of quadrangle.
<li>\subpage a1d_meshing_hypo_page "1D Hypotheses" (for meshing of
<b>edges</b>):</li>
<ul>
-<li>\ref number_of_segments_anchor "Number of segments"</li>
+<li>\ref number_of_segments_anchor "Number of Segments"</li>
<li>\ref average_length_anchor "Local Length"</li>
<li>\ref max_length_anchor "Max Size"</li>
<li>\ref adaptive_1d_anchor "Adaptive"</li>
-<li>\ref arithmetic_1d_anchor "Arithmetic 1D"</li>
+<li>\ref arithmetic_1d_anchor "Arithmetic Progression"</li>
<li>\ref geometric_1d_anchor "Geometric Progression"</li>
<li>\ref start_and_end_length_anchor "Start and end length"</li>
-<li>\ref deflection_1d_anchor "Deflection 1D"</li>
+<li>\ref deflection_1d_anchor "Deflection"</li>
<li>\ref automatic_length_anchor "Automatic Length"</li>
-<li>\ref fixed_points_1d_anchor "Fixed points 1D"</li>
+<li>\ref fixed_points_1d_anchor "Fixed points"</li>
</ul>
<li>\subpage a2d_meshing_hypo_page "2D Hypotheses" (for meshing of <b>faces</b>):</li>
<ul>
This additional hypothesis can be used together with 2D triangulation algorithms.
It allows 2D triangulation algorithms to build quadrangular meshes.
-Usage of this hypothesis with "Quadrangle (Mapping)" meshing algorithm
+Usage of this hypothesis with "Quadrangle: Mapping" meshing algorithm
is obsolete since introducing
\ref hypo_quad_params_anchor "Quadrangle parameters" hypothesis.
-Usage of this hypothesis with "Quadrangle (Mapping)" meshing algorithm
+Usage of this hypothesis with "Quadrangle: Mapping" meshing algorithm
corresponds to specifying "Quadrangle Preference" transition type of
\ref hypo_quad_params_anchor "Quadrangle parameters" hypothesis.
\note "Quadrangle Preference" transition type can be used only if the
<li>For meshing of 2D entities (<b>faces</b>):</li>
<ul>
-<li><b>Triangle (Mefisto)</b> meshing algorithm - splits faces
+<li><b>Triangle: Mefisto</b> meshing algorithm - splits faces
into triangular elements.</li>
-<li>\subpage quad_ijk_algo_page "Quadrangle (Mapping)" meshing
+<li>\subpage quad_ijk_algo_page "Quadrangle: Mapping" meshing
algorithm - splits faces into quadrangular elements.</li>
</ul>
There is also a number of more specific algorithms:
<ul>
-<li>\subpage prism_3d_algo_page "for meshing prismatic 3D shapes with hexahedra and prisms"</li>
-<li>\subpage quad_from_ma_algo_page "for quadrangle meshing of faces with sinuous borders and rings"</li>
+<li>\subpage prism_3d_algo_page "Extrusion 3D" - for meshing prismatic 3D shapes with hexahedra and prisms.</li>
+<li>\subpage quad_from_ma_algo_page "Quadrangle: Medial Axis Projection" - for quadrangle meshing of faces with sinuous borders and rings.</li>
<li> <b>Polygon per Face</b> meshing algorithm - generates one mesh
face (either a triangle, a quadrangle or a polygon) per a geometrical
face using all nodes from the face boundary.</li>
-<li>\subpage projection_algos_page "for meshing by projection of another mesh"</li>
-<li>\subpage import_algos_page "for meshing by importing elements from another mesh"</li>
-<li>\subpage radial_prism_algo_page "for meshing 3D geometrical objects with cavities with hexahedra and prisms"</li>
-<li>\subpage radial_quadrangle_1D2D_algo_page "for quadrangle meshing of disks and parts of disks"</li>
-<li>\subpage use_existing_page "Use Edges to be Created Manually" and
- \ref use_existing_page "Use Faces to be Created Manually" algorithms can be
- used to create a 1D or a 2D mesh in a python script.</li>
-<li>\subpage segments_around_vertex_algo_page "for defining the length of mesh segments around certain vertices"</li>
+<li>\subpage projection_algos_page "Projection algorithms" - for meshing by projection of another mesh.</li>
+<li>\subpage import_algos_page "Import algorithms" - for meshing by importing elements from another mesh.</li>
+<li>\subpage radial_prism_algo_page "Radial Prism" - for meshing 3D geometrical objects with cavities with hexahedra and prisms.</li>
+<li>\subpage radial_quadrangle_1D2D_algo_page "Radial Quadrangle 1D-2D" - for quadrangle meshing of disks and parts of disks.</li>
+<li>\subpage use_existing_page "Use Faces/Edges to be Created Manually" - to create a 1D or a 2D mesh in a python script.</li>
+<li>\subpage segments_around_vertex_algo_page "Segments around Vertex" - for defining the length of mesh segments around certain vertices.</li>
</ul>
\ref constructing_meshes_page "Constructing meshes" page describes in
shape. The main Mesh object:
<ul>
<li><i>1D</i> <b>Wire discretisation</b> with <b>Number of Segments</b>=20</li>
- <li><i>2D</i> <b>Triangle (Mefisto)</b> with Hypothesis<b>Max Element Area</b>
+ <li><i>2D</i> <b>Triangle: Mefisto</b> with Hypothesis<b>Max Element Area</b>
</li>
</ul>
The first sub-mesh <b>Submesh_1</b> created on <b>Face_1</b> is:
<ul>
<li><i>1D</i> <b>Wire discretisation</b> with <b>Number of Segments</b>=4</li>
- <li><i>2D</i> <b>Triangle (Mefisto)</b> with Hypothesis <b>MaxElementArea</b>=1200</li>
+ <li><i>2D</i> <b>Triangle: Mefisto</b> with Hypothesis <b>MaxElementArea</b>=1200</li>
</ul>
The second sub-mesh <b>Submesh_2</b> created on <b>Face_2</b> is:
<ul>
<li><i>1D</i> <b>Wire discretisation</b> with <b>Number of Segments</b>=8</li>
- <li><i>2D</i> <b>Triangle (Mefisto)</b> with Hypothesis <b>MaxElementArea</b>=1200</li>
+ <li><i>2D</i> <b>Triangle: Mefisto</b> with Hypothesis <b>MaxElementArea</b>=1200</li>
</ul>
And the last sub-mesh <b>Submesh_3</b> created on <b>Face_3</b> is:
<ul>
<li><i>1D</i> <b>Wire discretisation</b> with <b>Number of Segments</b>=12</li>
- <li><i>2D</i> <b>Triangle (Mefisto)</b> with Hypothesis <b>MaxElementArea</b>=1200</li>
+ <li><i>2D</i> <b>Triangle: Mefisto</b> with Hypothesis <b>MaxElementArea</b>=1200</li>
</ul>
The sub-meshes become concurrent if they share sub-shapes that can be
with the same contents. (To fully re-compute the mesh, invoke
\ref clear_mesh_anchor "Clear Mesh Data" command before).
+\anchor meshing_result_anchor
If the mesh computation has been a success, the box shows information
on the number of entities of different types in the mesh.
</center>
\note Mesh Computation Information box does not appear if you set
-"Mesh computation/Show a computation result notification" preference
+\ref show_comp_result_pref "Mesh computation/Show a computation result notification" preference
to the "Never" value. This option gives the possibility to control mesh
computation reporting. There are the following possibilities: always
show the information box, show only if an error occurs or never.
\page display_mode_page Display Mode
-\n By default your objects are represented as set in
-\ref mesh_preferences_page "Preferences".
+\n By default your objects are represented as defined in
+\ref mesh_tab_preferences "Preferences".
\n However, right-clicking on the mesh in the <b>Object Browser</b>,
and selecting <b>Display Mode</b>, you can display your mesh as:
This mesh quality control highlights the nodes which are coincident
with other nodes (within a given tolerance). Distance at which two
-nodes are considered coincident is defined by "Quality Controls/Double
-nodes tolerance" preference.
+nodes are considered coincident is defined by
+\ref dbl_nodes_tol_pref "Quality Controls/Double nodes tolerance"
+preference.
\image html double_nodes.png
overall quality information about the selected mesh, sub-mesh or group
object.
+\anchor dump_mesh_infos
+The button \b Dump allows printing the information displayed in the
+dialog box to a .txt file. The dialog for choosing a file also allows
+to select which tab pages to dump via four check-boxes. The default state
+of the check-boxes can be changed via \ref mesh_information_pref "Mesh information"
+preferences.
+
\anchor advanced_mesh_infos_anchor
<h2>Base Information</h2>
the 3D viewer.
\note The information about the groups, to which the node or element belongs,
- can be shown in a short or in a detailed form. By default, for performance
+can be shown in a short or in a detailed form. By default, for performance
reasons, this information is shown in a short form (group names
-only). The detailed information on groups can be switched on via the user
-preferences, see \ref mesh_preferences_page.
+only). The detailed information on groups can be switched on via
+\ref group_detail_info_pref "Show details on groups in element information tab"
+option of \ref mesh_preferences_page.
\anchor mesh_addition_info_anchor
<h2>Additional Information</h2>
<em>"Additional Info" page, sub-mesh information</em></center>
<br>
+\anchor mesh_addition_info_group_anchor
For a group object, the following information is shown:
- Name
- Parent mesh
computed only by demand. For this, the user should press the "Compute"
button (see picture). Also, the number of underlying nodes is
automatically calculated if the size of the group does not exceed
-the "Automatic nodes compute limit" set via the "Mesh information"
-preferences (zero value means no limit).
+the \ref nb_nodes_limit_pref "Automatic nodes compute limit"
+preference value (zero value means no limit).
\anchor mesh_quality_info_anchor
<h2>Quality Information</h2>
<center>\image html ctrlinfo.png
<em>"Quality Info" page</em></center>
-\note It is possible to set "Double nodes tolerance" in the dialog for a local change
- or via the "Quality controls" in Mesh preferences.
-
-\note For performance reasons, all quality control values for big meshes are
-computed only by demand. For this, press the "compute"
-button. Also, values are automatically computed if the number of
-nodes / elements does not exceed the "Automatic controls compute limit" set
-via the "Mesh information" preferences (zero value means that there is no limit).
-
-\note The plot functionality is available only if the GUI module is built with Plot 2D Viewer (option SALOME_USE_PLOT2DVIEWER is ON when building GUI module).
-
-The button \b "Dump" allows printing the information displayed in the
-dialog box to a .txt file.
+\note It is possible to change <b>Double nodes tolerance</b>, which
+will be used upon consequent pressing \a Compute button. The default value
+of the tolerance can be set via the
+\ref dbl_nodes_tol_pref "Quality controls" preferences.
+
+\note For performance reasons, all quality control values for big
+meshes are computed only by demand. For this, press the \a Compute
+button. Also, values are automatically computed if the number of nodes
+/ elements does not exceed the
+\ref auto_control_limit_pref "Automatic controls compute limit" set
+via the \ref mesh_information_pref "Mesh information" preferences
+(zero value means that there is no limit).
+
+\note The plot functionality is available only if the GUI module is
+built with Plot 2D Viewer (option SALOME_USE_PLOT2DVIEWER is ON when
+building GUI module).
See the \ref tui_viewing_mesh_infos "TUI Example".
\image html pref21.png
+\anchor automatic_update_pref
- <b>Automatic Update</b>
- <b>Automatic Update</b> - if activated, the mesh in your
viewer will be automatically updated after it's computation, depending on
number of elements does not exceed the size limit, the entities of
this type are shown, otherwise the user is warned that some entities are not shown.
+\anchor display_mode_pref
+- <b>Display mode</b>
+ - <b>Default display mode</b> - allows to set Wireframe, Shading, Nodes or Shrink
+ \ref display_mode_page "presentation mode" as default.
+
+\anchor quadratic_2d_mode_pref
+- <b>Representation of the 2D quadratic elements</b>
+ - <b>Default mode of the 2D quadratic elements</b> - allows to
+ select either \a Lines or \a Arcs as a default
+ \ref quadratic_2d_mode "representation" of 1D and 2D
+ \ref adding_quadratic_elements_page "quadratic elements".
+ - <b>Maximum Angle</b> - maximum deviation angle used by the
+ application to build arcs.
+
- <b>Quality Controls</b>
- <b>Display entity</b> - if activated, only currently
\ref quality_page "controlled" entities are displayed in the
- <b>Use precision</b> - if activated, all quality controls
will be computed at precision defined by <b>Number of digits after
point</b> - as integers by default.
+\anchor dbl_nodes_tol_pref
- <b>Double nodes tolerance</b> - defines the maximal distance between two
mesh nodes, at which they are considered coincident by
\ref double_nodes_control_page "Double nodes" quality control.
-
-- <b>Display mode</b>
- - <b>Default display mode</b> - allows to set Wireframe, Shading, Nodes or Shrink
- \ref display_mode_page "presentation mode" as default.
-
-\anchor quadratic_2d_mode_pref
-- <b>Representation of the 2D quadratic elements</b>
- - <b>Default mode of the 2D quadratic elements</b> - allows to
- select either \a Lines or \a Arcs as a default
- \ref quadratic_2d_mode "representation" of 1D and 2D
- \ref adding_quadratic_elements_page "quadratic elements".
- - <b>Maximum Angle</b> - maximum deviation angle used by the
- application to build arcs.
+ This value is also used in \ref mesh_quality_info_anchor "Quality Info"
+ tab page of \ref mesh_infos_page dialog.
- <b>Mesh export</b>
\anchor export_auto_groups_pref
- <b>Show warning when exporting group</b> - if activated, a warning is
displayed when exporting a group.
+\anchor show_comp_result_pref
- <b>Mesh computation</b>
- - <b>Show a computation result notification</b> combo-box allows to
- select the notification mode about a mesh computation result.
+ - <b>Show a computation result notification</b> - allows to
+ select the notification mode about a \ref compute_anchor "mesh computation" result.
There are 3 possible modes:
- - <b>Never</b> - do not show the result dialog at all;
+ - <b>Never</b> - not to show the \ref meshing_result_anchor "result dialog" at all;
- <b>Errors only</b> - the result dialog will be shown if there were
some errors during a mesh computation;
- <b>Always</b> - show the result dialog after each mesh
computation. This is a default mode.
+\anchor mesh_information_pref
- <b>Mesh information</b>
- - <b>Mesh element information</b> - change the way mesh element
- information is shown:
+ - <b>Mesh element information</b> - allows changing the way
+ \ref mesh_element_info_anchor "mesh element information" is shown:
- <b>Simple</b> - as a plain text
- <b>Tree</b> - in a tree-like form
+\anchor nb_nodes_limit_pref
- <b>Automatic nodes compute limit</b> - allows defining the size limit for the
- mesh groups for which the number of underlying nodes is calculated
+ \ref mesh_addition_info_group_anchor "mesh groups" for which
+ the number of underlying nodes is calculated
automatically. If the group size exceeds the value set in the preferences,
the user will have to press \em Compute button explicitly. Zero value
means "no limit". By default the value is set to 100 000 mesh elements.
- - <b>Automatic controls compute limit</b> - allows defining the size limit for the
- mesh elements for which the Aspect Ratio histogram is calculated
- automatically. If the mesh elements size exceeds the value set in the preferences,
- it is possible to press \b Compute button explicitly to calculate the histogram . Zero value
- means "no limit". By default the value is set to 3 000 mesh elements.
+\anchor auto_control_limit_pref
+ - <b>Automatic controls compute limit</b> - allows defining a
+ maximal number of mesh elements for which the quality controls
+ in the \ref mesh_quality_info_anchor "Quality Information"
+ tab page are calculated automatically. If the number of mesh elements
+ exceeds the value set in the preferences, it is necessary to press
+ \b Compute button explicitly to calculate a quality measure. Zero value
+ means "no limit". By default the value is set to 3 000 mesh
+ elements.
+\anchor group_detail_info_pref
- <b>Show details on groups in element information tab</b> - when
this option is switched off (default), only the names of groups, to which the node
- or element belongs, are shown in the \ref mesh_element_info_anchor "Info Tab"
+ or element belongs, are shown in the \ref mesh_element_info_anchor "Element Info"
tab of "Mesh Information" dialog box. If this option is
switched on, the detailed information on groups is shown.
- <b>Dump base information</b> - allows dumping base mesh information to the
- file, see \ref mesh_infos_page.
+ file, see \ref dump_mesh_infos "Mesh Information".
- <b>Dump element information</b> - allows dumping element information to the
- file, see \ref mesh_infos_page.
+ file, see \ref dump_mesh_infos "Mesh Information".
- <b>Dump additional information</b> - allows dumping additional mesh
- information to the file, see \ref mesh_infos_page.
+ information to the file, see \ref dump_mesh_infos "Mesh Information".
- <b>Dump controls information</b> - allows dumping quality mesh
- information to the file, see \ref mesh_infos_page.
+ information to the file, see \ref dump_mesh_infos "Mesh Information".
- <b>Automatic Parameters</b>
- - <b>Ratio Bounding Box Diagonal / Max Size</b> - this parameter is
- used for automatic meshing. This is the ratio between the bounding box of the
- meshed object and the Max Size of segments.
- - <b>Default Number of Segments</b> - defines the default
- number of segments on each edge.
+\anchor diagonal_size_ratio_pref
+ - <b>Ratio Bounding Box Diagonal / Max Size</b> - defines the ratio
+ between the bounding box of the meshed object and the Max Size of
+ segments. It is used as a default value of \ref a1d_meshing_hypo_page
+ defining length of segments, especially by
+ \ref max_length_anchor "Max Size" hypothesis.
+\anchor nb_segments_pref
+ - <b>Default Number of Segments</b> - defines the default number of
+ segments in \ref number_of_segments_anchor "Number of Segments"
+ hypothesis.
- <b>Mesh loading</b>
- - If <b>No mesh loading from study file at hypothesis modification</b>
- check-box is on, the mesh data will not be loaded from the study file
- when a hypothesis is modified. This allows saving time by omitting
+ - <b>No mesh loading from study file at hypothesis modification</b> - if
+ activated, the mesh data will not be loaded from the study file
+ when a hypothesis is modified. This allows saving time by omitting
loading data of a large mesh that is planned to be recomputed with other parameters.
- <b>Input fields precision</b>
- <b>Preview</b>
- <b>Sub-shapes preview chunk size</b> - allows to limit the number
of previewed sub-shapes shown in the hypotheses creation dialog boxes,
- for example "Reverse Edges" parameter of \ref number_of_segments_anchor "Number of segments" hypothesis.
+ for example "Reverse Edges" parameter of
+ \ref number_of_segments_anchor "Number of segments" hypothesis.
- <b>Python Dump</b>
- - <b>Historical python dump</b> checkbox allows switching between
+ - <b>Historical python dump</b> - allows switching between
\a Historical and \a Snapshot dump mode:
- In \a Historical mode, Python Dump script includes all commands
performed by SMESH engine.
from the Study as well as the commands not influencing the
current state of meshes are excluded from the script.
+\anchor mesh_tab_preferences
<h2>Mesh Preferences</h2>
+\b Mesh tab page contains parameters defining the way the mesh is
+displayed in the 3D Viewer.
+
\image html pref22.png
-- <b>Nodes</b> allows to define default parameters for nodes, which will be applied
+- <b>Nodes</b> - allows to define default parameters for nodes, which will be applied
for a newly created mesh only. Existing meshes can be customized using
\ref colors_size_page "Properties dialog box" available from the context menu of a mesh.
- <b>Color</b> - allows to select the color of nodes. Click on the
- colored line to access to the <b>Select Color</b> dialog box.
+ downward arrow near the colored line to access to the <b>Select Color</b> dialog box.
- <b>Type of marker</b> - allows to define the shape of nodes.
- <b>Scale of marker</b> - allows to define the size of nodes.
-- <b>Elements</b> allows to define default parameters for different elements, which will be applied
- for a newly created mesh only. Existing meshes can be customized using
+- <b>Elements</b> - allows to define default parameters for different
+ elements, which will be applied to a newly created mesh
+ only. Existing meshes can be customized using
\ref colors_size_page "Properties dialog box" available from the context menu of a mesh.
- <b>Surface color</b> - allows to select the surface color of 2D elements
- (seen in Shading mode). Click on the colored line to access to the
+ (seen in Shading mode). Click on the downward arrow near the colored line to access to the
<b>Select Color</b> dialog box.
- <b>Back surface color</b> - allows to select the back surface color
of 2D elements. This is useful to differ 2d elements with
the <b>Volume color</b> by changing its brightness and saturation.
- <b>0D element color</b> - allows to choose color of 0D mesh elements.
- <b>Ball color</b> - allows to choose color of discrete mesh elements (balls).
- - <b>Outline color</b> - allows to select the color of element
- borders.
+ - <b>Outline color</b> - allows to select the color of element borders.
- <b>Wireframe color</b> - allows to select the color of borders of
elements in the wireframe mode.
- - <b>Preview color</b> - allows to select the preview color of the elements.
+ - <b>Preview color</b> - allows to select the preview color of the
+ elements, which is used while
+ \ref adding_nodes_and_elements_page "manual creation of elements".
- <b>Size of 0D elements</b> - specifies default size of 0D elements.
- <b>Size of ball elements</b> - specifies default size of discrete
elements (balls).
- - <b>Scale factor of ball elements</b> - specifies default scale factor of discrete
- elements (balls).
- - <b>Line width</b> - allows to define the width of 1D elements (edges).
+ - <b>Scale factor of ball elements</b> - specifies default scale
+ factor of discrete elements (balls) allowing to adjust their size in the Viewer.
+ - <b>Line width</b> - allows to define the width of 1D elements (segments).
- <b>Outline width</b> - allows to define the width of borders of
2D and 3D elements (shown in the Shading mode).
- - <b>Shrink coef.</b> - allows to define relative space of elements
- compared to gaps between them in shrink mode.
+ - <b>Shrink coef.</b> - allows to define relative size of a shrunk
+ element compared a non-shrunk element in percents in the shrink mode.
- <b>Groups</b>
- <b>Names color</b> - specifies color of group names to be used in
- 3D viewer.
+ the 3D viewer.
- <b>Default color</b> - specifies the default group color, which is used
- to create a new mesh group (see \ref creating_groups_page "Create Group dialog box").
+ to create a new mesh group (see \ref creating_groups_page "Create Group dialog box").
- <b>Numbering</b> allows to define properties of numbering functionality:
- <b>Nodes</b> - specifies text properties of nodes numbering
(font family, size, attributes, color).
- <b>Elements</b> - same for elements.
-- <b>Orientation of Faces</b> - allows to define default properties of orientation vectors.
- These preferences will be applied to the newly created meshes only; properties of existing meshes
- can be customized using \ref colors_size_page "Properties dialog box"
- available from the context menu of a mesh.
+- <b>Orientation of Faces</b> - allows to define default properties of
+ orientation vectors. These preferences will be applied to the newly
+ created meshes only; properties of existing meshes can be customized
+ using \ref colors_size_page "Properties dialog box" available from
+ the context menu of a mesh.
- \b Color - allows to define the color of orientation vectors;
- \b Scale - allows to define the size of orientation vectors;
- - <b>3D Vector</b> check-box allows to choose between 2D planar
+ - <b>3D Vector</b> - allows to choose between 2D planar
and 3D vectors.
<br><h2>Selection Preferences</h2>
- <b>Selection</b> - performed with mouse-indexing (preselection)
and left-clicking on an object, whose appearance changes as defined in
the <b>Preferences</b>.
- - <b>Object color</b> - allows to select the color of mesh (edges and
+ - <b>Object color</b> - allows to select the color of mesh (edges and
borders of meshes) of the selected entity. Click on the colored line
to access to the <b>Select Color</b> dialog box.
- <b>Element color</b> - allows to select the color of surface of selected
- <b>Preselection</b> - performed with mouse-indexing on an object,
whose appearance changes as defined in the <b>Preferences</b>.
- - <b>Highlight color</b> - allows to select the color of mesh (edges and
- borders of meshes) of the entity . Click on the colored line to access
+ - <b>Highlight color</b> - allows to select the color of mesh (edges and
+ borders of meshes) of the entity. Click on the colored line to access
to the <b>Select Color</b> dialog box.
- <b>Precision</b> - in this menu you can set the value of precision
\image html pref24.png
-\note The following settings are default and will be applied for
-a newly created mesh only. Existing meshes
-can be customized using local \ref scalar_bar_dlg "Scalar Bar Properties dialog box"
-available from the context menu of a mesh.
+\note The following settings are default and will be applied to
+a newly created mesh only. Existing meshes can be customized using
+local \ref scalar_bar_dlg "Scalar Bar Properties dialog box" available
+from the context menu of a mesh.
-- <b>Font</b> - in this menu you can set type, face and color for
+- <b>Font</b> - in this menu you can set type, face and color of
the font of <b>Title</b> and <b>Labels</b>.
- <b>Colors & Labels</b> - in this menu you can set the <b>number of
colors</b> and the <b>number of labels</b> in use.
- <b>Orientation</b> - here you can choose between vertical and
- horizontal orientation of the <b>Scalar Bar</b>
+ horizontal orientation of the <b>Scalar Bar</b>.
- <b>Origin & Size Vertical & Horizontal</b> - allows to define
placement (<b>X</b> and <b>Y</b>) and lookout (<b>Width</b> and
<b>Height</b>) of Scalar Bars.
- - <b>X</b>: abscissa of the point of origin (from the left
- side)
- - <b>Y</b>: ordinate of the origin of the bar (from the bottom)
+ - <b>X</b> - abscissa of the point of origin (from the left side).
+ - <b>Y</b> - ordinate of the origin of the bar (from the bottom).
- <b>Distribution</b> in this menu you can Show/Hide distribution
histogram of the values of the <b>Scalar Bar</b> and specify the
<b>Coloring Type</b> of the histogram:
- - <b>Multicolor</b> the histogram is colored as <b>Scalar Bar</b>
- - <b>Monocolor</b> the histogram is colored as selected with
- <b>Distribution color</b> selector
+ - <b>Multicolor</b> - the histogram is colored as <b>Scalar Bar</b>.
+ - <b>Monocolor</b> - the histogram is colored as selected with
+ <b>Distribution color</b> selector.
*/
/*!
-\page prism_3d_algo_page 3D extrusion meshing algorithm
+\page prism_3d_algo_page Extrusion 3D meshing algorithm
-3D extrusion algorithm can be used for meshing prisms, i.e. 3D shapes
+Extrusion 3D 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 shown sub-mesh is used by the algorithm to mesh
all eight prisms in the stacks.
-To use <em>3D extrusion</em> algorithm you need to assign algorithms
+To use <em>Extrusion 3D</em> 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).
<li> 1D algorithm and hypothesis that will be applied for meshing
(logically) vertical edges of the prism (which connect the top and the
base faces of the prism). In the sample picture above these are
- "Regular_1D" algorithm and "Nb. Segments" hypothesis named "Vertical
+ "Regular_1D" algorithm and "Number of Segments" hypothesis named "Vertical
Nb. Segments".</li>
</ul>
Scale Factor=3 is assigned to the highlighted edge.
</li></ul>
-If <em>3D extrusion</em> algorithm is assigned to a sub-mesh in a mesh
+If <em>Extrusion 3D</em> 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 <em>3D extrusion</em> have a chance to project a mesh from the
+before <em>Extrusion 3D</em> 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 <em>3D extrusion</em> implicitly applies in a simple case:
+that <em>Extrusion 3D</em> 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."
+\image html image157.gif "Prism with Extrusion 3D 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".
+\ref tui_prism_3d_algo "Use Extrusion 3D meshing algorithm".
*/
/*!
-\page quad_ijk_algo_page Quadrangle (Mapping) meshing algorithm
+\page quad_ijk_algo_page Quadrangle: Mapping meshing algorithm
-<b>Quadrangle (Mapping)</b> meshing algorithm is intended for creating
+<b>Quadrangle: Mapping</b> meshing algorithm is intended for creating
all-quadrangle and quad-dominant meshes on faces without holes and
bound by at least three edges.
quadrangles.
The Radial Prism algorithm would fill the space between the two shells
-with meshes.
+with prisms.
+
+\image html radial_prism_mesh.png "Cut-view of a hollow sphere meshed by Radial Prism algorithm"
This algorithm also needs the information concerning the number and
distribution of mesh layers between the inner and the outer shapes.
\image html distribution_of_layers.png
-*/
\ No newline at end of file
+*/
/*!
-\page radial_quadrangle_1D2D_algo_page Radial Quadrangle 1D2D
+\page radial_quadrangle_1D2D_algo_page Radial Quadrangle 1D-2D
\n This algorithm applies to the meshing of 2D shapes under the
following conditions: the face must be a full ellipse or a part of ellipse
If no own hypothesis of the algorithm is assigned, any local or global
hypothesis is used by the algorithm to discretize edges.
-If no 1D hypothesis is assigned to an edge, "Default Number of
-Segments" preferences parameter is used to discretize the edge.
+If no 1D hypothesis is assigned to an edge,
+\ref nb_segments_pref "Default Number of Segments" preferences
+parameter is used to discretize the edge.
\image html hypo_radquad_dlg.png
<li>Wire discretisation 1D algorithm
<ul>
<li>\ref tui_1d_adaptive "Adaptive 1D" hypothesis</li>
- <li>\ref tui_1d_arithmetic "Arithmetic 1D" hypothesis</li>
+ <li>\ref tui_1d_arithmetic "Arithmetic Progression" hypothesis</li>
<li>\ref tui_1d_arithmetic "Geometric Progression" hypothesis</li>
- <li>\ref tui_deflection_1d "Deflection 1D and Number of Segments" hypotheses</li>
+ <li>\ref tui_deflection_1d "Deflection and Number of Segments" hypotheses</li>
<li>\ref tui_start_and_end_length "Start and End Length" hypotheses</li>
<li>\ref tui_average_length "Local Length"</li>
<li>\ref tui_propagation "Propagation" additional hypothesis </li>
<li>\ref tui_fixed_points "Fixed Points 1D" hypothesis</li>
</ul>
</li>
-<li>Triangle (Mefisto) 2D algorithm
+<li>Triangle: Mefisto 2D algorithm
<ul>
<li>\ref tui_max_element_area "Max Element Area" hypothesis </li>
<li>\ref tui_length_from_edges "Length from Edges"
hypothesis </li>
</ul>
</li>
-<li>Tetrahedron (Netgen) 3D algorithm
+<li>NETGEN 3D algorithm
<ul>
<li> \ref tui_max_element_volume "Max. Element Volume"hypothesis </li>
<li> \ref tui_viscous_layers "Viscous layers"</li>
</ul>
</li>
<li>\ref tui_projection "Projection Algorithms"</li>
-<li>\ref tui_radial_quadrangle "Radial Quadrangle 1D2D" algorithm</li>
-<li>Quadrangle (Mapping) 2D algorithm
+<li>\ref tui_radial_quadrangle "Radial Quadrangle 1D-2D" algorithm</li>
+<li>Quadrangle: Mapping 2D algorithm
<ul>
<li> \ref tui_quadrangle_parameters "Quadrangle Parameters" hypothesis </li>
</ul>
<br>
\anchor tui_1d_arithmetic
-<h3>Arithmetic 1D and Geometric Progression</h3>
+<h3>Arithmetic Progression and Geometric Progression</h3>
\tui_script{defining_hypotheses_ex01.py}
<br>
<br>
\anchor tui_deflection_1d
-<h3>Deflection 1D and Number of Segments</h3>
+<h3>Deflection and Number of Segments</h3>
\tui_script{defining_hypotheses_ex02.py}
<br>
\tui_script{defining_hypotheses_ex12.py}
\anchor tui_radial_quadrangle
-<h2> Radial Quadrangle 1D2D example </h2>
+<h2> Radial Quadrangle 1D-2D example </h2>
\tui_script{defining_hypotheses_ex13.py}
\anchor tui_quadrangle_parameters
/*!
-\page tui_prism_3d_algo Use 3D extrusion meshing algorithm
+\page tui_prism_3d_algo Use Extrusion 3D meshing algorithm
\tui_script{prism_3d_algo.py}
The result geometry and mesh is shown below
\page viewing_meshes_overview_page Viewing meshes
-\n After definition of algorithms and hypotheses a new mesh is listed
-in the Object Browser. Right-click on it and select \b Compute - the
-mesh will be automatically displayed in the <b>VTK 3D Viewer</b>.
-Alternatively click <b>Display only</b> to hide all other objects at
-the same time.
+By default a just \ref compute_anchor "computed" mesh will be
+automatically displayed in the <b>VTK 3D Viewer</b>. (You can switch
+off \ref automatic_update_pref "Automatic Update" preference parameter
+to prevent this.)
+Click <b>Display only</b> to hide all other objects at the same time.
<b>VTK 3D Viewer</b> is described in detail in the documentation on <b>GUI module</b>.
-\n After the mesh has appeared in the Viewer, you can select it with
+
+Use the following \ref mesh_preferences_page "preference parameters"
+to adjust how the mesh is displayed by default:
+- \ref automatic_update_pref "Automatic Update"
+- \ref display_mode_pref "Default display mode"
+- \ref quadratic_2d_mode_pref "Representation of the 2D quadratic elements"
+- All parameters of \ref mesh_tab_preferences "Mesh" tab page of the
+Preferences dialog.
+
+After the mesh has appeared in the Viewer, you can select it with
left mouse click and get information about it, change its
presentation parameters and access to other useful options by
right-clicking on the selected mesh.
<li><b>Rename</b> - allows to rename the object in the Object browser.</li>
<li><b>Hide all</b> - allows to hide all objects in the viewer.</li>
<li><b>Update</b> - refreshes the presentation of your mesh in the
-Object Browser, applying all recent changes. </li>
+ Object Browser, applying all recent changes. </li>
<li>\subpage mesh_infos_page "Mesh Information" - provides
-information about the mesh.</li>
+ information about the mesh.</li>
<li>\subpage find_element_by_point_page "Find Element by Point" -
-allows to find all mesh elements, to which belongs a point with the
+ allows to find all mesh elements, to which belongs a point with the
given coordinates.</li>
<li><b>Auto Color</b> - switch on / off auto-assigning colors for the
groups. If switched on, a default color of a new group in
\ref creating_groups_page "Create Group" dialog is chosen
randomly. </li>
<li>\subpage numbering_page "Numbering" - allows to display the ID
-numbers of all meshing elements or nodes composing your mesh in the
-viewer.</li>
+ numbers of all meshing elements or nodes composing your mesh in the
+ viewer.</li>
<li>\subpage display_mode_page "Display Mode" - allows to select between
-Wireframe, Shading and Nodes presentation.</li>
+ Wireframe, Shading and Nodes presentation.</li>
<li>\subpage display_entity_page "Display Entity" - allows to display
entities by types (Faces, Edges, Volumes etc.).</li>
\anchor quadratic_2d_mode
Arc representation applies to 1D and 2D elements only.
</li>
<li><b>Orientation of faces</b> - shows vectors of orientation of
-faces of the selected mesh. The orientation vector is shown for each 2D mesh element
-and for each free face of a 3D mesh element. the vector direction is calculated by
-the first three nodes of the face produced by vectors n1-n2 and n1-n3.</li>
-<li>\subpage colors_size_page "Properties" - allows to define several properties, including color of elements, shrink size, ....</li>
+ faces of the selected mesh. The orientation vector is shown for each
+ 2D mesh element and for each free facet of a 3D mesh element. The
+ vector direction is calculated by the first three nodes of the face
+ produced by vectors n1-n2 and n1-n3.</li>
+<li>\subpage colors_size_page "Properties" - allows to define several
+ visual properties, including color of elements, shrink size, ...</li>
<li>\subpage transparency_page "Transparency" - allows to change the
-transparency of mesh elements.</li>
-<li>\ref quality_page "Controls" - graphically
-presents various information about meshes.</li>
+ transparency of mesh elements.</li>
+<li>\ref quality_page "Controls" - graphically presents various
+ information about the mesh.</li>
<li><b>Hide</b> - allows to hide the selected mesh from the viewer.</li>
-<li><b>Show Only</b> -allows to display only the selected mesh, hiding all other from the viewer.</li>
-<li>\subpage clipping_page "Clipping" - allows to create cross-sections of the selected objects.</li>
-<li><b>Dump view</b> - exports an object from the viewer in bmp, png, jpg or jpeg image format.</li>
+<li><b>Show Only</b> - allows to display only the selected mesh,
+ hiding all others from the viewer.</li>
+<li>\subpage clipping_page "Clipping" - allows to create
+ cross-sections of the displayed objects.</li>
+<li><b>Dump view</b> - exports an object from the viewer in bmp, png
+ or jpeg image format.</li>
<li><b>Change background</b> - allows to redefine the background
-color. By default it is black.</li>
-<li><b>View Operations</b> checkbox - allows to show/hide the
-visualization toolbar in the viewer window.</li>
+ color. By default it is black.</li>
+<li><b>View Operations</b> - allows to show/hide the
+ visualization toolbar in the Viewer window.</li>
<li><b>Recording Operations</b> - allows to show/hide the recording
-toolbar in the viewer window.</li>
+ toolbar in the Viewer window.</li>
</ul>
*/
<meshers>
-<meshers-group name="Standard Meshers"
- resources="StdMeshers"
+<meshers-group name ="Standard Meshers"
+ resources ="StdMeshers"
idl-module="StdMeshers"
server-lib="StdMeshersEngine"
- gui-lib="StdMeshersGUI">
+ gui-lib ="StdMeshersGUI">
<hypotheses>
<hypothesis type ="SegmentLengthAroundVertex"
<hypothesis type ="LocalLength"
label-id ="Local Length"
icon-id ="mesh_hypo_length.png"
+ group-id ="0"
+ priority ="20"
dim ="1"/>
<hypothesis type ="MaxLength"
label-id ="Max Size"
icon-id ="mesh_hypo_length.png"
+ group-id ="2"
+ priority ="50"
dim ="1"/>
<hypothesis type ="Arithmetic1D"
- label-id ="Arithmetic 1D"
+ label-id ="Arithmetic Progression"
icon-id ="mesh_hypo_length.png"
+ group-id ="1"
+ priority ="10"
dim ="1"/>
<hypothesis type ="GeometricProgression"
label-id ="Geometric Progression"
icon-id ="mesh_hypo_length.png"
+ group-id ="1"
+ priority ="20"
dim ="1"/>
<hypothesis type ="FixedPoints1D"
- label-id ="Fixed Points 1D"
+ label-id ="Fixed Points"
icon-id ="mesh_hypo_length.png"
+ group-id ="2"
+ priority ="10"
dim ="1"/>
<hypothesis type ="StartEndLength"
label-id ="Start and End Length"
icon-id ="mesh_hypo_length.png"
+ group-id ="1"
+ priority ="30"
dim ="1"/>
<hypothesis type ="NumberOfSegments"
- label-id ="Nb. Segments"
+ label-id ="Number of Segments"
icon-id ="mesh_hypo_segment.png"
+ group-id ="0"
+ priority ="10"
dim ="1"/>
<hypothesis type ="Deflection1D"
- label-id ="Deflection 1D"
+ label-id ="Deflection"
icon-id ="mesh_hypo_length.png"
+ group-id ="2"
+ priority ="20"
dim ="1"/>
<hypothesis type ="Adaptive1D"
label-id ="Adaptive"
icon-id ="mesh_hypo_length.png"
+ group-id ="2"
+ priority ="30"
dim ="1"/>
<hypothesis type ="Propagation"
<hypothesis type ="AutomaticLength"
label-id ="Automatic Length"
icon-id ="mesh_hypo_length.png"
+ group-id ="2"
+ priority ="40"
dim ="1"/>
<hypothesis type ="LengthFromEdges"
<algorithm type ="Regular_1D"
label-id ="Wire Discretisation"
icon-id ="mesh_algo_regular.png"
+ group-id ="0"
+ priority ="10"
hypos ="Adaptive1D,LocalLength,MaxLength,Arithmetic1D,GeometricProgression,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
opt-hypos="Propagation,PropagOfDistribution,QuadraticMesh"
input ="VERTEX"
<algorithm type ="CompositeSegment_1D"
label-id ="Composite Side Discretisation"
icon-id ="mesh_algo_regular.png"
+ group-id ="0"
+ priority ="20"
hypos ="Adaptive1D,LocalLength,MaxLength,Arithmetic1D,GeometricProgression,StartEndLength,NumberOfSegments,Deflection1D,AutomaticLength,FixedPoints1D"
opt-hypos="Propagation,PropagOfDistribution,QuadraticMesh"
input ="VERTEX"
</algorithm>
<algorithm type ="@MEFISTO2D_NAME@"
- label-id ="Triangle (Mefisto)"
+ label-id ="Triangle: Mefisto"
icon-id ="mesh_algo_mefisto.png"
+ group-id ="1"
+ priority ="40"
hypos ="LengthFromEdges,MaxElementArea"
opt-hypos ="ViscousLayers2D"
input ="EDGE"
</algorithm>
<algorithm type ="Quadrangle_2D"
- label-id ="Quadrangle (Mapping)"
+ label-id ="Quadrangle: Mapping"
icon-id ="mesh_algo_quad.png"
+ group-id ="0"
+ priority ="10"
hypos ="QuadrangleParams"
opt-hypos="ViscousLayers2D"
input ="EDGE"
</algorithm>
<algorithm type ="QuadFromMedialAxis_1D2D"
- label-id ="Quadrangle (Medial Axis Projection)"
+ label-id ="Quadrangle: Medial Axis Projection"
icon-id ="mesh_algo_quad.png"
+ group-id ="0"
+ priority ="20"
hypos ="NumberOfLayers2D, LayerDistribution2D"
opt-hypos="ViscousLayers2D"
input ="EDGE"
<algorithm type ="PolygonPerFace_2D"
label-id ="Polygon per Face"
icon-id ="mesh_algo_polygon.png"
+ group-id ="2"
+ priority ="40"
opt-hypos="ViscousLayers2D"
input ="EDGE"
output ="POLYGON,QUAD,TRIA"
<algorithm type ="Hexa_3D"
label-id ="Hexahedron (i,j,k)"
icon-id ="mesh_algo_hexa.png"
+ group-id ="0"
+ priority ="10"
input ="QUAD"
output ="HEXA,PENTA"
need-geom="false"
<algorithm type ="Projection_1D"
label-id="Projection 1D"
icon-id ="mesh_algo_regular.png"
+ group-id="1"
+ priority="10"
hypos ="ProjectionSource1D"
output ="EDGE"
need-hyp="true"
<algorithm type ="Projection_2D"
label-id="Projection 2D"
icon-id ="mesh_algo_quad.png"
+ group-id="2"
+ priority="30"
input ="EDGE"
hypos ="ProjectionSource2D"
output ="QUAD,TRIA"
<algorithm type ="Projection_1D2D"
label-id="Projection 1D-2D"
icon-id ="mesh_algo_quad.png"
+ group-id="2"
+ priority="20"
hypos ="ProjectionSource2D"
output ="QUAD,TRIA"
need-hyp="true"
<algorithm type ="Projection_3D"
label-id="Projection 3D"
icon-id ="mesh_algo_hexa.png"
+ group-id="2"
+ priority="20"
hypos ="ProjectionSource3D"
input ="QUAD,TRIA"
need-hyp="true"
<algorithm type ="Import_1D"
label-id="Import 1D Elements from Another Mesh"
icon-id ="mesh_algo_regular.png"
+ group-id="1"
+ priority="20"
hypos ="ImportSource1D"
output ="EDGE"
need-hyp="true"
<algorithm type ="Import_1D2D"
label-id ="Import 1D-2D Elements from Another Mesh"
icon-id ="mesh_algo_quad.png"
+ group-id ="2"
+ priority ="50"
hypos ="ImportSource2D"
output ="QUAD,TRIA"
support-submeshes="false"
</algorithm>
<algorithm type ="Prism_3D"
- label-id="3D Extrusion"
+ label-id="Extrusion 3D"
icon-id ="mesh_algo_hexa.png"
+ group-id="2"
+ priority="10"
input ="QUAD,TRIA"
output ="HEXA,PENTA,OCTA,POLYHEDRON"
dim ="3">
</algorithm>
<algorithm type ="RadialPrism_3D"
- label-id="Radial Prism 3D"
+ label-id="Radial Prism"
icon-id ="mesh_algo_hexa.png"
+ group-id="2"
+ priority="30"
hypos ="NumberOfLayers, LayerDistribution"
input ="QUAD,TRIA"
output ="HEXA,PENTA,OCTA,POLYHEDRON"
<algorithm type ="UseExisting_1D"
label-id="Use Edges to be Created Manually"
icon-id ="mesh_algo_regular.png"
+ group-id="1"
+ priority="30"
input ="VERTEX"
output ="EDGE"
dim ="1">
<algorithm type ="UseExisting_2D"
label-id="Use Faces to be Created Manually"
icon-id ="mesh_algo_quad.png"
+ group-id="2"
+ priority="60"
input ="EDGE"
output ="QUAD,TRIA"
dim ="2">
</algorithm>
<algorithm type ="RadialQuadrangle_1D2D"
- label-id="Radial Quadrangle 1D2D"
+ label-id="Radial Quadrangle 1D-2D"
icon-id ="mesh_algo_quad.png"
+ group-id="2"
+ priority="10"
hypos ="NumberOfLayers2D, LayerDistribution2D"
input ="EDGE"
output ="QUAD"
<algorithm type ="Cartesian_3D"
label-id ="Body Fitting"
icon-id ="mesh_algo_hexa.png"
+ group-id ="0"
+ priority ="20"
hypos ="CartesianParameters3D"
support-submeshes="false"
output ="HEXA"
points->Delete();
myGrid->BuildLinks();
this->Modified();
+
+ // initialize static maps in SMDS_MeshCell, to be thread-safe
+ if ( myMeshId == 0 )
+ {
+ SMDS_MeshCell::toVtkType( SMDSEntity_Node );
+ SMDS_MeshCell::toVtkOrder( SMDSEntity_Node );
+ SMDS_MeshCell::reverseSmdsOrder( SMDSEntity_Node );
+ SMDS_MeshCell::interlacedSmdsOrder( SMDSEntity_Node );
+ SMDS_MeshCell::toSmdsType( VTK_VERTEX );
+ SMDS_MeshCell::fromVtkOrder( SMDSEntity_Node );
+ }
}
///////////////////////////////////////////////////////////////////////////////
virtual ~SMDS_MeshCell();
virtual bool ChangeNodes(const SMDS_MeshNode* nodes[], const int nbNodes)= 0;
- virtual bool vtkOrder(const SMDS_MeshNode* nodes[], const int nbNodes) {return true; }
+ virtual bool vtkOrder(const SMDS_MeshNode* nodes[], const int nbNodes) { return true; }
static VTKCellType toVtkType (SMDSAbs_EntityType vtkType);
static SMDSAbs_EntityType toSmdsType(VTKCellType vtkType);
if ( ShapeIndex > 0 )
return myIndexToShape.FindKey(ShapeIndex);
}
- catch ( Standard_OutOfRange )
+ catch ( ... )
{
}
static TopoDS_Shape nullShape;
setPreferenceProperty( lim, "special", tr( "PREF_UPDATE_LIMIT_NOLIMIT" ) );
addPreference( tr( "PREF_INCREMENTAL_LIMIT" ), autoUpdate, LightApp_Preferences::Bool, "SMESH", "incremental_limit" );
- int qaGroup = addPreference( tr( "PREF_GROUP_QUALITY" ), genTab );
- setPreferenceProperty( qaGroup, "columns", 2 );
- addPreference( tr( "PREF_DISPLAY_ENTITY" ), qaGroup, LightApp_Preferences::Bool, "SMESH", "display_entity" );
- addPreference( tr( "PREF_PRECISION_USE" ), qaGroup, LightApp_Preferences::Bool, "SMESH", "use_precision" );
- int prec = addPreference( tr( "PREF_PRECISION_VALUE" ), qaGroup, LightApp_Preferences::IntSpin, "SMESH", "controls_precision" );
- setPreferenceProperty( prec, "min", 0 );
- setPreferenceProperty( prec, "max", 100 );
- int doubleNodesTol = addPreference( tr( "PREF_EQUAL_NODES_TOL" ), qaGroup, LightApp_Preferences::DblSpin, "SMESH", "equal_nodes_tolerance" );
- setPreferenceProperty( doubleNodesTol, "precision", 10 );
- setPreferenceProperty( doubleNodesTol, "min", 0.0000000001 );
- setPreferenceProperty( doubleNodesTol, "max", 1000000.0 );
- setPreferenceProperty( doubleNodesTol, "step", 0.0000001 );
-
int dispgroup = addPreference( tr( "PREF_DISPLAY_MODE_GROUP" ), genTab );
setPreferenceProperty( dispgroup, "columns", 2 );
int dispmode = addPreference( tr( "PREF_DISPLAY_MODE" ), dispgroup, LightApp_Preferences::Selector, "SMESH", "display_mode" );
setPreferenceProperty( maxAngle, "min", 1 );
setPreferenceProperty( maxAngle, "max", 90 );
+ int qaGroup = addPreference( tr( "PREF_GROUP_QUALITY" ), genTab );
+ setPreferenceProperty( qaGroup, "columns", 2 );
+ addPreference( tr( "PREF_DISPLAY_ENTITY" ), qaGroup, LightApp_Preferences::Bool, "SMESH", "display_entity" );
+ addPreference( tr( "PREF_PRECISION_USE" ), qaGroup, LightApp_Preferences::Bool, "SMESH", "use_precision" );
+ int prec = addPreference( tr( "PREF_PRECISION_VALUE" ), qaGroup, LightApp_Preferences::IntSpin, "SMESH", "controls_precision" );
+ setPreferenceProperty( prec, "min", 0 );
+ setPreferenceProperty( prec, "max", 100 );
+ int doubleNodesTol = addPreference( tr( "PREF_EQUAL_NODES_TOL" ), qaGroup, LightApp_Preferences::DblSpin, "SMESH", "equal_nodes_tolerance" );
+ setPreferenceProperty( doubleNodesTol, "precision", 10 );
+ setPreferenceProperty( doubleNodesTol, "min", 0.0000000001 );
+ setPreferenceProperty( doubleNodesTol, "max", 1000000.0 );
+ setPreferenceProperty( doubleNodesTol, "step", 0.0000001 );
int exportgroup = addPreference( tr( "PREF_GROUP_EXPORT" ), genTab );
const QString& theLabel,
const QString& theIconId,
const QString& theContext,
+ const int theGroupID,
+ const int thePriority,
const QList<int>& theDim,
const bool theIsAuxOrNeedHyp,
const QStringList& theBasicHypos,
Label( theLabel ),
IconId( theIconId ),
Context( theContext ),
+ GroupID( theGroupID ),
+ Priority( thePriority ),
Dim( theDim ),
IsAuxOrNeedHyp( theIsAuxOrNeedHyp ),
IsNeedGeometry( theIsNeedGeometry ),
{
HypothesisData( const QString&, const QString&, const QString&,
const QString&, const QString&, const QString&,
- const QString&, const QList<int>&, const bool,
+ const QString&, const int, const int,
+ const QList<int>&, const bool,
const QStringList&, const QStringList&,
const QStringList&, const QStringList&,
const bool=true, const bool supportSub=false );
QString Label; //!< label
QString IconId; //!< icon identifier
QString Context; //!< ["GLOBAL","LOCAL","ANY"(default)]
+ int GroupID; //!< group ID (staring from zero)
+ int Priority; //!< integer, priority within the group
QList<int> Dim; //!< list of supported dimensions (see SMESH::Dimension enumeration)
- bool IsAuxOrNeedHyp; //!< TRUE if given hypothesis is auxiliary one, FALSE otherwise
- //!< TRUE if given algorithm can't work w/o hypotheses
+ bool IsAuxOrNeedHyp; //!< TRUE if given HYPOTHESIS is auxiliary one, FALSE otherwise
+ //!< TRUE if given ALGORITHM can't work w/o hypotheses
bool IsNeedGeometry; //!< TRUE if the algorithm works with shapes only, FALSE otherwise
- bool IsSupportSubmeshes; //!< TRUE if the algo building all-dim elems supports submeshes
+ bool IsSupportSubmeshes; //!< TRUE if the algorithm building all-dim elems supports sub-meshes
// for algorithm only: dependencies algo <-> algo and algo -> hypos
QStringList BasicHypos; //!< list of basic hypotheses
#include <string>
// Qt includes
-#include <QMap>
#include <QDir>
-//#include <QList>
// Other includes
void InitAvailableHypotheses()
{
SUIT_OverrideCursor wc;
- if (myHypothesesMap.empty() && myAlgorithmsMap.empty()) {
+ if ( myHypothesesMap.empty() && myAlgorithmsMap.empty() )
+ {
// Resource manager
SUIT_ResourceMgr* resMgr = SMESHGUI::resourceMgr();
if (!resMgr) return;
return aHypData;
}
+ //================================================================================
+ /*!
+ * \brief Return the HypothesisData holding a name of a group of hypotheses
+ * a given hypothesis belongs to
+ */
+ //================================================================================
+
+ HypothesisData* GetGroupTitle( const HypothesisData* hyp, const bool isAlgo )
+ {
+ static std::vector< std::vector< HypothesisData > > theGroups;
+ if ( theGroups.empty() )
+ {
+ theGroups.resize(14); // 14: isAlgo * 10 + dim
+
+ QString dummyS("GROUP");
+ QList<int> dummyIL; dummyIL << 1;
+ QStringList dummySL;
+ HypothesisData group( dummyS,dummyS,dummyS,dummyS,dummyS,dummyS,dummyS,-1,-1,
+ dummyIL, 0, dummySL,dummySL,dummySL,dummySL );
+ // no group
+ int key = 0;
+ theGroups[ key ].push_back( group );
+
+ // 1D algo
+ key = 11;
+ // 0: Basic
+ group.Label = "GROUP:" + QObject::tr( "SMESH_1D_ALGO_GROUP_BASIC" );
+ theGroups[ key ].push_back( group );
+ // 1: Advanced
+ group.Label = "GROUP:" + QObject::tr( "SMESH_1D_ALGO_GROUP_ADVANCED" );
+ theGroups[ key ].push_back( group );
+
+ // 1D hypotheses
+ key = 01;
+ // 0: Basic
+ group.Label = "GROUP:" + QObject::tr( "SMESH_1D_HYP_GROUP_BASIC" );
+ theGroups[ key ].push_back( group );
+ // 1: Progression
+ group.Label = "GROUP:" + QObject::tr( "SMESH_1D_HYP_GROUP_PROGRESSION" );
+ theGroups[ key ].push_back( group );
+ // 2: Advanced
+ group.Label = "GROUP:" + QObject::tr( "SMESH_1D_HYP_GROUP_ADVANCED" );
+ theGroups[ key ].push_back( group );
+
+ // 2D algo
+ key = 12;
+ // 0: Regular
+ group.Label = "GROUP:" + QObject::tr( "SMESH_2D_ALGO_GROUP_REGULAR" );
+ theGroups[ key ].push_back( group );
+ // 1: Free
+ group.Label = "GROUP:" + QObject::tr( "SMESH_2D_ALGO_GROUP_FREE" );
+ theGroups[ key ].push_back( group );
+ // 2: Advanced
+ group.Label = "GROUP:" + QObject::tr( "SMESH_2D_ALGO_GROUP_ADVANCED" );
+ theGroups[ key ].push_back( group );
+
+ // 3D algo
+ key = 13;
+ // 0: Regular
+ group.Label = "GROUP:" + QObject::tr( "SMESH_3D_ALGO_GROUP_REGULAR" );
+ theGroups[ key ].push_back( group );
+ // 1: Free
+ group.Label = "GROUP:" + QObject::tr( "SMESH_3D_ALGO_GROUP_FREE" );
+ theGroups[ key ].push_back( group );
+ // 2: Advanced
+ group.Label = "GROUP:" + QObject::tr( "SMESH_3D_ALGO_GROUP_ADVANCED" );
+ theGroups[ key ].push_back( group );
+ }
+
+ size_t key = 0, groupID = 0;
+ if ( hyp && !hyp->Dim.isEmpty() )
+ {
+ key = hyp->Dim[0] + isAlgo * 10;
+ groupID = hyp->GroupID;
+ }
+
+ if ( key < theGroups.size() && !theGroups[ key ].empty() )
+ {
+ std::vector< HypothesisData > & group = theGroups[ key ];
+ return & ( groupID < group.size() ? group[ groupID ] : group.back() );
+ }
+ return & theGroups[ 0 ][ 0 ];
+ }
+
bool IsAvailableHypothesis(const HypothesisData* algoData,
const QString& hypType,
bool& isAuxiliary)
SMESHGUI_EXPORT
HypothesisData* GetHypothesisData( const QString& );
+ SMESHGUI_EXPORT
+ HypothesisData* GetGroupTitle( const HypothesisData* hyp, const bool isAlgo );
+
SMESHGUI_EXPORT
bool IsAvailableHypothesis( const HypothesisData*,
const QString&,
// SALOME GUI includes
#include <SUIT_Session.h>
#include <SUIT_ResourceMgr.h>
+#include <QtxMenu.h>
// Qt includes
#include <QComboBox>
* \param [in] txt - item text
* \param [in] type - HypType
* \param [in] index - index of item in a list of items
+ * \param [in] isGroup - is the item a group title
*/
//================================================================================
-void SMESHGUI_MeshTab::addItem( const QString& txt, const int type, const int index )
+void SMESHGUI_MeshTab::addItem( const QString& txt,
+ const int type,
+ const int index,
+ const bool isGroup )
{
+ const char* prefix = " ";
if ( type <= AddHyp )
{
- myHypCombo[ type ]->addItem( txt, QVariant( index ));
- myHypCombo[ type ]->setMaxVisibleItems( qMax( 10, myHypCombo[ type ]->count() ) );
+ if ( isGroup )
+ {
+ int idx = myHypCombo[ type ]->count();
+ myHypCombo[ type ]->addItem( txt.mid( 6 ), QVariant( index ));
+ myHypCombo[ type ]->setItemData( idx, "separator", Qt::AccessibleDescriptionRole );
+ }
+ else
+ {
+ myHypCombo[ type ]->addItem( prefix + txt, QVariant( index ));
+ }
+ //myHypCombo[ type ]->setMaxVisibleItems( qMax( 10, myHypCombo[ type ]->count() ) );
}
else
{
- QListWidgetItem* item = new QListWidgetItem( txt, myAddHypList );
+ QListWidgetItem* item = new QListWidgetItem( prefix + txt, myAddHypList );
item->setData( Qt::UserRole, QVariant( index ));
}
}
{
addItem( tr( "NONE"), Algo, 0 );
for ( int i = 0, nbHyp = theHyps.count(); i < nbHyp; ++i )
- addItem( theHyps[i], Algo, i+1 );
+ addItem( theHyps[i], Algo, i+1, theHyps[i].startsWith( "GROUP:" ));
myHypCombo[ Algo ]->setCurrentIndex( 0 );
}
}
{
bool isMainHyp = ( sender() == myCreateHypBtn[ MainHyp ]);
- QMenu aPopup( this );
+ QtxMenu aPopup( this );
QStringList aHypNames = isMainHyp ?
myAvailableHypTypes[ MainHyp ] : myAvailableHypTypes[ AddHyp ];
QList<QAction*> actions;
for ( int i = 0, n = aHypNames.count(); i < n; i++ )
- actions.append( aPopup.addAction( aHypNames[ i ] ) );
-
+ {
+ QAction* a = 0;
+ if ( aHypNames[ i ].startsWith( "GROUP:" ))
+ {
+ aPopup.appendGroupTitle( aHypNames[ i ].mid( 6 ));
+ }
+ else
+ {
+ a = aPopup.addAction( aHypNames[ i ] );
+ }
+ actions.append( a );
+ }
QAction* a = aPopup.exec( QCursor::pos() );
if ( a )
emit createHyp( isMainHyp ? MainHyp : AddHyp, actions.indexOf( a ) );
//================================================================================
void SMESHGUI_MeshTab::onHyp( int theIndex )
{
- const QObject* aSender = sender();
+ QObject* aSender = sender();
+
+ if ( QComboBox* cb = qobject_cast< QComboBox* >( aSender ))
+ {
+ // don't allow selecting a group title
+ if ( cb->itemData( theIndex, Qt::AccessibleDescriptionRole ) == "separator" )
+ {
+ cb->setCurrentIndex( theIndex+1 );
+ return;
+ }
+ }
+
if ( aSender == myHypCombo[ Algo ] )
{
emit selectAlgo( theIndex - 1 ); // - 1 because there is NONE on the top
private:
- void addItem( const QString& txt, const int type, const int index );
+ void addItem( const QString& txt, const int type, const int index, const bool isGroup=false );
int getCurrentIndex( const int type, const bool curByType=false) const;
QMap<int, QStringList> myAvailableHypTypes;
bool isAux = ( theHypType >= AddHyp );
QStringList aHypTypeNameList = SMESH::GetAvailableHypotheses( isAlgo, theDim, isAux, myIsOnGeometry, !myIsMesh );
- QStringList::const_iterator anIter;
GEOM::GEOM_Object_var aGeomVar;
QString aCurrentGeomToSelect;
if ( !theMeshType.isEmpty() ) {
myHypMapIsApplicable.clear();
}
+ std::multimap< double, HypothesisData* > sortedHyps;
+ QStringList::const_iterator anIter;
for ( anIter = aHypTypeNameList.begin(); anIter != aHypTypeNameList.end(); ++anIter )
{
HypothesisData* aData = SMESH::GetHypothesisData( *anIter );
if ( ( isCompatible ( thePrevAlgoData, aData, theHypType ) &&
isCompatible ( theNextAlgoData, aData, theHypType ) ) ||
- ( theMeshType == "ANY" && aData->InputTypes.isEmpty())) {
- if ( !theMeshType.isEmpty() && theDim >= SMESH::DIM_2D &&
+ ( theMeshType == "ANY" && aData->InputTypes.isEmpty()))
+ {
+ if ( ( !theMeshType.isEmpty() ) &&
+ ( theDim >= SMESH::DIM_2D ) &&
( ( theMeshType != "ANY" && !isCompatibleToMeshType( aData, theMeshType )) ||
- !isCompatibleToGeometry( aData, aCurrentGeomToSelect, aGeomVar )))
+ !isCompatibleToGeometry( aData, aCurrentGeomToSelect, aGeomVar )))
continue;
+
+ int groupID = aData->GroupID;
+ int priority = aData->Priority;
+ if ( groupID < 0 || groupID > 9 ) groupID = 9;
+ if ( priority < 0 || priority > 999 ) priority = 999;
+
+ sortedHyps.insert( std::make_pair( groupID + priority * 1e-3, aData ));
+ }
+ }
+
+ if ( !sortedHyps.empty() )
+ {
+ HypothesisData* aPrevGroup = SMESH::GetGroupTitle( sortedHyps.rbegin()->second, isAlgo );
+ std::multimap< double, HypothesisData* >::iterator key_hyp = sortedHyps.begin();
+ for ( ; key_hyp != sortedHyps.end(); ++key_hyp )
+ {
+ HypothesisData* aData = key_hyp->second;
+ HypothesisData* aGroup = SMESH::GetGroupTitle( aData, isAlgo );
+ if ( aPrevGroup != aGroup )
+ {
+ theDataList.append( aGroup );
+ theHyps.append( aGroup->Label );
+ aPrevGroup = aGroup;
+ }
theDataList.append( aData );
theHyps.append( aData->Label );
}
}
- if ( !theMeshType.isEmpty() && !aCurrentGeomToSelect.isEmpty() &&
- myLastGeomToSelect != aCurrentGeomToSelect )
+ if ( !theMeshType.isEmpty() && !aCurrentGeomToSelect.isEmpty() )
myLastGeomToSelect = aCurrentGeomToSelect;
}
else
context = context.toUpper();
+ bool isOk;
+ QString groupIDStr = atts.value("group-id");
+ int groupID = groupIDStr.toUInt( &isOk );
+ if ( !isOk ) groupID = -1;
+ QString priorityStr = atts.value("priority");
+ int priority = priorityStr.toUInt( &isOk );
+ if ( !isOk ) priority = -1;
+
QString aDimStr = atts.value("dim");
aDimStr = aDimStr.remove( ' ' );
QStringList aDimList = aDimStr.split( ',', QString::SkipEmptyParts );
QStringList::iterator anIter;
- bool isOk;
QList<int> aDim;
for ( anIter = aDimList.begin(); anIter != aDimList.end(); ++anIter )
{
if ( !aHypAlType.contains( BAD_HYP_FLAG ) ) {
HypothesisData* aHypData =
new HypothesisData (aHypAlType, myPluginName, myServerLib, myClientLib,
- aLabel, anIcon, context, aDim, isAuxOrNeedHyp,
+ aLabel, anIcon, context, groupID, priority, aDim, isAuxOrNeedHyp,
attr[ HYPOS ], attr[ OPT_HYPOS ], attr[ INPUT ], attr[ OUTPUT ],
isNeedGeom, isSupportSubmeshes );
<source>SMESH_ADVANCED</source>
<translation>Advanced</translation>
</message>
+ <message>
+ <source>SMESH_1D_ALGO_GROUP_BASIC</source>
+ <translation>Basic</translation>
+ </message>
+ <message>
+ <source>SMESH_1D_ALGO_GROUP_ADVANCED</source>
+ <translation>Advanced</translation>
+ </message>
+ <message>
+ <source>SMESH_1D_HYP_GROUP_BASIC</source>
+ <translation>Basic</translation>
+ </message>
+ <message>
+ <source>SMESH_1D_HYP_GROUP_PROGRESSION</source>
+ <translation>Progression</translation>
+ </message>
+ <message>
+ <source>SMESH_1D_HYP_GROUP_ADVANCED</source>
+ <translation>Advanced</translation>
+ </message>
+ <message>
+ <source>SMESH_2D_ALGO_GROUP_REGULAR</source>
+ <translation>Regular faces</translation>
+ </message>
+ <message>
+ <source>SMESH_2D_ALGO_GROUP_FREE</source>
+ <translation>Free faces</translation>
+ </message>
+ <message>
+ <source>SMESH_2D_ALGO_GROUP_ADVANCED</source>
+ <translation>Advanced</translation>
+ </message>
+ <message>
+ <source>SMESH_3D_ALGO_GROUP_REGULAR</source>
+ <translation>Regular volumes</translation>
+ </message>
+ <message>
+ <source>SMESH_3D_ALGO_GROUP_FREE</source>
+ <translation>Free volumes</translation>
+ </message>
+ <message>
+ <source>SMESH_3D_ALGO_GROUP_ADVANCED</source>
+ <translation>Advanced</translation>
+ </message>
</context>
<context>
<name>SMESHGUI_FieldSelectorWdg</name>
}
else if (strcmp("TrianglePreference", aHyp->GetName()) == 0){
isFirstParams = false;
- myTrianglePreference = true;
+ myTrianglePreference = true;
}
else {
isFirstParams = false;
if (isFirstParams) {
if (strcmp("QuadranglePreference", aHyp->GetName()) == 0) {
myQuadranglePreference = true;
- myTrianglePreference = false;
+ myTrianglePreference = false;
myQuadType = QUAD_STANDARD;
}
else if (strcmp("TrianglePreference", aHyp->GetName()) == 0){
myQuadranglePreference = false;
- myTrianglePreference = true;
+ myTrianglePreference = true;
myQuadType = QUAD_STANDARD;
}
}
- else {
- const StdMeshers_QuadrangleParams* aHyp2 =
- (const StdMeshers_QuadrangleParams*)aHyp;
+ else if (const StdMeshers_QuadrangleParams* aHyp2 =
+ dynamic_cast<const StdMeshers_QuadrangleParams*>( aHyp ))
+ {
myTriaVertexID = aHyp2->GetTriaVertex();
if (!myQuadranglePreference && !myTrianglePreference) { // priority of hypos
//=============================================================================
/*!
- *
+ *
*/
//=============================================================================