PR: synchro V7_main tag mergefrom_V6_main_28Feb13

This commit is contained in:
prascle 2013-03-01 16:33:22 +00:00
parent 4e093d8c63
commit 4cd2499bdd
115 changed files with 1571 additions and 1800 deletions

View File

@ -21,7 +21,7 @@
CURRENT_DIR=`pwd` CURRENT_DIR=`pwd`
CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"` CONF_DIR=`echo $0 | sed -e "s,[^/]*$,,;s,/$,,;s,^$,.,"`
cd ${CONF_DIR} cd ${CONF_DIR}
python $KERNEL_ROOT_DIR/salome_adm/cmake_files/am2cmake.py --smesh python $KERNEL_ROOT_DIR/salome_adm/cmake_files/deprecated/am2cmake.py --smesh
status=$? status=$?
cd ${CURRENT_DIR} cd ${CURRENT_DIR}
exit $status exit $status

View File

@ -17,4 +17,4 @@
@REM See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com @REM See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
@REM @REM
%PYTHONBIN% %KERNEL_ROOT_DIR%\salome_adm\cmake_files\am2cmake.py --smesh %PYTHONBIN% %KERNEL_ROOT_DIR%\salome_adm\cmake_files\deprecated\am2cmake.py --smesh

View File

@ -26,16 +26,34 @@ include $(top_srcdir)/adm_local/unix/make_common_starter.am
pyexamplesdir = $(docdir)/examples/SMESH pyexamplesdir = $(docdir)/examples/SMESH
BAD_TESTS = BAD_TESTS = \
3dmesh.py \
creating_meshes_ex01.py \
creating_meshes_ex03.py \
creating_meshes_ex05.py \
defining_hypotheses_ex06.py \
defining_hypotheses_ex09.py \
defining_hypotheses_ex17.py \
filters_ex02.py \
filters_ex08.py \
filters_ex23.py \
filters_ex24.py \
filters_ex25.py \
filters_ex32.py \
filters_ex35.py \
generate_flat_elements.py \
modifying_meshes_ex26.py \
notebook_smesh.py \
quality_controls_ex06.py \
quality_controls_ex20.py \
quality_controls_ex21.py \
quality_controls_ex22.py \
viewing_meshes_ex01.py
GOOD_TESTS = \ GOOD_TESTS = \
3dmesh.py \
cartesian_algo.py \ cartesian_algo.py \
creating_meshes_ex01.py \
creating_meshes_ex02.py \ creating_meshes_ex02.py \
creating_meshes_ex03.py \
creating_meshes_ex04.py \ creating_meshes_ex04.py \
creating_meshes_ex05.py \
creating_meshes_ex06.py \ creating_meshes_ex06.py \
creating_meshes_ex07.py \ creating_meshes_ex07.py \
creating_meshes_ex08.py \ creating_meshes_ex08.py \
@ -44,10 +62,8 @@ GOOD_TESTS = \
defining_hypotheses_ex03.py \ defining_hypotheses_ex03.py \
defining_hypotheses_ex04.py \ defining_hypotheses_ex04.py \
defining_hypotheses_ex05.py \ defining_hypotheses_ex05.py \
defining_hypotheses_ex06.py \
defining_hypotheses_ex07.py \ defining_hypotheses_ex07.py \
defining_hypotheses_ex08.py \ defining_hypotheses_ex08.py \
defining_hypotheses_ex09.py \
defining_hypotheses_ex10.py \ defining_hypotheses_ex10.py \
defining_hypotheses_ex11.py \ defining_hypotheses_ex11.py \
defining_hypotheses_ex12.py \ defining_hypotheses_ex12.py \
@ -55,15 +71,12 @@ GOOD_TESTS = \
defining_hypotheses_ex14.py \ defining_hypotheses_ex14.py \
defining_hypotheses_ex15.py \ defining_hypotheses_ex15.py \
defining_hypotheses_ex16.py \ defining_hypotheses_ex16.py \
defining_hypotheses_ex17.py \
filters_ex01.py \ filters_ex01.py \
filters_ex02.py \
filters_ex03.py \ filters_ex03.py \
filters_ex04.py \ filters_ex04.py \
filters_ex05.py \ filters_ex05.py \
filters_ex06.py \ filters_ex06.py \
filters_ex07.py \ filters_ex07.py \
filters_ex08.py \
filters_ex09.py \ filters_ex09.py \
filters_ex10.py \ filters_ex10.py \
filters_ex11.py \ filters_ex11.py \
@ -78,21 +91,15 @@ GOOD_TESTS = \
filters_ex20.py \ filters_ex20.py \
filters_ex21.py \ filters_ex21.py \
filters_ex22.py \ filters_ex22.py \
filters_ex23.py \
filters_ex24.py \
filters_ex25.py \
filters_ex26.py \ filters_ex26.py \
filters_ex27.py \ filters_ex27.py \
filters_ex28.py \ filters_ex28.py \
filters_ex29.py \ filters_ex29.py \
filters_ex30.py \ filters_ex30.py \
filters_ex31.py \ filters_ex31.py \
filters_ex32.py \
filters_ex33.py \ filters_ex33.py \
filters_ex34.py \ filters_ex34.py \
filters_ex35.py \
filters_ex36.py \ filters_ex36.py \
generate_flat_elements.py \
grouping_elements_ex01.py \ grouping_elements_ex01.py \
grouping_elements_ex02.py \ grouping_elements_ex02.py \
grouping_elements_ex03.py \ grouping_elements_ex03.py \
@ -128,15 +135,12 @@ GOOD_TESTS = \
modifying_meshes_ex23.py \ modifying_meshes_ex23.py \
modifying_meshes_ex24.py \ modifying_meshes_ex24.py \
modifying_meshes_ex25.py \ modifying_meshes_ex25.py \
modifying_meshes_ex26.py \
notebook_smesh.py \
prism_3d_algo.py \ prism_3d_algo.py \
quality_controls_ex01.py \ quality_controls_ex01.py \
quality_controls_ex02.py \ quality_controls_ex02.py \
quality_controls_ex03.py \ quality_controls_ex03.py \
quality_controls_ex04.py \ quality_controls_ex04.py \
quality_controls_ex05.py \ quality_controls_ex05.py \
quality_controls_ex06.py \
quality_controls_ex07.py \ quality_controls_ex07.py \
quality_controls_ex08.py \ quality_controls_ex08.py \
quality_controls_ex09.py \ quality_controls_ex09.py \
@ -150,9 +154,6 @@ GOOD_TESTS = \
quality_controls_ex17.py \ quality_controls_ex17.py \
quality_controls_ex18.py \ quality_controls_ex18.py \
quality_controls_ex19.py \ quality_controls_ex19.py \
quality_controls_ex20.py \
quality_controls_ex21.py \
quality_controls_ex22.py \
transforming_meshes_ex01.py \ transforming_meshes_ex01.py \
transforming_meshes_ex02.py \ transforming_meshes_ex02.py \
transforming_meshes_ex03.py \ transforming_meshes_ex03.py \
@ -167,14 +168,13 @@ GOOD_TESTS = \
transforming_meshes_ex12.py \ transforming_meshes_ex12.py \
transforming_meshes_ex13.py \ transforming_meshes_ex13.py \
use_existing_faces.py \ use_existing_faces.py \
viewing_meshes_ex01.py \
viewing_meshes_ex02.py viewing_meshes_ex02.py
pyexamples_SCRIPTS = $(BAD_TESTS) $(GOOD_TESTS) pyexamples_SCRIPTS = $(BAD_TESTS) $(GOOD_TESTS)
EXTRA_DIST += $(pyexamples_SCRIPTS) testme.py EXTRA_DIST += $(pyexamples_SCRIPTS) testme.py
check-local: installcheck-local:
@for f in $(GOOD_TESTS) ; do \ @for f in $(GOOD_TESTS) ; do \
python $(top_srcdir)/doc/salome/examples/testme.py $(top_srcdir)/doc/salome/examples/$$f || exit 1; \ env SMESH_ROOT_DIR=$(prefix) python -B $(top_srcdir)/doc/salome/examples/testme.py $(top_srcdir)/doc/salome/examples/$$f || exit 1; \
done done

View File

@ -3,7 +3,7 @@
# create mesh # create mesh
from SMESH_mechanic import * from SMESH_mechanic import *
# remove some faces to have faces with bare borders # remove some faces to have faces with bare borders
mesh.RemoveElements( mesh.GetElementsByType(FACE)[0:5] ) mesh.RemoveElements( mesh.GetElementsByType(smesh.FACE)[0:5] )
# get all faces bare borders # get all faces bare borders
filter = smesh.GetFilter(smesh.FACE, smesh.FT_BareBorderFace) filter = smesh.GetFilter(smesh.FACE, smesh.FT_BareBorderFace)
ids = mesh.GetIdsFromFilter(filter) ids = mesh.GetIdsFromFilter(filter)

View File

@ -2,7 +2,7 @@
# create mesh # create mesh
from SMESH_mechanic import * from SMESH_mechanic import *
faceID = mesh.GetElementsByType(FACE)[0] faceID = mesh.GetElementsByType(smesh.FACE)[0]
# get all faces co-planar to the first face with tolerance 5 degrees # get all faces co-planar to the first face with tolerance 5 degrees
filter = smesh.GetFilter(smesh.FACE, smesh.FT_CoplanarFaces,faceID,Tolerance=5.0) filter = smesh.GetFilter(smesh.FACE, smesh.FT_CoplanarFaces,faceID,Tolerance=5.0)
ids = mesh.GetIdsFromFilter(filter) ids = mesh.GetIdsFromFilter(filter)

View File

@ -3,9 +3,9 @@
# create mesh # create mesh
from SMESH_mechanic import * from SMESH_mechanic import *
# get nodes with identifiers [5-10] and [15-30] # get nodes with identifiers [5-10] and [15-30]
criterion1 = smesh.GetCriterion(smesh.NODE, smesh.FT_RangeOfIds, Treshold="5-10",\ criterion1 = smesh.GetCriterion(smesh.NODE, smesh.FT_RangeOfIds, Threshold="5-10",\
BinaryOp=smesh.FT_LogicalOR) BinaryOp=smesh.FT_LogicalOR)
criterion2 = smesh.GetCriterion(smesh.NODE, smesh.FT_RangeOfIds, Treshold="15-30") criterion2 = smesh.GetCriterion(smesh.NODE, smesh.FT_RangeOfIds, Threshold="15-30")
filter = smesh.CreateFilterManager().CreateFilter() filter = smesh.CreateFilterManager().CreateFilter()
filter.SetCriteria([criterion1,criterion2]) filter.SetCriteria([criterion1,criterion2])
ids = mesh.GetIdsFromFilter(filter) ids = mesh.GetIdsFromFilter(filter)

View File

@ -1,6 +1,7 @@
# Add Polyhedron # Add Polyhedron
import salome import salome
import smesh
import math import math
# create an empty mesh structure # create an empty mesh structure
@ -39,18 +40,18 @@ for i in range(5):
pass pass
# Create a polyhedral volume (12-hedron with pentagonal faces) # Create a polyhedral volume (12-hedron with pentagonal faces)
MeshEditor.AddPolyhedralVolume([dd[0], dd[1], dd[2], dd[3], dd[4], # top mesh.GetMeshEditor().AddPolyhedralVolume([dd[0], dd[1], dd[2], dd[3], dd[4], # top
dd[0], cc[0], bb[1], cc[1], dd[1], # - dd[0], cc[0], bb[1], cc[1], dd[1], # -
dd[1], cc[1], bb[2], cc[2], dd[2], # - dd[1], cc[1], bb[2], cc[2], dd[2], # -
dd[2], cc[2], bb[3], cc[3], dd[3], # - below top dd[2], cc[2], bb[3], cc[3], dd[3], # - below top
dd[3], cc[3], bb[4], cc[4], dd[4], # - dd[3], cc[3], bb[4], cc[4], dd[4], # -
dd[4], cc[4], bb[0], cc[0], dd[0], # - dd[4], cc[4], bb[0], cc[0], dd[0], # -
aa[4], bb[4], cc[4], bb[0], aa[0], # . aa[4], bb[4], cc[4], bb[0], aa[0], # .
aa[3], bb[3], cc[3], bb[4], aa[4], # . aa[3], bb[3], cc[3], bb[4], aa[4], # .
aa[2], bb[2], cc[2], bb[3], aa[3], # . above bottom aa[2], bb[2], cc[2], bb[3], aa[3], # . above bottom
aa[1], bb[1], cc[1], bb[2], aa[2], # . aa[1], bb[1], cc[1], bb[2], aa[2], # .
aa[0], bb[0], cc[0], bb[1], aa[1], # . aa[0], bb[0], cc[0], bb[1], aa[1], # .
aa[0], aa[1], aa[2], aa[3], aa[4]], # bottom aa[0], aa[1], aa[2], aa[3], aa[4]], # bottom
[5,5,5,5,5,5,5,5,5,5,5,5]) [5,5,5,5,5,5,5,5,5,5,5,5])
salome.sg.updateObjBrowser(1) salome.sg.updateObjBrowser(1)

View File

@ -35,7 +35,7 @@ for i in range(len(anIds)):
print "" print ""
# create a group # create a group
aGroup = mesh.CreateGroup(SMESH.EDGE, "Free borders") aGroup = mesh.GetMesh().CreateGroup(smesh.EDGE, "Free borders")
aGroup.Add(anIds) aGroup.Add(anIds)
salome.sg.updateObjBrowser(1) salome.sg.updateObjBrowser(1)

View File

@ -38,7 +38,7 @@ for i in range(len(anIds)):
print "" print ""
# create a group # create a group
aGroup = mesh.CreateGroup(SMESH.EDGE, "Borders at multi-connections") aGroup = mesh.GetMesh().CreateGroup(smesh.EDGE, "Borders at multi-connections")
aGroup.Add(anIds) aGroup.Add(anIds)
salome.sg.updateObjBrowser(1) salome.sg.updateObjBrowser(1)

View File

@ -37,7 +37,7 @@ for i in range(len(anIds)):
print "" print ""
# create a group # create a group
aGroup = mesh.CreateGroup(SMESH.EDGE, "Edges with length > " + `length_margin`) aGroup = mesh.GetMesh().CreateGroup(smesh.EDGE, "Edges with length > " + `length_margin`)
aGroup.Add(anIds) aGroup.Add(anIds)
salome.sg.updateObjBrowser(1) salome.sg.updateObjBrowser(1)

View File

@ -1,6 +1,6 @@
#!/usr/bin/env python #!/usr/bin/env python
import unittest, sys import unittest, sys, os
class SalomeSession(object): class SalomeSession(object):
def __init__(self, script): def __init__(self, script):
@ -10,11 +10,10 @@ class SalomeSession(object):
sys.argv += ["--modules=GEOM,MED,SMESH"] sys.argv += ["--modules=GEOM,MED,SMESH"]
sys.argv += ["--execute=%s" % script] sys.argv += ["--execute=%s" % script]
clt, d = runSalome.main() clt, d = runSalome.main()
self.port = d['port']
return return
def __del__(self): def __del__(self):
port = self.port port = os.getenv('NSPORT')
import killSalomeWithPort import killSalomeWithPort
killSalomeWithPort.killMyPort(port) killSalomeWithPort.killMyPort(port)
return return

View File

@ -8,6 +8,6 @@ smesh = SMESH_mechanic.smesh
mesh = SMESH_mechanic.mesh mesh = SMESH_mechanic.mesh
# create a symmetrical copy of the mesh mirrored through a point # create a symmetrical copy of the mesh mirrored through a point
axis = SMESH.AxisStruct(0, 0, 0, 0, 0, 0) axis = smesh.AxisStruct(0, 0, 0, 0, 0, 0)
mesh.Mirror([], axis, smesh.POINT, 1) mesh.Mirror([], axis, smesh.POINT, 1)

View File

@ -1,10 +1,18 @@
# Duplicate nodes # Duplicate nodes
import salome import salome
import geompy
import smesh import smesh
import SMESH_test1
mesh = SMESH_test1.mesh # Create a box
box = geompy.MakeBox(0., 0., 0., 100., 200., 300.)
# Define hexa mesh on a box
mesh = smesh.Mesh(box, "Mesh")
mesh.Segment().NumberOfSegments(7)
mesh.Quadrangle()
mesh.Hexahedron()
# Compute mesh # Compute mesh
mesh.Compute() mesh.Compute()
@ -13,53 +21,53 @@ mesh.Compute()
# Nodes to duplicate # Nodes to duplicate
nodes1 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes1' ) nodes1 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes1' )
nodes1.Add( [ 289, 278, 302, 285 ] ) nodes1.Add( [ 119, 125, 131, 137 ] )
# Group of faces to replace nodes with new ones # Group of faces to replace nodes with new ones
faces1 = mesh.CreateEmptyGroup( smesh.FACE, 'faces1' ) faces1 = mesh.CreateEmptyGroup( smesh.FACE, 'faces1' )
faces1.Add( [ 519, 556, 557 ] ) faces1.Add( [ 144, 151, 158 ] )
# Duplicate nodes # Duplicate nodes
print "\nMesh before the first nodes duplication:" print "\nMesh before the first nodes duplication:"
print "Nodes : ", mesh.NbNodes() print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges() print "Edges : ", mesh.NbEdges()
print "Triangles : ", mesh.NbTriangles() print "Quadrangles : ", mesh.NbQuadrangles()
groupOfCreatedNodes = mesh.DoubleNodeGroup(nodes1, faces1, theMakeGroup=True) groupOfCreatedNodes = mesh.DoubleNodeGroup(nodes1, faces1, theMakeGroup=True)
print "New nodes:", groupOfCreatedNodes.GetIDs() print "New nodes:", groupOfCreatedNodes.GetIDs()
print "\nMesh after the first nodes duplication:" print "\nMesh after the first nodes duplication:"
print "Nodes : ", mesh.NbNodes() print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges() print "Edges : ", mesh.NbEdges()
print "Triangles : ", mesh.NbTriangles() print "Quadrangles : ", mesh.NbQuadrangles()
# With the duplication of border elements # With the duplication of border elements
# Edges to duplicate # Edges to duplicate
edges = mesh.CreateEmptyGroup( smesh.EDGE, 'edges' ) edges = mesh.CreateEmptyGroup( smesh.EDGE, 'edges' )
edges.Add( [ 29, 30, 31 ] ) edges.Add( [ 32, 33, 34 ] )
# Nodes not to duplicate # Nodes not to duplicate
nodes2 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes2' ) nodes2 = mesh.CreateEmptyGroup( smesh.NODE, 'nodes2' )
nodes2.Add( [ 32, 5 ] ) nodes2.Add( [ 35, 38 ] )
# Group of faces to replace nodes with new ones # Group of faces to replace nodes with new ones
faces2 = mesh.CreateEmptyGroup( smesh.FACE, 'faces2' ) faces2 = mesh.CreateEmptyGroup( smesh.FACE, 'faces2' )
faces2.Add( [ 576, 578, 580 ] ) faces2.Add( [ 141, 148, 155 ] )
# Duplicate nodes # Duplicate nodes
print "\nMesh before the second nodes duplication:" print "\nMesh before the second nodes duplication:"
print "Nodes : ", mesh.NbNodes() print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges() print "Edges : ", mesh.NbEdges()
print "Triangles : ", mesh.NbTriangles() print "Quadrangles : ", mesh.NbQuadrangles()
groupOfNewEdges = mesh.DoubleNodeElemGroup( edges, nodes2, faces2, theMakeGroup=True ) groupOfNewEdges = mesh.DoubleNodeElemGroup( edges, nodes2, faces2, theMakeGroup=True )
print "New edges:", groupOfNewEdges.GetIDs() print "New edges:", groupOfNewEdges.GetIDs()
print "\nMesh after the second nodes duplication:" print "\nMesh after the second nodes duplication:"
print "Nodes : ", mesh.NbNodes() print "Nodes : ", mesh.NbNodes()
print "Edges : ", mesh.NbEdges() print "Edges : ", mesh.NbEdges()
print "Triangles : ", mesh.NbTriangles() print "Quadrangles : ", mesh.NbQuadrangles()
# Update object browser # Update object browser
if salome.sg.hasDesktop(): if salome.sg.hasDesktop():

View File

@ -8,7 +8,7 @@ import SMESH
box = geompy.MakeBoxDXDYDZ(100,100,100) box = geompy.MakeBoxDXDYDZ(100,100,100)
# Create a mesh # Create a mesh
mesh = Mesh(box,"Mesh") mesh = smesh.Mesh(box,"Mesh")
mesh.AutomaticHexahedralization() mesh.AutomaticHexahedralization()
mesh.Compute() mesh.Compute()

View File

@ -42,7 +42,7 @@ INPUT = @srcdir@/input @top_srcdir@/src/Tools/padder/doc/input
FILE_PATTERNS = *.doc FILE_PATTERNS = *.doc
EXCLUDE = EXCLUDE =
IMAGE_PATH = @srcdir@/images @top_srcdir@/src/Tools/padder/doc/images IMAGE_PATH = @srcdir@/images @top_srcdir@/src/Tools/padder/doc/images
EXAMPLE_PATH = @top_srcdir@/src/SMESH_SWIG @top_srcdir@/doc/salome/examples EXAMPLE_PATH = @top_srcdir@/doc/salome/examples @top_srcdir@/src/SMESH_SWIG
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
#HTML related options #HTML related options
@ -80,3 +80,8 @@ GENERATE_RTF = NO
TAGFILES = smeshpy_doc.tag=../SMESH/smeshpy_doc #rnv: 07.04.2011 Workaround for the doxygen 1.7.3: TAGFILES = smeshpy_doc.tag=../SMESH/smeshpy_doc #rnv: 07.04.2011 Workaround for the doxygen 1.7.3:
#because it wrongly defines location of the html files for search. #because it wrongly defines location of the html files for search.
SEARCHENGINE = YES SEARCHENGINE = YES
#---------------------------------------------------------------------------
#Custom commands
#---------------------------------------------------------------------------
ALIASES += tui_script{1}="\include \1 <a href=\"../../examples/SMESH/\1\">Download this script</a>"

View File

@ -36,8 +36,7 @@ An example below demonstrates usage of the Python API for 3d mesh generation.
\anchor example_3d_mesh \anchor example_3d_mesh
<h2>Example of 3d mesh generation:</h2> <h2>Example of 3d mesh generation:</h2>
\include 3dmesh.py \tui_script{3dmesh.py}
<a href="../../examples/SMESH/3dmesh.py">Download this script</a>
Examples of Python scripts for Mesh operations are available by Examples of Python scripts for Mesh operations are available by
the following links: the following links:

View File

@ -1,7 +1,6 @@
/*! /*!
\page tui_cartesian_algo Usage of Body Fitting algorithm \page tui_cartesian_algo Usage of Body Fitting algorithm
\include cartesian_algo.py \tui_script{cartesian_algo.py}
<a href="../../examples/SMESH/cartesian_algo.py">Download this script</a>
*/ */

View File

@ -7,52 +7,44 @@
<br> <br>
<h2>Construction of a Mesh</h2> <h2>Construction of a Mesh</h2>
\include creating_meshes_ex01.py \tui_script{creating_meshes_ex01.py}
<a href="../../examples/SMESH/creating_meshes_ex01.py">Download this script</a>
<br> <br>
\anchor tui_construction_submesh \anchor tui_construction_submesh
<h2>Construction of a Submesh</h2> <h2>Construction of a Submesh</h2>
\include creating_meshes_ex02.py \tui_script{creating_meshes_ex02.py}
<a href="../../examples/SMESH/creating_meshes_ex02.py">Download this script</a>
<br> <br>
<h2>Change priority of submeshes in Mesh</h2> <h2>Change priority of submeshes in Mesh</h2>
\include creating_meshes_ex03.py \tui_script{creating_meshes_ex03.py}
<a href="../../examples/SMESH/creating_meshes_ex03.py">Download this script</a>
<br> <br>
\anchor tui_editing_mesh \anchor tui_editing_mesh
<h2>Editing of a mesh</h2> <h2>Editing of a mesh</h2>
\include creating_meshes_ex04.py \tui_script{creating_meshes_ex04.py}
<a href="../../examples/SMESH/creating_meshes_ex04.py">Download this script</a>
<br> <br>
\anchor tui_export_mesh \anchor tui_export_mesh
<h2>Export of a Mesh</h2> <h2>Export of a Mesh</h2>
\include creating_meshes_ex05.py \tui_script{creating_meshes_ex05.py}
<a href="../../examples/SMESH/creating_meshes_ex05.py">Download this script</a>
<br> <br>
<h2>How to mesh a cylinder with hexahedrons?</h2> <h2>How to mesh a cylinder with hexahedrons?</h2>
Here you can see an example of python script, creating a hexahedral Here you can see an example of python script, creating a hexahedral
mesh on a cylinder. And a picture below the source code of the script, mesh on a cylinder. And a picture below the source code of the script,
demonstrating the resulting mesh. demonstrating the resulting mesh.
\include creating_meshes_ex06.py \tui_script{creating_meshes_ex06.py}
<a href="../../examples/SMESH/creating_meshes_ex06.py">Download this script</a>
\image html mesh_cylinder_hexa.png \image html mesh_cylinder_hexa.png
<br> <br>
\anchor tui_building_compound \anchor tui_building_compound
<h2>Building a compound of meshes</h2> <h2>Building a compound of meshes</h2>
\include creating_meshes_ex07.py \tui_script{creating_meshes_ex07.py}
<a href="../../examples/SMESH/creating_meshes_ex07.py">Download this script</a>
<br> <br>
\anchor tui_copy_mesh \anchor tui_copy_mesh
<h2>Mesh Copying</h2> <h2>Mesh Copying</h2>
\include creating_meshes_ex08.py \tui_script{creating_meshes_ex08.py}
<a href="../../examples/SMESH/creating_meshes_ex08.py">Download this script</a>
*/ */

View File

@ -44,102 +44,84 @@ This page provides example codes of \ref tui_defining_meshing_algos
<br> <br>
\anchor tui_1d_arithmetic \anchor tui_1d_arithmetic
<h3>Arithmetic 1D</h3> <h3>Arithmetic 1D</h3>
\include defining_hypotheses_ex01.py \tui_script{defining_hypotheses_ex01.py}
<a href="../../examples/SMESH/defining_hypotheses_ex01.py">Download this script</a>
<br> <br>
\anchor tui_deflection_1d \anchor tui_deflection_1d
<h3>Deflection 1D and Number of Segments</h3> <h3>Deflection 1D and Number of Segments</h3>
\include defining_hypotheses_ex02.py \tui_script{defining_hypotheses_ex02.py}
<a href="../../examples/SMESH/defining_hypotheses_ex02.py">Download this script</a>
<br> <br>
\anchor tui_start_and_end_length \anchor tui_start_and_end_length
<h3>Start and End Length</h3> <h3>Start and End Length</h3>
\include defining_hypotheses_ex03.py \tui_script{defining_hypotheses_ex03.py}
<a href="../../examples/SMESH/defining_hypotheses_ex03.py">Download this script</a>
<br> <br>
\anchor tui_average_length \anchor tui_average_length
<h3>Local Length</h3> <h3>Local Length</h3>
\include defining_hypotheses_ex04.py \tui_script{defining_hypotheses_ex04.py}
<a href="../../examples/SMESH/defining_hypotheses_ex04.py">Download this script</a>
<br><h2>Defining 2D and 3D hypotheses</h2> <br><h2>Defining 2D and 3D hypotheses</h2>
<br> <br>
\anchor tui_max_element_area \anchor tui_max_element_area
<h3>Maximum Element Area</h3> <h3>Maximum Element Area</h3>
\include defining_hypotheses_ex05.py \tui_script{defining_hypotheses_ex05.py}
<a href="../../examples/SMESH/defining_hypotheses_ex05.py">Download this script</a>
<br> <br>
\anchor tui_max_element_volume \anchor tui_max_element_volume
<h3>Maximum Element Volume</h3> <h3>Maximum Element Volume</h3>
\include defining_hypotheses_ex06.py \tui_script{defining_hypotheses_ex06.py}
<a href="../../examples/SMESH/defining_hypotheses_ex06.py">Download this script</a>
<br> <br>
\anchor tui_length_from_edges \anchor tui_length_from_edges
<h3>Length from Edges</h3> <h3>Length from Edges</h3>
\include defining_hypotheses_ex07.py \tui_script{defining_hypotheses_ex07.py}
<a href="../../examples/SMESH/defining_hypotheses_ex07.py">Download this script</a>
<br><h2>Defining Additional Hypotheses</h2> <br><h2>Defining Additional Hypotheses</h2>
<br> <br>
\anchor tui_propagation \anchor tui_propagation
<h3>Propagation</h3> <h3>Propagation</h3>
\include defining_hypotheses_ex08.py \tui_script{defining_hypotheses_ex08.py}
<a href="../../examples/SMESH/defining_hypotheses_ex08.py">Download this script</a>
<br> <br>
\anchor tui_defining_meshing_algos \anchor tui_defining_meshing_algos
<h2>Defining Meshing Algorithms</h2> <h2>Defining Meshing Algorithms</h2>
\include defining_hypotheses_ex09.py \tui_script{defining_hypotheses_ex09.py}
<a href="../../examples/SMESH/defining_hypotheses_ex09.py">Download this script</a>
<br> <br>
\anchor tui_projection \anchor tui_projection
<h3>Projection Algorithms</h3> <h3>Projection Algorithms</h3>
\include defining_hypotheses_ex10.py \tui_script{defining_hypotheses_ex10.py}
<a href="../../examples/SMESH/defining_hypotheses_ex10.py">Download this script</a>
<h3>Projection 1D2D</h3> <h3>Projection 1D2D</h3>
\include defining_hypotheses_ex11.py \tui_script{defining_hypotheses_ex11.py}
<a href="../../examples/SMESH/defining_hypotheses_ex11.py">Download this script</a>
<br> <br>
\anchor tui_fixed_points \anchor tui_fixed_points
<h2>1D Mesh with Fixed Points example</h2> <h2>1D Mesh with Fixed Points example</h2>
\include defining_hypotheses_ex12.py \tui_script{defining_hypotheses_ex12.py}
<a href="../../examples/SMESH/defining_hypotheses_ex12.py">Download this script</a>
\anchor tui_radial_quadrangle \anchor tui_radial_quadrangle
<h2> Radial Quadrangle 1D2D example </h2> <h2> Radial Quadrangle 1D2D example </h2>
\include defining_hypotheses_ex13.py \tui_script{defining_hypotheses_ex13.py}
<a href="../../examples/SMESH/defining_hypotheses_ex13.py">Download this script</a>
\anchor tui_quadrangle_parameters \anchor tui_quadrangle_parameters
<h2>Quadrangle Parameters example 1 (meshing a face with 3 edges) </h2> <h2>Quadrangle Parameters example 1 (meshing a face with 3 edges) </h2>
\include defining_hypotheses_ex14.py \tui_script{defining_hypotheses_ex14.py}
<a href="../../examples/SMESH/defining_hypotheses_ex14.py">Download this script</a>
<h2>Quadrangle Parameters example 2 (using different types) </h2> <h2>Quadrangle Parameters example 2 (using different types) </h2>
\include defining_hypotheses_ex15.py \tui_script{defining_hypotheses_ex15.py}
<a href="../../examples/SMESH/defining_hypotheses_ex15.py">Download this script</a>
\anchor tui_import \anchor tui_import
<h2>"Use Existing Elements" example </h2> <h2>"Use Existing Elements" example </h2>
\include defining_hypotheses_ex16.py \tui_script{defining_hypotheses_ex16.py}
<a href="../../examples/SMESH/defining_hypotheses_ex16.py">Download this script</a>
\anchor tui_viscous_layers \anchor tui_viscous_layers
<h2>Viscous layers construction</h2> <h2>Viscous layers construction</h2>
\tui_script{defining_hypotheses_ex17.py}
\include defining_hypotheses_ex17.py
<a href="../../examples/SMESH/defining_hypotheses_ex17.py">Download this script</a>
*/ */

View File

@ -27,8 +27,7 @@ Filter 2D mesh elements (faces) according to the aspect ratio value:
- functor type should be \a smesh.FT_AspectRatio - functor type should be \a smesh.FT_AspectRatio
- threshold is floating point value (aspect ratio) - threshold is floating point value (aspect ratio)
\include filters_ex01.py \tui_script{filters_ex01.py}
<a href="../../examples/SMESH/filters_ex01.py">Download this script</a>
\sa \ref tui_aspect_ratio \sa \ref tui_aspect_ratio
@ -39,8 +38,7 @@ Filter 3D mesh elements (volumes) according to the aspect ratio value:
- functor type is \a smesh.FT_AspectRatio3D - functor type is \a smesh.FT_AspectRatio3D
- threshold is floating point value (aspect ratio) - threshold is floating point value (aspect ratio)
\include filters_ex02.py \tui_script{filters_ex02.py}
<a href="../../examples/SMESH/filters_ex02.py">Download this script</a>
\sa \ref tui_aspect_ratio_3d \sa \ref tui_aspect_ratio_3d
@ -51,8 +49,7 @@ Filter 2D mesh elements (faces) according to the warping angle value:
- functor type is \a smesh.FT_Warping - functor type is \a smesh.FT_Warping
- threshold is floating point value (warping angle) - threshold is floating point value (warping angle)
\include filters_ex03.py \tui_script{filters_ex03.py}
<a href="../../examples/SMESH/filters_ex03.py">Download this script</a>
\sa \ref tui_warping \sa \ref tui_warping
@ -63,8 +60,7 @@ Filter 2D mesh elements (faces) according to the minimum angle value:
- functor type is \a smesh.FT_MinimumAngle - functor type is \a smesh.FT_MinimumAngle
- threshold is floating point value (minimum angle) - threshold is floating point value (minimum angle)
\include filters_ex04.py \tui_script{filters_ex04.py}
<a href="../../examples/SMESH/filters_ex04.py">Download this script</a>
\sa \ref tui_minimum_angle \sa \ref tui_minimum_angle
@ -75,8 +71,7 @@ Filter 2D mesh elements (faces) according to the taper value:
- functor type is \a smesh.FT_Taper - functor type is \a smesh.FT_Taper
- threshold is floating point value (taper) - threshold is floating point value (taper)
\include filters_ex05.py \tui_script{filters_ex05.py}
<a href="../../examples/SMESH/filters_ex05.py">Download this script</a>
\sa \ref tui_taper \sa \ref tui_taper
@ -87,8 +82,7 @@ Filter 2D mesh elements (faces) according to the skew value:
- functor type is \a smesh.FT_Skew - functor type is \a smesh.FT_Skew
- threshold is floating point value (skew) - threshold is floating point value (skew)
\include filters_ex06.py \tui_script{filters_ex06.py}
<a href="../../examples/SMESH/filters_ex06.py">Download this script</a>
\sa \ref tui_skew \sa \ref tui_skew
@ -99,8 +93,7 @@ Filter 2D mesh elements (faces) according to the area value:
- functor type is \a smesh.FT_Area - functor type is \a smesh.FT_Area
- threshold is floating point value (area) - threshold is floating point value (area)
\include filters_ex07.py \tui_script{filters_ex07.py}
<a href="../../examples/SMESH/filters_ex07.py">Download this script</a>
\sa \ref tui_area \sa \ref tui_area
@ -111,8 +104,7 @@ Filter 3D mesh elements (volumes) according to the volume value:
- functor type is \a smesh.FT_Volume3D - functor type is \a smesh.FT_Volume3D
- threshold is floating point value (volume) - threshold is floating point value (volume)
\include filters_ex08.py \tui_script{filters_ex08.py}
<a href="../../examples/SMESH/filters_ex08.py">Download this script</a>
\sa \ref tui_volume \sa \ref tui_volume
@ -123,8 +115,7 @@ Filter 1D mesh elements (edges) which represent free borders of a mesh:
- functor type is \a smesh.FT_FreeBorders - functor type is \a smesh.FT_FreeBorders
- threshold value is not required - threshold value is not required
\include filters_ex09.py \tui_script{filters_ex09.py}
<a href="../../examples/SMESH/filters_ex09.py">Download this script</a>
\sa \ref tui_free_borders \sa \ref tui_free_borders
@ -136,8 +127,7 @@ element of mesh only:
- functor type is \a smesh.FT_FreeEdges - functor type is \a smesh.FT_FreeEdges
- threshold value is not required - threshold value is not required
\include filters_ex10.py \tui_script{filters_ex10.py}
<a href="../../examples/SMESH/filters_ex10.py">Download this script</a>
\sa \ref tui_free_edges \sa \ref tui_free_edges
@ -148,8 +138,7 @@ Filter free nodes:
- functor type is \a smesh.FT_FreeNodes - functor type is \a smesh.FT_FreeNodes
- threshold value is not required - threshold value is not required
\include filters_ex11.py \tui_script{filters_ex11.py}
<a href="../../examples/SMESH/filters_ex11.py">Download this script</a>
\sa \ref tui_free_nodes \sa \ref tui_free_nodes
@ -160,8 +149,7 @@ Filter free faces:
- functor type is \a smesh.FT_FreeFaces - functor type is \a smesh.FT_FreeFaces
- threshold value is not required - threshold value is not required
\include filters_ex12.py \tui_script{filters_ex12.py}
<a href="../../examples/SMESH/filters_ex12.py">Download this script</a>
\sa \ref tui_free_faces \sa \ref tui_free_faces
@ -172,8 +160,7 @@ Filter faces with bare borders:
- functor type is \a smesh.FT_BareBorderFace - functor type is \a smesh.FT_BareBorderFace
- threshold value is not required - threshold value is not required
\include filters_ex13.py \tui_script{filters_ex13.py}
<a href="../../examples/SMESH/filters_ex13.py">Download this script</a>
\sa \ref tui_bare_border_faces \sa \ref tui_bare_border_faces
@ -185,8 +172,7 @@ Filter faces with bare borders:
- threshold value is the face ID - threshold value is the face ID
- tolerance is in degrees - tolerance is in degrees
\include filters_ex14.py \tui_script{filters_ex14.py}
<a href="../../examples/SMESH/filters_ex14.py">Download this script</a>
\section filter_over_constrained_faces Over-constrained faces \section filter_over_constrained_faces Over-constrained faces
@ -195,8 +181,7 @@ Filter over-constrained faces:
- functor type is \a smesh.FT_OverConstrainedFace - functor type is \a smesh.FT_OverConstrainedFace
- threshold value is not required - threshold value is not required
\include filters_ex15.py \tui_script{filters_ex15.py}
<a href="../../examples/SMESH/filters_ex15.py">Download this script</a>
\sa \ref tui_over_constrained_faces \sa \ref tui_over_constrained_faces
@ -208,8 +193,7 @@ filter mesh elements basing on the same set of nodes:
smesh.FT_EqualFaces or \a smesh.FT_EqualVolumes, smesh.FT_EqualFaces or \a smesh.FT_EqualVolumes,
- threshold value is not required - threshold value is not required
\include filters_ex16.py \tui_script{filters_ex16.py}
<a href="../../examples/SMESH/filters_ex16.py">Download this script</a>
\section tui_double_nodes_control Double nodes \section tui_double_nodes_control Double nodes
@ -220,8 +204,7 @@ filters mesh nodes which are coincident with other nodes (within a given toleran
- threshold value is not required - threshold value is not required
- default tolerance is 1.0e-7 - default tolerance is 1.0e-7
\include filters_ex17.py \tui_script{filters_ex17.py}
<a href="../../examples/SMESH/filters_ex17.py">Download this script</a>
\section filter_borders_multiconnection Borders at multi-connection \section filter_borders_multiconnection Borders at multi-connection
@ -232,8 +215,7 @@ connections (faces belonging the border edges)
- functor type is \a smesh.FT_MultiConnection - functor type is \a smesh.FT_MultiConnection
- threshold is integer value (number of connections) - threshold is integer value (number of connections)
\include filters_ex18.py \tui_script{filters_ex18.py}
<a href="../../examples/SMESH/filters_ex18.py">Download this script</a>
\sa \ref tui_borders_at_multiconnection \sa \ref tui_borders_at_multiconnection
@ -245,8 +227,7 @@ to the specified number of mesh elements
- functor type is \a smesh.FT_MultiConnection2D - functor type is \a smesh.FT_MultiConnection2D
- threshold is integer value (number of connections) - threshold is integer value (number of connections)
\include filters_ex19.py \tui_script{filters_ex19.py}
<a href="../../examples/SMESH/filters_ex19.py">Download this script</a>
\sa \ref tui_borders_at_multiconnection_2d \sa \ref tui_borders_at_multiconnection_2d
@ -257,8 +238,7 @@ Filter 1D mesh elements (edges) according to the edge length value:
- functor type should be \a smesh.FT_Length - functor type should be \a smesh.FT_Length
- threshold is floating point value (length) - threshold is floating point value (length)
\include filters_ex20.py \tui_script{filters_ex20.py}
<a href="../../examples/SMESH/filters_ex20.py">Download this script</a>
\sa \ref tui_length_1d \sa \ref tui_length_1d
@ -270,8 +250,7 @@ value of its edges:
- functor type should be \a smesh.FT_Length2D - functor type should be \a smesh.FT_Length2D
- threshold is floating point value (edge length) - threshold is floating point value (edge length)
\include filters_ex21.py \tui_script{filters_ex21.py}
<a href="../../examples/SMESH/filters_ex21.py">Download this script</a>
\sa \ref tui_length_2d \sa \ref tui_length_2d
@ -283,8 +262,7 @@ value of its edges and diagonals:
- functor type should be \a smesh.FT_MaxElementLength2D - functor type should be \a smesh.FT_MaxElementLength2D
- threshold is floating point value (edge/diagonal length) - threshold is floating point value (edge/diagonal length)
\include filters_ex22.py \tui_script{filters_ex22.py}
<a href="../../examples/SMESH/filters_ex22.py">Download this script</a>
\sa \ref tui_max_element_length_2d \sa \ref tui_max_element_length_2d
@ -296,8 +274,7 @@ value of its edges and diagonals:
- functor type should be \a smesh.FT_MaxElementLength3D - functor type should be \a smesh.FT_MaxElementLength3D
- threshold is floating point value (edge/diagonal length) - threshold is floating point value (edge/diagonal length)
\include filters_ex23.py \tui_script{filters_ex23.py}
<a href="../../examples/SMESH/filters_ex23.py">Download this script</a>
\sa \ref tui_max_element_length_3d \sa \ref tui_max_element_length_3d
@ -308,8 +285,7 @@ Filter 3D mesh elements with bare borders:
- functor type is \a smesh.FT_BareBorderVolume - functor type is \a smesh.FT_BareBorderVolume
- threshold value is not required - threshold value is not required
\include filters_ex24.py \tui_script{filters_ex24.py}
<a href="../../examples/SMESH/filters_ex24.py">Download this script</a>
\sa \ref tui_bare_border_volumes \sa \ref tui_bare_border_volumes
@ -320,8 +296,7 @@ Filter over-constrained volumes:
- functor type is \a smesh.FT_OverConstrainedVolume - functor type is \a smesh.FT_OverConstrainedVolume
- threshold value is not required - threshold value is not required
\include filters_ex25.py \tui_script{filters_ex25.py}
<a href="../../examples/SMESH/filters_ex25.py">Download this script</a>
\sa \ref tui_over_constrained_faces \sa \ref tui_over_constrained_faces
@ -333,8 +308,7 @@ shape defined by threshold value:
- functor type should be \a smesh.FT_BelongToGeom - functor type should be \a smesh.FT_BelongToGeom
- threshold is geometrical object - threshold is geometrical object
\include filters_ex26.py \tui_script{filters_ex26.py}
<a href="../../examples/SMESH/filters_ex26.py">Download this script</a>
\section filter_lying_on_geom Lying on Geom \section filter_lying_on_geom Lying on Geom
@ -344,8 +318,7 @@ shape defined by threshold value:
- functor type should be \a smesh.FT_LyingOnGeom - functor type should be \a smesh.FT_LyingOnGeom
- threshold is geometrical object - threshold is geometrical object
\include filters_ex27.py \tui_script{filters_ex27.py}
<a href="../../examples/SMESH/filters_ex27.py">Download this script</a>
\section filter_belong_to_plane Belong to Plane \section filter_belong_to_plane Belong to Plane
@ -356,8 +329,7 @@ plane defined by threshold value with the given tolerance:
- threshold is geometrical object (plane) - threshold is geometrical object (plane)
- default tolerance is 1.0e-7 - default tolerance is 1.0e-7
\include filters_ex28.py \tui_script{filters_ex28.py}
<a href="../../examples/SMESH/filters_ex28.py">Download this script</a>
\section filter_belong_to_cylinder Belong to Cylinder \section filter_belong_to_cylinder Belong to Cylinder
@ -368,8 +340,7 @@ cylindrical face defined by threshold value with the given tolerance:
- threshold is geometrical object (cylindrical face) - threshold is geometrical object (cylindrical face)
- default tolerance is 1.0e-7 - default tolerance is 1.0e-7
\include filters_ex29.py \tui_script{filters_ex29.py}
<a href="../../examples/SMESH/filters_ex29.py">Download this script</a>
\section filter_belong_to_surface Belong to Surface \section filter_belong_to_surface Belong to Surface
@ -380,8 +351,7 @@ arbitrary surface defined by threshold value with the given tolerance:
- threshold is geometrical object (arbitrary surface) - threshold is geometrical object (arbitrary surface)
- default tolerance is 1.0e-7 - default tolerance is 1.0e-7
\include filters_ex30.py \tui_script{filters_ex30.py}
<a href="../../examples/SMESH/filters_ex30.py">Download this script</a>
\section filter_range_of_ids Range of IDs \section filter_range_of_ids Range of IDs
@ -391,8 +361,7 @@ specified identifiers range:
- functor type is \a smesh.FT_RangeOfIds - functor type is \a smesh.FT_RangeOfIds
- threshold is string listing required IDs and/or ranges of IDs, e.g."1,2,3,50-60,63,67,70-78" - threshold is string listing required IDs and/or ranges of IDs, e.g."1,2,3,50-60,63,67,70-78"
\include filters_ex31.py \tui_script{filters_ex31.py}
<a href="../../examples/SMESH/filters_ex31.py">Download this script</a>
\section filter_bad_oriented_volume Badly oriented volume \section filter_bad_oriented_volume Badly oriented volume
@ -402,8 +371,7 @@ the point of view of MED convention.
- functor type is \a smesh.FT_BadOrientedVolume - functor type is \a smesh.FT_BadOrientedVolume
- threshold is not required - threshold is not required
\include filters_ex32.py \tui_script{filters_ex32.py}
<a href="../../examples/SMESH/filters_ex32.py">Download this script</a>
\section filter_linear_or_quadratic Linear / quadratic \section filter_linear_or_quadratic Linear / quadratic
@ -414,8 +382,7 @@ Filter linear / quadratic mesh elements:
- if unary operator is set to smesh.FT_LogicalNOT, the quadratic - if unary operator is set to smesh.FT_LogicalNOT, the quadratic
elements are selected, otherwise (by default) linear elements are selected elements are selected, otherwise (by default) linear elements are selected
\include filters_ex33.py \tui_script{filters_ex33.py}
<a href="../../examples/SMESH/filters_ex33.py">Download this script</a>
\section filter_group_color Group color \section filter_group_color Group color
@ -424,8 +391,7 @@ Filter mesh entities, belonging to the group with the color defined by the thres
- functor type is \a smesh.FT_GroupColor - functor type is \a smesh.FT_GroupColor
- threshold should be of SALOMEDS.Color type - threshold should be of SALOMEDS.Color type
\include filters_ex34.py \tui_script{filters_ex34.py}
<a href="../../examples/SMESH/filters_ex34.py">Download this script</a>
\section filter_geom_type Geometry type \section filter_geom_type Geometry type
@ -436,8 +402,7 @@ entity type.
- functor type should be \a smesh.FT_ElemGeomType - functor type should be \a smesh.FT_ElemGeomType
- threshold is of smesh.GeometryType value - threshold is of smesh.GeometryType value
\include filters_ex35.py \tui_script{filters_ex35.py}
<a href="../../examples/SMESH/filters_ex35.py">Download this script</a>
\section combining_filters How to combine filters with Criterion structures? \section combining_filters How to combine filters with Criterion structures?
@ -445,8 +410,7 @@ Filters can be combined by making use of "criteria".
Example : Example :
\include filters_ex36.py \tui_script{filters_ex36.py}
<a href="../../examples/SMESH/filters_ex36.py">Download this script</a>
*/ */

View File

@ -17,8 +17,7 @@ by flat elements.
\n This example represents an iron cable (a thin cylinder) in a concrete bloc (a big cylinder). \n This example represents an iron cable (a thin cylinder) in a concrete bloc (a big cylinder).
The big cylinder is defined by two geometric volumes. The big cylinder is defined by two geometric volumes.
\include generate_flat_elements.py \tui_script{generate_flat_elements.py}
<a href="../../examples/SMESH/generate_flat_elements.py">Download this script</a>
\n Here, the 4 groups of volumes [Solid_1_1, Solid_2_1, Solid_3_1, Solid_4_1] constitute a partition of the mesh. \n Here, the 4 groups of volumes [Solid_1_1, Solid_2_1, Solid_3_1, Solid_4_1] constitute a partition of the mesh.
The flat elements on group boundaries and on faces are built with the The flat elements on group boundaries and on faces are built with the

View File

@ -5,29 +5,25 @@
<br> <br>
\anchor tui_create_standalone_group \anchor tui_create_standalone_group
<h2>Create a Standalone Group</h2> <h2>Create a Standalone Group</h2>
\include grouping_elements_ex01.py \tui_script{grouping_elements_ex01.py}
<a href="../../examples/SMESH/grouping_elements_ex01.py">Download this script</a>
\image html create_group.png \image html create_group.png
<br> <br>
\anchor tui_create_group_on_geometry \anchor tui_create_group_on_geometry
<h2>Create a Group on Geometry</h2> <h2>Create a Group on Geometry</h2>
\include grouping_elements_ex02.py \tui_script{grouping_elements_ex02.py}
<a href="../../examples/SMESH/grouping_elements_ex02.py">Download this script</a>
<br> <br>
\anchor tui_create_group_on_filter \anchor tui_create_group_on_filter
<h2>Create a Group on Filter</h2> <h2>Create a Group on Filter</h2>
\include grouping_elements_ex03.py \tui_script{grouping_elements_ex03.py}
<a href="../../examples/SMESH/grouping_elements_ex03.py">Download this script</a>
<br> <br>
\anchor tui_edit_group \anchor tui_edit_group
<h2>Edit a Group</h2> <h2>Edit a Group</h2>
\include grouping_elements_ex04.py \tui_script{grouping_elements_ex04.py}
<a href="../../examples/SMESH/grouping_elements_ex04.py">Download this script</a>
\image html editing_groups1.png \image html editing_groups1.png
@ -36,8 +32,7 @@
<br> <br>
\anchor tui_union_of_groups \anchor tui_union_of_groups
<h2>Union of groups</h2> <h2>Union of groups</h2>
\include grouping_elements_ex05.py \tui_script{grouping_elements_ex05.py}
<a href="../../examples/SMESH/grouping_elements_ex05.py">Download this script</a>
\image html union_groups1.png \image html union_groups1.png
@ -48,8 +43,7 @@
<br> <br>
\anchor tui_intersection_of_groups \anchor tui_intersection_of_groups
<h2>Intersection of groups</h2> <h2>Intersection of groups</h2>
\include grouping_elements_ex06.py \tui_script{grouping_elements_ex06.py}
<a href="../../examples/SMESH/grouping_elements_ex06.py">Download this script</a>
\image html intersect_groups1.png \image html intersect_groups1.png
@ -60,8 +54,7 @@
<br> <br>
\anchor tui_cut_of_groups \anchor tui_cut_of_groups
<h2>Cut of groups</h2> <h2>Cut of groups</h2>
\include grouping_elements_ex07.py \tui_script{grouping_elements_ex07.py}
<a href="../../examples/SMESH/grouping_elements_ex07.py">Download this script</a>
\image html cut_groups1.png \image html cut_groups1.png
@ -72,8 +65,7 @@
<br> <br>
\anchor tui_create_dim_group \anchor tui_create_dim_group
<h2>Creating groups of entities from existing groups of superior dimensions</h2> <h2>Creating groups of entities from existing groups of superior dimensions</h2>
\include grouping_elements_ex08.py \tui_script{grouping_elements_ex08.py}
<a href="../../examples/SMESH/grouping_elements_ex08.py">Download this script</a>
\image html dimgroup_tui1.png \image html dimgroup_tui1.png
<center>Source groups of faces</center> <center>Source groups of faces</center>

View File

@ -3,11 +3,9 @@
\page tui_measurements_page Measurements \page tui_measurements_page Measurements
\section tui_min_distance Minimum Distance \section tui_min_distance Minimum Distance
\include measurements_ex01.py \tui_script{measurements_ex01.py}
<a href="../../examples/SMESH/measurements_ex01.py">Download this script</a>
\section tui_bounding_box Bounding Box \section tui_bounding_box Bounding Box
\include measurements_ex02.py \tui_script{measurements_ex02.py}
<a href="../../examples/SMESH/measurements_ex02.py">Download this script</a>
*/ */

View File

@ -9,62 +9,52 @@
<br> <br>
\anchor tui_add_node \anchor tui_add_node
<h3>Add Node</h3> <h3>Add Node</h3>
\include modifying_meshes_ex01.py \tui_script{modifying_meshes_ex01.py}
<a href="../../examples/SMESH/modifying_meshes_ex01.py">Download this script</a>
<br> <br>
\anchor tui_add_0DElement \anchor tui_add_0DElement
<h3>Add 0D Element</h3> <h3>Add 0D Element</h3>
\include modifying_meshes_ex02.py \tui_script{modifying_meshes_ex02.py}
<a href="../../examples/SMESH/modifying_meshes_ex02.py">Download this script</a>
<br> <br>
\anchor tui_add_0DElement_on_all_nodes \anchor tui_add_0DElement_on_all_nodes
<h3>Add 0D Element on Element Nodes</h3> <h3>Add 0D Element on Element Nodes</h3>
\include modifying_meshes_ex03.py \tui_script{modifying_meshes_ex03.py}
<a href="../../examples/SMESH/modifying_meshes_ex03.py">Download this script</a>
<br> <br>
\anchor tui_add_edge \anchor tui_add_edge
<h3>Add Edge</h3> <h3>Add Edge</h3>
\include modifying_meshes_ex04.py \tui_script{modifying_meshes_ex04.py}
<a href="../../examples/SMESH/modifying_meshes_ex04.py">Download this script</a>
<br> <br>
\anchor tui_add_triangle \anchor tui_add_triangle
<h3>Add Triangle</h3> <h3>Add Triangle</h3>
\include modifying_meshes_ex05.py \tui_script{modifying_meshes_ex05.py}
<a href="../../examples/SMESH/modifying_meshes_ex05.py">Download this script</a>
<br> <br>
\anchor tui_add_quadrangle \anchor tui_add_quadrangle
<h3>Add Quadrangle</h3> <h3>Add Quadrangle</h3>
\include modifying_meshes_ex06.py \tui_script{modifying_meshes_ex06.py}
<a href="../../examples/SMESH/modifying_meshes_ex06.py">Download this script</a>
<br> <br>
\anchor tui_add_tetrahedron \anchor tui_add_tetrahedron
<h3>Add Tetrahedron</h3> <h3>Add Tetrahedron</h3>
\include modifying_meshes_ex07.py \tui_script{modifying_meshes_ex07.py}
<a href="../../examples/SMESH/modifying_meshes_ex07.py">Download this script</a>
<br> <br>
\anchor tui_add_hexahedron \anchor tui_add_hexahedron
<h3>Add Hexahedron</h3> <h3>Add Hexahedron</h3>
\include modifying_meshes_ex08.py \tui_script{modifying_meshes_ex08.py}
<a href="../../examples/SMESH/modifying_meshes_ex08.py">Download this script</a>
<br> <br>
\anchor tui_add_polygon \anchor tui_add_polygon
<h3>Add Polygon</h3> <h3>Add Polygon</h3>
\include modifying_meshes_ex09.py \tui_script{modifying_meshes_ex09.py}
<a href="../../examples/SMESH/modifying_meshes_ex09.py">Download this script</a>
<br> <br>
\anchor tui_add_polyhedron \anchor tui_add_polyhedron
<h3>Add Polyhedron</h3> <h3>Add Polyhedron</h3>
\include modifying_meshes_ex10.py \tui_script{modifying_meshes_ex10.py}
<a href="../../examples/SMESH/modifying_meshes_ex10.py">Download this script</a>
<br> <br>
\anchor tui_removing_nodes_and_elements \anchor tui_removing_nodes_and_elements
@ -73,97 +63,81 @@
<br> <br>
\anchor tui_removing_nodes \anchor tui_removing_nodes
<h3>Removing Nodes</h3> <h3>Removing Nodes</h3>
\include modifying_meshes_ex11.py \tui_script{modifying_meshes_ex11.py}
<a href="../../examples/SMESH/modifying_meshes_ex11.py">Download this script</a>
<br> <br>
\anchor tui_removing_elements \anchor tui_removing_elements
<h3>Removing Elements</h3> <h3>Removing Elements</h3>
\include modifying_meshes_ex12.py \tui_script{modifying_meshes_ex12.py}
<a href="../../examples/SMESH/modifying_meshes_ex12.py">Download this script</a>
<br> <br>
\anchor tui_removing_orphan_nodes \anchor tui_removing_orphan_nodes
<h3>Removing Orphan Nodes</h3> <h3>Removing Orphan Nodes</h3>
\include modifying_meshes_ex13.py \tui_script{modifying_meshes_ex13.py}
<a href="../../examples/SMESH/modifying_meshes_ex13.py">Download this script</a>
<br> <br>
\anchor tui_renumbering_nodes_and_elements \anchor tui_renumbering_nodes_and_elements
<h2>Renumbering Nodes and Elements</h2> <h2>Renumbering Nodes and Elements</h2>
\include modifying_meshes_ex14.py \tui_script{modifying_meshes_ex14.py}
<a href="../../examples/SMESH/modifying_meshes_ex14.py">Download this script</a>
<br> <br>
\anchor tui_moving_nodes \anchor tui_moving_nodes
<h2>Moving Nodes</h2> <h2>Moving Nodes</h2>
\include modifying_meshes_ex15.py \tui_script{modifying_meshes_ex15.py}
<a href="../../examples/SMESH/modifying_meshes_ex15.py">Download this script</a>
<br> <br>
\anchor tui_diagonal_inversion \anchor tui_diagonal_inversion
<h2>Diagonal Inversion</h2> <h2>Diagonal Inversion</h2>
\include modifying_meshes_ex16.py \tui_script{modifying_meshes_ex16.py}
<a href="../../examples/SMESH/modifying_meshes_ex16.py">Download this script</a>
<br> <br>
\anchor tui_uniting_two_triangles \anchor tui_uniting_two_triangles
<h2>Uniting two Triangles</h2> <h2>Uniting two Triangles</h2>
\include modifying_meshes_ex17.py \tui_script{modifying_meshes_ex17.py}
<a href="../../examples/SMESH/modifying_meshes_ex17.py">Download this script</a>
<br> <br>
\anchor tui_uniting_set_of_triangles \anchor tui_uniting_set_of_triangles
<h2>Uniting a Set of Triangles</h2> <h2>Uniting a Set of Triangles</h2>
\include modifying_meshes_ex18.py \tui_script{modifying_meshes_ex18.py}
<a href="../../examples/SMESH/modifying_meshes_ex18.py">Download this script</a>
<br> <br>
\anchor tui_orientation \anchor tui_orientation
<h2>Orientation</h2> <h2>Orientation</h2>
\include modifying_meshes_ex19.py \tui_script{modifying_meshes_ex19.py}
<a href="../../examples/SMESH/modifying_meshes_ex19.py">Download this script</a>
<br> <br>
\anchor tui_cutting_quadrangles \anchor tui_cutting_quadrangles
<h2>Cutting Quadrangles</h2> <h2>Cutting Quadrangles</h2>
\include modifying_meshes_ex20.py \tui_script{modifying_meshes_ex20.py}
<a href="../../examples/SMESH/modifying_meshes_ex20.py">Download this script</a>
<br> <br>
\anchor tui_smoothing \anchor tui_smoothing
<h2>Smoothing</h2> <h2>Smoothing</h2>
\include modifying_meshes_ex21.py \tui_script{modifying_meshes_ex21.py}
<a href="../../examples/SMESH/modifying_meshes_ex21.py">Download this script</a>
<br> <br>
\anchor tui_extrusion \anchor tui_extrusion
<h2>Extrusion</h2> <h2>Extrusion</h2>
\include modifying_meshes_ex22.py \tui_script{modifying_meshes_ex22.py}
<a href="../../examples/SMESH/modifying_meshes_ex22.py">Download this script</a>
<br> <br>
\anchor tui_extrusion_along_path \anchor tui_extrusion_along_path
<h2>Extrusion along a Path</h2> <h2>Extrusion along a Path</h2>
\include modifying_meshes_ex23.py \tui_script{modifying_meshes_ex23.py}
<a href="../../examples/SMESH/modifying_meshes_ex23.py">Download this script</a>
<br> <br>
\anchor tui_revolution \anchor tui_revolution
<h2>Revolution</h2> <h2>Revolution</h2>
\include modifying_meshes_ex24.py \tui_script{modifying_meshes_ex24.py}
<a href="../../examples/SMESH/modifying_meshes_ex24.py">Download this script</a>
<br> <br>
\anchor tui_pattern_mapping \anchor tui_pattern_mapping
<h2>Pattern Mapping</h2> <h2>Pattern Mapping</h2>
\include modifying_meshes_ex25.py \tui_script{modifying_meshes_ex25.py}
<a href="../../examples/SMESH/modifying_meshes_ex25.py">Download this script</a>
<br> <br>
\anchor tui_quadratic \anchor tui_quadratic
<h2>Convert mesh to/from quadratic</h2> <h2>Convert mesh to/from quadratic</h2>
\include modifying_meshes_ex26.py \tui_script{modifying_meshes_ex26.py}
<a href="../../examples/SMESH/modifying_meshes_ex26.py">Download this script</a>
*/ */

View File

@ -3,7 +3,6 @@
\page tui_notebook_smesh_page Using SALOME NoteBook \page tui_notebook_smesh_page Using SALOME NoteBook
\anchor tui_notebook_smesh \anchor tui_notebook_smesh
\include notebook_smesh.py \tui_script{notebook_smesh.py}
<a href="../../examples/SMESH/notebook_smesh.py">Download this script</a>
*/ */

View File

@ -1,8 +1,7 @@
/*! /*!
\page tui_prism_3d_algo Use 3D extrusion meshing algorithm \page tui_prism_3d_algo Use 3D extrusion meshing algorithm
\include prism_3d_algo.py \tui_script{prism_3d_algo.py}
<a href="../../examples/SMESH/prism_3d_algo.py">Download this script</a>
The result geometry and mesh is shown below The result geometry and mesh is shown below
\image html prism_tui_sample.png \image html prism_tui_sample.png

View File

@ -3,91 +3,69 @@
\page tui_quality_controls_page Quality Controls \page tui_quality_controls_page Quality Controls
\section tui_free_borders Free Borders \section tui_free_borders Free Borders
\include quality_controls_ex01.py \tui_script{quality_controls_ex01.py}
<a href="../../examples/SMESH/quality_controls_ex01.py">Download this script</a>
\section tui_borders_at_multiconnection Borders at Multiconnection \section tui_borders_at_multiconnection Borders at Multiconnection
\include quality_controls_ex02.py \tui_script{quality_controls_ex02.py}
<a href="../../examples/SMESH/quality_controls_ex02.py">Download this script</a>
\section tui_length_1d Length 1D \section tui_length_1d Length 1D
\include quality_controls_ex03.py \tui_script{quality_controls_ex03.py}
<a href="../../examples/SMESH/quality_controls_ex03.py">Download this script</a>
\section tui_free_edges Free Edges \section tui_free_edges Free Edges
\include quality_controls_ex04.py \tui_script{quality_controls_ex04.py}
<a href="../../examples/SMESH/quality_controls_ex04.py">Download this script</a>
\section tui_free_nodes Free Nodes \section tui_free_nodes Free Nodes
\include quality_controls_ex05.py \tui_script{quality_controls_ex05.py}
<a href="../../examples/SMESH/quality_controls_ex05.py">Download this script</a>
\section tui_free_faces Free Faces \section tui_free_faces Free Faces
\include quality_controls_ex06.py \tui_script{quality_controls_ex06.py}
<a href="../../examples/SMESH/quality_controls_ex06.py">Download this script</a>
\section tui_bare_border_faces Bare border faces \section tui_bare_border_faces Bare border faces
\include quality_controls_ex07.py \tui_script{quality_controls_ex07.py}
<a href="../../examples/SMESH/quality_controls_ex07.py">Download this script</a>
\section tui_bare_border_volumes Bare border volumes \section tui_bare_border_volumes Bare border volumes
\include quality_controls_ex08.py \tui_script{quality_controls_ex08.py}
<a href="../../examples/SMESH/quality_controls_ex08.py">Download this script</a>
\section tui_over_constrained_faces Over-constrained faces \section tui_over_constrained_faces Over-constrained faces
\include quality_controls_ex09.py \tui_script{quality_controls_ex09.py}
<a href="../../examples/SMESH/quality_controls_ex09.py">Download this script</a>
\section tui_over_constrained_volumes Over-constrained volumes \section tui_over_constrained_volumes Over-constrained volumes
\include quality_controls_ex10.py \tui_script{quality_controls_ex10.py}
<a href="../../examples/SMESH/quality_controls_ex10.py">Download this script</a>
\section tui_length_2d Length 2D \section tui_length_2d Length 2D
\include quality_controls_ex11.py \tui_script{quality_controls_ex11.py}
<a href="../../examples/SMESH/quality_controls_ex11.py">Download this script</a>
\section tui_borders_at_multiconnection_2d Borders at Multiconnection 2D \section tui_borders_at_multiconnection_2d Borders at Multiconnection 2D
\include quality_controls_ex12.py \tui_script{quality_controls_ex12.py}
<a href="../../examples/SMESH/quality_controls_ex12.py">Download this script</a>
\section tui_area Area \section tui_area Area
\include quality_controls_ex13.py \tui_script{quality_controls_ex13.py}
<a href="../../examples/SMESH/quality_controls_ex13.py">Download this script</a>
\section tui_taper Taper \section tui_taper Taper
\include quality_controls_ex14.py \tui_script{quality_controls_ex14.py}
<a href="../../examples/SMESH/quality_controls_ex14.py">Download this script</a>
\section tui_aspect_ratio Aspect Ratio \section tui_aspect_ratio Aspect Ratio
\include quality_controls_ex15.py \tui_script{quality_controls_ex15.py}
<a href="../../examples/SMESH/quality_controls_ex15.py">Download this script</a>
\section tui_minimum_angle Minimum Angle \section tui_minimum_angle Minimum Angle
\include quality_controls_ex16.py \tui_script{quality_controls_ex16.py}
<a href="../../examples/SMESH/quality_controls_ex16.py">Download this script</a>
\section tui_warping Warping \section tui_warping Warping
\include quality_controls_ex17.py \tui_script{quality_controls_ex17.py}
<a href="../../examples/SMESH/quality_controls_ex17.py">Download this script</a>
\section tui_skew Skew \section tui_skew Skew
\include quality_controls_ex18.py \tui_script{quality_controls_ex18.py}
<a href="../../examples/SMESH/quality_controls_ex18.py">Download this script</a>
\section tui_max_element_length_2d Element Diameter 2D \section tui_max_element_length_2d Element Diameter 2D
\include quality_controls_ex19.py \tui_script{quality_controls_ex19.py}
<a href="../../examples/SMESH/quality_controls_ex19.py">Download this script</a>
\section tui_aspect_ratio_3d Aspect Ratio 3D \section tui_aspect_ratio_3d Aspect Ratio 3D
\include quality_controls_ex20.py \tui_script{quality_controls_ex20.py}
<a href="../../examples/SMESH/quality_controls_ex20.py">Download this script</a>
\section tui_volume Volume \section tui_volume Volume
\include quality_controls_ex21.py \tui_script{quality_controls_ex21.py}
<a href="../../examples/SMESH/quality_controls_ex21.py">Download this script</a>
\section tui_max_element_length_3d Element Diameter 3D \section tui_max_element_length_3d Element Diameter 3D
\include quality_controls_ex22.py \tui_script{quality_controls_ex22.py}
<a href="../../examples/SMESH/quality_controls_ex22.py">Download this script</a>
*/ */

View File

@ -7,81 +7,68 @@
<br> <br>
\anchor tui_translation \anchor tui_translation
<h3>Translation</h3> <h3>Translation</h3>
\include transforming_meshes_ex01.py \tui_script{transforming_meshes_ex01.py}
<a href="../../examples/SMESH/transforming_meshes_ex01.py">Download this script</a>
<br> <br>
\anchor tui_rotation \anchor tui_rotation
<h3>Rotation</h3> <h3>Rotation</h3>
\include transforming_meshes_ex02.py \tui_script{transforming_meshes_ex02.py}
<a href="../../examples/SMESH/transforming_meshes_ex02.py">Download this script</a>
<br> <br>
\anchor tui_scale \anchor tui_scale
<h3>Scale</h3> <h3>Scale</h3>
\include transforming_meshes_ex03.py \tui_script{transforming_meshes_ex03.py}
<a href="../../examples/SMESH/transforming_meshes_ex03.py">Download this script</a>
<br> <br>
\anchor tui_symmetry \anchor tui_symmetry
<h3>Symmetry</h3> <h3>Symmetry</h3>
\include transforming_meshes_ex04.py \tui_script{transforming_meshes_ex04.py}
<a href="../../examples/SMESH/transforming_meshes_ex04.py">Download this script</a>
<br> <br>
\anchor tui_merging_nodes \anchor tui_merging_nodes
<h3>Merging Nodes</h3> <h3>Merging Nodes</h3>
\include transforming_meshes_ex05.py \tui_script{transforming_meshes_ex05.py}
<a href="../../examples/SMESH/transforming_meshes_ex05.py">Download this script</a>
<br> <br>
\anchor tui_merging_elements \anchor tui_merging_elements
<h3>Merging Elements</h3> <h3>Merging Elements</h3>
\include transforming_meshes_ex06.py \tui_script{transforming_meshes_ex06.py}
<a href="../../examples/SMESH/transforming_meshes_ex06.py">Download this script</a>
<br><h2>Sewing Meshes</h2> <br><h2>Sewing Meshes</h2>
<br> <br>
\anchor tui_sew_meshes_border_to_side \anchor tui_sew_meshes_border_to_side
<h3>Sew Meshes Border to Side</h3> <h3>Sew Meshes Border to Side</h3>
\include transforming_meshes_ex07.py \tui_script{transforming_meshes_ex07.py}
<a href="../../examples/SMESH/transforming_meshes_ex07.py">Download this script</a>
<br> <br>
\anchor tui_sew_conform_free_borders \anchor tui_sew_conform_free_borders
<h3>Sew Conform Free Borders</h3> <h3>Sew Conform Free Borders</h3>
\include transforming_meshes_ex08.py \tui_script{transforming_meshes_ex08.py}
<a href="../../examples/SMESH/transforming_meshes_ex08.py">Download this script</a>
<br> <br>
\anchor tui_sew_free_borders \anchor tui_sew_free_borders
<h3>Sew Free Borders</h3> <h3>Sew Free Borders</h3>
\include transforming_meshes_ex09.py \tui_script{transforming_meshes_ex09.py}
<a href="../../examples/SMESH/transforming_meshes_ex09.py">Download this script</a>
<br> <br>
\anchor tui_sew_side_elements \anchor tui_sew_side_elements
<h3>Sew Side Elements</h3> <h3>Sew Side Elements</h3>
\include transforming_meshes_ex10.py \tui_script{transforming_meshes_ex10.py}
<a href="../../examples/SMESH/transforming_meshes_ex10.py">Download this script</a>
<br> <br>
\anchor tui_duplicate_nodes \anchor tui_duplicate_nodes
<h3>Duplicate nodes</h3> <h3>Duplicate nodes</h3>
\include transforming_meshes_ex11.py \tui_script{transforming_meshes_ex11.py}
<a href="../../examples/SMESH/transforming_meshes_ex11.py">Download this script</a>
<br> <br>
\anchor tui_make_2dmesh_from_3d \anchor tui_make_2dmesh_from_3d
<h3>Create boundary elements</h3> <h3>Create boundary elements</h3>
\include transforming_meshes_ex12.py \tui_script{transforming_meshes_ex12.py}
<a href="../../examples/SMESH/transforming_meshes_ex12.py">Download this script</a>
<br> <br>
\anchor tui_reorient_faces \anchor tui_reorient_faces
<h3>Reorient faces by vector</h3> <h3>Reorient faces by vector</h3>
\include transforming_meshes_ex13.py \tui_script{transforming_meshes_ex13.py}
<a href="../../examples/SMESH/transforming_meshes_ex13.py">Download this script</a>
*/ */

View File

@ -6,8 +6,7 @@ This sample demonstrates how to use <b>Use existing faces</b> algorithm,
which is actulally just a stub allowing to use your own 2D algoritm which is actulally just a stub allowing to use your own 2D algoritm
implemented in Python. implemented in Python.
\include use_existing_faces.py \tui_script{use_existing_faces.py}
<a href="../../examples/SMESH/use_existing_faces.py">Download this script</a>
Resulting mesh: Resulting mesh:
\image html use_existing_face_sample_mesh.png \image html use_existing_face_sample_mesh.png

View File

@ -5,13 +5,11 @@
<br> <br>
\anchor tui_viewing_mesh_infos \anchor tui_viewing_mesh_infos
<h2>Viewing Mesh Infos</h2> <h2>Viewing Mesh Infos</h2>
\include viewing_meshes_ex01.py \tui_script{viewing_meshes_ex01.py}
<a href="../../examples/SMESH/viewing_meshes_ex01.py">Download this script</a>
<br> <br>
\anchor tui_find_element_by_point \anchor tui_find_element_by_point
<h2>Find Element by Point</h2> <h2>Find Element by Point</h2>
\include viewing_meshes_ex02.py \tui_script{viewing_meshes_ex02.py}
<a href="../../examples/SMESH/viewing_meshes_ex02.py">Download this script</a>
*/ */

View File

@ -107,113 +107,214 @@ Driver_Mesh::Status DriverGMF_Read::Perform()
// Read elements // Read elements
int iN[28]; int iN[28]; // 28 - nb nodes in HEX27 (+ 1 for safety :)
/* Read extra vertices for quadratic edges */
std::vector<int> quadNodesAtEdges;
int nbQuadEdges = 0;
if ( (nbQuadEdges = GmfStatKwd(meshID, GmfExtraVerticesAtEdges)) )
{
quadNodesAtEdges.reserve( nbQuadEdges );
GmfGotoKwd(meshID, GmfExtraVerticesAtEdges);
for ( int i = 1; i <= nbQuadEdges; ++i )
{
GmfGetLin(meshID, GmfExtraVerticesAtEdges, &iN[0], &iN[1], &iN[2]);
quadNodesAtEdges.push_back(iN[2]);
}
}
/* Read edges */ /* Read edges */
const int edgeIDShift = myMesh->GetMeshInfo().NbElements(); const int edgeIDShift = myMesh->GetMeshInfo().NbElements();
if ( int nbEdges = GmfStatKwd(meshID, GmfEdges)) if ( int nbEdges = GmfStatKwd(meshID, GmfEdges))
{ {
const bool readQuadNodes = ( nbQuadEdges == nbEdges );
GmfGotoKwd(meshID, GmfEdges); GmfGotoKwd(meshID, GmfEdges);
for ( int i = 1; i <= nbEdges; ++i ) for ( int i = 1; i <= nbEdges; ++i )
{ {
GmfGetLin(meshID, GmfEdges, &iN[0], &iN[1], &ref); GmfGetLin(meshID, GmfEdges, &iN[0], &iN[1], &ref);
if ( !myMesh->AddEdgeWithID( iN[0], iN[1], edgeIDShift + i )) if ( readQuadNodes )
status = storeBadNodeIds( "GmfEdges",i, 2, iN[0], iN[1] ); {
const int midN = quadNodesAtEdges[i-1];
if ( !myMesh->AddEdgeWithID( iN[0], iN[1], midN, edgeIDShift + i ))
status = storeBadNodeIds( "GmfEdges + GmfExtraVerticesAtEdges",i, 3, iN[0],iN[1],midN);
}
else
{
if ( !myMesh->AddEdgeWithID( iN[0], iN[1], edgeIDShift + i ))
status = storeBadNodeIds( "GmfEdges",i, 2, iN[0], iN[1] );
}
} }
} }
/* Read quadratic edges */ // the vector of extra vertices at edges won't be used anymore so it is cleared
const int edge2IDShift = myMesh->GetMeshInfo().NbElements(); quadNodesAtEdges.clear();
if ( int nbEdges = GmfStatKwd(meshID, GmfEdgesP2))
/* Read extra vertices for quadratic triangles */
std::vector< std::vector<int> > quadNodesAtTriangles;
int nbQuadTria = 0;
if ( (nbQuadTria = GmfStatKwd(meshID, GmfExtraVerticesAtTriangles)) )
{ {
GmfGotoKwd(meshID, GmfEdgesP2); GmfGotoKwd(meshID, GmfExtraVerticesAtTriangles);
for ( int i = 1; i <= nbEdges; ++i ) quadNodesAtTriangles.reserve( nbQuadTria );
std::vector<int> nodes(4);
for ( int i = 1; i <= nbQuadTria; ++i )
{ {
GmfGetLin(meshID, GmfEdgesP2, &iN[0], &iN[1], &iN[2], &ref); GmfGetLin(meshID, GmfExtraVerticesAtTriangles,
if ( !myMesh->AddEdgeWithID( iN[0], iN[1], iN[2], edge2IDShift + i )) &iN[0], &iN[1], &iN[2], &iN[3], &iN[4],
status = storeBadNodeIds( "GmfEdgesP2",i, 3, iN[0], iN[1], iN[2] ); &iN[5]); // iN[5] - preview TRIA7
nodes.clear();
nodes.push_back(iN[2]);
nodes.push_back(iN[3]);
nodes.push_back(iN[4]);
nodes.push_back(iN[5]);
nodes.resize( iN[1] );
quadNodesAtTriangles.push_back(nodes);
} }
} }
/* Read triangles */ /* Read triangles */
const int triaIDShift = myMesh->GetMeshInfo().NbElements(); const int triaIDShift = myMesh->GetMeshInfo().NbElements();
if ( int nbTria = GmfStatKwd(meshID, GmfTriangles)) if ( int nbTria = GmfStatKwd(meshID, GmfTriangles))
{ {
const bool readQuadNodes = (nbQuadTria == nbTria);
GmfGotoKwd(meshID, GmfTriangles); GmfGotoKwd(meshID, GmfTriangles);
for ( int i = 1; i <= nbTria; ++i ) for ( int i = 1; i <= nbTria; ++i )
{ {
GmfGetLin(meshID, GmfTriangles, &iN[0], &iN[1], &iN[2], &ref); GmfGetLin(meshID, GmfTriangles, &iN[0], &iN[1], &iN[2], &ref);
if ( !myMesh->AddFaceWithID( iN[0], iN[1], iN[2], triaIDShift + i )) if ( readQuadNodes )
status = storeBadNodeIds( "GmfTriangles",i, 3, iN[0], iN[1], iN[2] ); {
const std::vector<int>& midN = quadNodesAtTriangles[ i-1 ];
if ( !myMesh->AddFaceWithID( iN[0],iN[1],iN[2], midN[0],midN[1],midN[2], triaIDShift + i ))
status = storeBadNodeIds( "GmfTriangles + GmfExtraVerticesAtTriangles",i, 6,
iN[0],iN[1],iN[2], midN[0],midN[1],midN[2] );
}
else
{
if ( !myMesh->AddFaceWithID( iN[0], iN[1], iN[2], triaIDShift + i ))
status = storeBadNodeIds( "GmfTriangles",i, 3, iN[0], iN[1], iN[2] );
}
} }
} }
/* Read quadratic triangles */ // the vector of extra vertices at triangles won't be used anymore so it is cleared
const int tria2IDShift = myMesh->GetMeshInfo().NbElements(); quadNodesAtTriangles.clear();
if ( int nbTria = GmfStatKwd(meshID, GmfTrianglesP2))
/* Read extra vertices for quadratic quadrangles */
std::vector< std::vector<int> > quadNodesAtQuadrilaterals;
int nbQuadQuad = 0;
if ( (nbQuadQuad = GmfStatKwd(meshID, GmfExtraVerticesAtQuadrilaterals)) )
{ {
GmfGotoKwd(meshID, GmfTrianglesP2); GmfGotoKwd(meshID, GmfExtraVerticesAtQuadrilaterals);
for ( int i = 1; i <= nbTria; ++i ) quadNodesAtQuadrilaterals.reserve( nbQuadQuad );
std::vector<int> nodes( 5 );
for ( int i = 1; i <= nbQuadQuad; ++i )
{ {
GmfGetLin(meshID, GmfTrianglesP2, GmfGetLin(meshID, GmfExtraVerticesAtQuadrilaterals,
&iN[0], &iN[1], &iN[2], &iN[3], &iN[4], &iN[5], &ref); &iN[0], &iN[1], &iN[2], &iN[3], &iN[4], &iN[5], &iN[6]);
if ( !myMesh->AddFaceWithID( iN[0],iN[1],iN[2],iN[3],iN[4],iN[5], nodes.clear();
tria2IDShift + i )) nodes.push_back(iN[2]);
status = storeBadNodeIds( "GmfTrianglesP2",i, 6, iN[0],iN[1],iN[2],iN[3],iN[4],iN[5] ); nodes.push_back(iN[3]);
nodes.push_back(iN[4]);
nodes.push_back(iN[5]);
nodes.push_back(iN[6]);
nodes.resize( iN[1] );
quadNodesAtQuadrilaterals.push_back(nodes);
} }
} }
/* Read quadrangles */
/* Read quadrangles */
const int quadIDShift = myMesh->GetMeshInfo().NbElements(); const int quadIDShift = myMesh->GetMeshInfo().NbElements();
if ( int nbQuad = GmfStatKwd(meshID, GmfQuadrilaterals)) if ( int nbQuad = GmfStatKwd(meshID, GmfQuadrilaterals))
{ {
const bool readQuadNodes = (nbQuadQuad == nbQuad);
GmfGotoKwd(meshID, GmfQuadrilaterals); GmfGotoKwd(meshID, GmfQuadrilaterals);
for ( int i = 1; i <= nbQuad; ++i ) for ( int i = 1; i <= nbQuad; ++i )
{ {
GmfGetLin(meshID, GmfQuadrilaterals, &iN[0], &iN[1], &iN[2], &iN[3], &ref); GmfGetLin(meshID, GmfQuadrilaterals, &iN[0], &iN[1], &iN[2], &iN[3], &ref);
if ( !myMesh->AddFaceWithID( iN[0], iN[1], iN[2], iN[3], quadIDShift + i )) if ( readQuadNodes )
status = storeBadNodeIds( "GmfQuadrilaterals",i, 4, iN[0], iN[1],iN[2], iN[3] ); {
const std::vector<int>& midN = quadNodesAtQuadrilaterals[ i-1 ];
if ( midN.size() == 4 )
{
if ( !myMesh->AddFaceWithID( iN[0], iN[1], iN[2], iN[3],
midN[0], midN[1], midN[2], midN[3],
quadIDShift + i ))
status = storeBadNodeIds( "GmfQuadrilaterals + GmfExtraVerticesAtQuadrilaterals",i, 8,
iN[0], iN[1],iN[2], iN[3],
midN[0], midN[1], midN[2], midN[3]);
}
else
{
if ( !myMesh->AddFaceWithID( iN[0], iN[1], iN[2], iN[3],
midN[0], midN[1], midN[2], midN[3], midN[4],
quadIDShift + i ))
status = storeBadNodeIds( "GmfQuadrilaterals + GmfExtraVerticesAtQuadrilaterals",i, 9,
iN[0], iN[1],iN[2], iN[3],
midN[0], midN[1], midN[2], midN[3], midN[4]);
}
}
else
{
if ( !myMesh->AddFaceWithID( iN[0], iN[1], iN[2], iN[3], quadIDShift + i ))
status = storeBadNodeIds( "GmfQuadrilaterals",i, 4, iN[0], iN[1],iN[2], iN[3] );
}
} }
} }
/* Read bi-quadratic quadrangles */ // the vector of extra vertices at quadrilaterals won't be used anymore so it is cleared
const int quad2IDShift = myMesh->GetMeshInfo().NbElements(); quadNodesAtQuadrilaterals.clear();
if ( int nbQuad = GmfStatKwd(meshID, GmfQuadrilateralsQ2))
/* Read extra vertices for quadratic tetrahedra */
std::vector< std::vector<int> > quadNodesAtTetrahedra;
int nbQuadTetra = 0;
if ( (nbQuadTetra = GmfStatKwd(meshID, GmfExtraVerticesAtTetrahedra)) )
{ {
GmfGotoKwd(meshID, GmfQuadrilateralsQ2); GmfGotoKwd(meshID, GmfExtraVerticesAtTetrahedra);
for ( int i = 1; i <= nbQuad; ++i ) quadNodesAtTetrahedra.reserve( nbQuadTetra );
std::vector<int> nodes( 6 );
for ( int i = 1; i <= nbQuadTetra; ++i )
{ {
GmfGetLin(meshID, GmfQuadrilateralsQ2, GmfGetLin(meshID, GmfExtraVerticesAtTetrahedra,
&iN[0], &iN[1], &iN[2], &iN[3], &iN[4], &iN[5], &iN[6], &iN[7], &iN[8], &ref); &iN[0], &iN[1], &iN[2], &iN[3], &iN[4], &iN[5], &iN[6], &iN[7]);
if ( !myMesh->AddFaceWithID( iN[0],iN[1],iN[2],iN[3],iN[4],iN[5],iN[6],iN[7],iN[8], nodes.clear();
quad2IDShift + i )) nodes.push_back(iN[2]);
status = storeBadNodeIds( "GmfQuadrilateralsQ2",i, nodes.push_back(iN[3]);
9, iN[0],iN[1],iN[2],iN[3],iN[4],iN[5],iN[6],iN[7],iN[8] ); nodes.push_back(iN[4]);
nodes.push_back(iN[5]);
nodes.push_back(iN[6]);
nodes.push_back(iN[7]);
nodes.resize( iN[1] );
quadNodesAtTetrahedra.push_back(nodes);
} }
} }
/* Read terahedra */ /* Read terahedra */
const int tetIDShift = myMesh->GetMeshInfo().NbElements(); const int tetIDShift = myMesh->GetMeshInfo().NbElements();
if ( int nbTet = GmfStatKwd(meshID, GmfTetrahedra)) if ( int nbTet = GmfStatKwd(meshID, GmfTetrahedra))
{ {
const bool readQuadNodes = (nbQuadTetra == nbTet);
GmfGotoKwd(meshID, GmfTetrahedra); GmfGotoKwd(meshID, GmfTetrahedra);
for ( int i = 1; i <= nbTet; ++i ) for ( int i = 1; i <= nbTet; ++i )
{ {
GmfGetLin(meshID, GmfTetrahedra, &iN[0], &iN[1], &iN[2], &iN[3], &ref); GmfGetLin(meshID, GmfTetrahedra, &iN[0], &iN[1], &iN[2], &iN[3], &ref);
if ( !myMesh->AddVolumeWithID( iN[0], iN[2], iN[1], iN[3], tetIDShift + i )) if ( readQuadNodes )
status = storeBadNodeIds( "GmfTetrahedra",i, 4, iN[0], iN[1],iN[2], iN[3] ); {
} const std::vector<int>& midN = quadNodesAtTetrahedra[ i-1 ];
} if ( !myMesh->AddVolumeWithID( iN[0], iN[2], iN[1], iN[3],
/* Read quadratic terahedra */ midN[2], midN[1], midN[0], midN[3], midN[5], midN[4], tetIDShift + i ))
const int tet2IDShift = myMesh->GetMeshInfo().NbElements(); status = storeBadNodeIds( "GmfTetrahedra + GmfExtraVerticesAtTetrahedra",i, 10, iN[0], iN[2], iN[1], iN[3],
if ( int nbTet = GmfStatKwd(meshID, GmfTetrahedraP2)) midN[2], midN[1], midN[0], midN[3], midN[5], midN[4] );
{ }
GmfGotoKwd(meshID, GmfTetrahedraP2); else
for ( int i = 1; i <= nbTet; ++i ) {
{ if ( !myMesh->AddVolumeWithID( iN[0], iN[2], iN[1], iN[3], tetIDShift + i ) )
GmfGetLin(meshID, GmfTetrahedraP2, &iN[0], &iN[1], &iN[2], status = storeBadNodeIds( "GmfTetrahedra" ,i, 4, iN[0], iN[2], iN[1], iN[3] );
&iN[3], &iN[4], &iN[5], &iN[6], &iN[7], &iN[8], &iN[9], &ref); }
if ( !myMesh->AddVolumeWithID( iN[0],iN[2],iN[1],iN[3],
iN[6],iN[5],iN[4],
iN[7],iN[9],iN[8], tet2IDShift + i ))
status = storeBadNodeIds( "GmfTetrahedraP2",i, 10, iN[0],iN[1],iN[2],iN[3],
iN[4],iN[5],iN[6],iN[7],iN[8],iN[9] );
} }
} }
// the vector of extra vertices at tetrahedra won't be used anymore so it is cleared
quadNodesAtTetrahedra.clear();
/* Read pyramids */ /* Read pyramids */
const int pyrIDShift = myMesh->GetMeshInfo().NbElements(); const int pyrIDShift = myMesh->GetMeshInfo().NbElements();
if ( int nbPyr = GmfStatKwd(meshID, GmfPyramids)) if ( int nbPyr = GmfStatKwd(meshID, GmfPyramids))
@ -226,42 +327,115 @@ Driver_Mesh::Status DriverGMF_Read::Perform()
status = storeBadNodeIds( "GmfPyramids",i, 5, iN[0], iN[1],iN[2], iN[3], iN[4] ); status = storeBadNodeIds( "GmfPyramids",i, 5, iN[0], iN[1],iN[2], iN[3], iN[4] );
} }
} }
/* Read extra vertices for quadratic hexahedra */
std::vector< std::vector<int> > quadNodesAtHexahedra;
int nbQuadHexa = 0;
if ( (nbQuadHexa = GmfStatKwd(meshID, GmfExtraVerticesAtHexahedra)) )
{
GmfGotoKwd(meshID, GmfExtraVerticesAtHexahedra);
quadNodesAtHexahedra.reserve( nbQuadHexa );
std::vector<int> nodes( 19 );
for ( int i = 1; i <= nbQuadHexa; ++i )
{
GmfGetLin(meshID, GmfExtraVerticesAtHexahedra, &iN[0], &iN[1], // Hexa Id, Nb of extra vertices
&iN[2], &iN[3], &iN[4], &iN[5],
&iN[6], &iN[7], &iN[8], &iN[9],
&iN[10], &iN[11], &iN[12], &iN[13], // HEXA20
&iN[14],
&iN[15], &iN[16], &iN[17], &iN[18],
&iN[19],
&iN[20]); // HEXA27
nodes.clear();
nodes.push_back(iN[2]);
nodes.push_back(iN[3]);
nodes.push_back(iN[4]);
nodes.push_back(iN[5]);
nodes.push_back(iN[6]);
nodes.push_back(iN[7]);
nodes.push_back(iN[8]);
nodes.push_back(iN[9]);
nodes.push_back(iN[10]);
nodes.push_back(iN[11]);
nodes.push_back(iN[12]);
nodes.push_back(iN[13]);
nodes.push_back(iN[14]);
nodes.push_back(iN[15]);
nodes.push_back(iN[16]);
nodes.push_back(iN[17]);
nodes.push_back(iN[18]);
nodes.push_back(iN[19]);
nodes.push_back(iN[20]);
nodes.resize( iN[1] );
quadNodesAtHexahedra.push_back(nodes);
}
}
/* Read hexahedra */ /* Read hexahedra */
const int hexIDShift = myMesh->GetMeshInfo().NbElements(); const int hexIDShift = myMesh->GetMeshInfo().NbElements();
if ( int nbHex = GmfStatKwd(meshID, GmfHexahedra)) if ( int nbHex = GmfStatKwd(meshID, GmfHexahedra))
{ {
const bool readQuadNodes = (nbQuadHexa == nbHex);
GmfGotoKwd(meshID, GmfHexahedra); GmfGotoKwd(meshID, GmfHexahedra);
for ( int i = 1; i <= nbHex; ++i ) for ( int i = 1; i <= nbHex; ++i )
{ {
GmfGetLin(meshID, GmfHexahedra, GmfGetLin(meshID, GmfHexahedra, &iN[0], &iN[1], &iN[2], &iN[3],
&iN[0], &iN[1], &iN[2], &iN[3], &iN[4], &iN[5], &iN[6], &iN[7], &ref); &iN[4], &iN[5], &iN[6], &iN[7],&ref);
if ( !myMesh->AddVolumeWithID( iN[0], iN[3], iN[2], iN[1], iN[4], iN[7], iN[6], iN[5], if ( readQuadNodes )
hexIDShift + i)) {
status = storeBadNodeIds( "GmfHexahedra",i, const std::vector<int>& midN = quadNodesAtHexahedra[ i-1 ];
8, iN[0], iN[1],iN[2], iN[3], iN[4], iN[7], iN[6], iN[5] ); if ( midN.size() == 12 ) // HEXA20
} {
} if ( !myMesh->AddVolumeWithID( iN[0], iN[3], iN[2], iN[1],
/* Read tri-quadratic hexahedra */ iN[4], iN[7], iN[6], iN[5],
const int hex2IDShift = myMesh->GetMeshInfo().NbElements(); midN[3], midN[2], midN[1], midN[0],
if ( int nbHex = GmfStatKwd(meshID, GmfHexahedraQ2)) midN[7], midN[6], midN[5], midN[4],
{ midN[8], midN[11], midN[10], midN[9],
GmfGotoKwd(meshID, GmfHexahedraQ2); tetIDShift + i ))
for ( int i = 1; i <= nbHex; ++i ) status = storeBadNodeIds( "GmfHexahedra + GmfExtraVerticesAtHexahedra",i, 20,
{ iN[0], iN[3], iN[2], iN[1],
GmfGetLin(meshID, GmfHexahedraQ2, &iN[0], &iN[1], &iN[2], &iN[3], &iN[4], &iN[5], iN[4], iN[7], iN[6], iN[5],
&iN[6], &iN[7], &iN[8],&iN[9],&iN[10],&iN[11],&iN[12],&iN[13],&iN[14], midN[3], midN[2], midN[1], midN[0],
&iN[15],&iN[16],&iN[17],&iN[18],&iN[19],&iN[20],&iN[21],&iN[22],&iN[23], midN[7], midN[6], midN[5], midN[4],
&iN[24],&iN[25],&iN[26], &ref); midN[8], midN[11], midN[10], midN[9]);
if ( !myMesh->AddVolumeWithID( iN[0],iN[3],iN[2],iN[1],iN[4],iN[7],iN[6],iN[5],iN[11],iN[10], }
iN[9],iN[8],iN[12],iN[15],iN[14], iN[13],iN[19],iN[18],iN[17], else // HEXA27
iN[16],iN[20],iN[24],iN[23],iN[22],iN[21], iN[25],iN[26], {
hex2IDShift + i )) if ( !myMesh->AddVolumeWithID( iN[0], iN[3], iN[2], iN[1],
status = storeBadNodeIds( "GmfHexahedraQ2",i, 27, iN[4], iN[7], iN[6], iN[5],
iN[0],iN[3],iN[2],iN[1],iN[4], iN[7],iN[6],iN[5],iN[11],iN[10], midN[3], midN[2], midN[1], midN[0],
iN[9],iN[8],iN[12],iN[15],iN[14], iN[13],iN[19],iN[18],iN[17], midN[7], midN[6], midN[5], midN[4],
iN[16],iN[20],iN[24],iN[23],iN[22],iN[21], iN[25],iN[26]); midN[8], midN[11], midN[10], midN[9],
midN[12],
midN[16], midN[15], midN[14], midN[13],
midN[17],
midN[18],
tetIDShift + i ))
status = storeBadNodeIds( "GmfHexahedra + GmfExtraVerticesAtHexahedra",i, 27,
iN[0], iN[3], iN[2], iN[1],
iN[4], iN[7], iN[6], iN[5],
midN[3], midN[2], midN[1], midN[0],
midN[7], midN[6], midN[5], midN[4],
midN[8], midN[11], midN[10], midN[9],
midN[12],
midN[16], midN[15], midN[14], midN[13],
midN[17],
midN[18]);
}
}
else
{
if ( !myMesh->AddVolumeWithID( iN[0], iN[3], iN[2], iN[1],
iN[4], iN[7], iN[6], iN[5], hexIDShift + i ) )
status = storeBadNodeIds( "GmfHexahedra" ,i, 8, iN[0], iN[3], iN[2], iN[1],
iN[4], iN[7], iN[6], iN[5] );
}
} }
} }
// the vector of extra vertices at tetrahedra won't be used anymore so it is cleared
quadNodesAtHexahedra.clear();
/* Read prism */ /* Read prism */
const int prismIDShift = myMesh->GetMeshInfo().NbElements(); const int prismIDShift = myMesh->GetMeshInfo().NbElements();
if ( int nbPrism = GmfStatKwd(meshID, GmfPrisms)) if ( int nbPrism = GmfStatKwd(meshID, GmfPrisms))

View File

@ -49,6 +49,16 @@ extern "C"
const SMDS_MeshElement* elem = elemIt->next(); \ const SMDS_MeshElement* elem = elemIt->next(); \
GmfSetLin(meshID, GmfKwd, GmfSetLin(meshID, GmfKwd,
#define BEGIN_EXTRA_VERTICES_WRITE( SMDSEntity, GmfKwd, elem, nbVertices ) \
elemIt = myMesh->elementEntityIterator( SMDSEntity ); \
if ( elemIt->more() ) \
{ \
GmfSetKwd(meshID, GmfKwd, myMesh->GetMeshInfo().NbEntities( SMDSEntity )); \
for ( int gmfID = 1; elemIt->more(); ++gmfID ) \
{ \
const SMDS_MeshElement* elem = elemIt->next(); \
GmfSetLin(meshID, GmfKwd, gmfID, nbVertices,
#define END_ELEM_WRITE( elem ) \ #define END_ELEM_WRITE( elem ) \
elem->getshapeId() ); \ elem->getshapeId() ); \
}} \ }} \
@ -58,6 +68,10 @@ extern "C"
e2id.insert( e2id.end(), make_pair( elem, gmfID )); \ e2id.insert( e2id.end(), make_pair( elem, gmfID )); \
}} \ }} \
#define END_EXTRA_VERTICES_WRITE() \
); \
}} \
DriverGMF_Write::DriverGMF_Write(): DriverGMF_Write::DriverGMF_Write():
Driver_SMESHDS_Mesh(), _exportRequiredGroups( true ) Driver_SMESHDS_Mesh(), _exportRequiredGroups( true )
@ -67,6 +81,12 @@ DriverGMF_Write::~DriverGMF_Write()
{ {
} }
//================================================================================
/*!
* \brief Reads a GMF file
*/
//================================================================================
Driver_Mesh::Status DriverGMF_Write::Perform() Driver_Mesh::Status DriverGMF_Write::Perform()
{ {
Kernel_Utils::Localizer loc; Kernel_Utils::Localizer loc;
@ -110,14 +130,17 @@ Driver_Mesh::Status DriverGMF_Write::Perform()
node2IdMap[ edge->GetNode( 0 )], node2IdMap[ edge->GetNode( 0 )],
node2IdMap[ edge->GetNode( 1 )], node2IdMap[ edge->GetNode( 1 )],
END_ELEM_WRITE_ADD_TO_MAP( edge, edge2IDMap ); END_ELEM_WRITE_ADD_TO_MAP( edge, edge2IDMap );
// quadratic edges // quadratic edges
BEGIN_ELEM_WRITE( SMDSEntity_Quad_Edge, GmfEdgesP2, edge ) BEGIN_ELEM_WRITE( SMDSEntity_Quad_Edge, GmfEdges, edge )
node2IdMap[ edge->GetNode( 0 )], node2IdMap[ edge->GetNode( 0 )],
node2IdMap[ edge->GetNode( 1 )], node2IdMap[ edge->GetNode( 1 )],
node2IdMap[ edge->GetNode( 2 )],
END_ELEM_WRITE( edge ); END_ELEM_WRITE( edge );
BEGIN_EXTRA_VERTICES_WRITE( SMDSEntity_Quad_Edge, GmfExtraVerticesAtEdges, edge, 1 )
node2IdMap[ edge->GetNode( 2 )]
END_EXTRA_VERTICES_WRITE();
// triangles // triangles
TElem2IDMap tria2IDMap; TElem2IDMap tria2IDMap;
BEGIN_ELEM_WRITE( SMDSEntity_Triangle, GmfTriangles, tria ) BEGIN_ELEM_WRITE( SMDSEntity_Triangle, GmfTriangles, tria )
@ -125,17 +148,20 @@ Driver_Mesh::Status DriverGMF_Write::Perform()
node2IdMap[ tria->GetNode( 1 )], node2IdMap[ tria->GetNode( 1 )],
node2IdMap[ tria->GetNode( 2 )], node2IdMap[ tria->GetNode( 2 )],
END_ELEM_WRITE_ADD_TO_MAP( tria, tria2IDMap ); END_ELEM_WRITE_ADD_TO_MAP( tria, tria2IDMap );
// quadratic triangles // quadratic triangles
BEGIN_ELEM_WRITE( SMDSEntity_Quad_Triangle, GmfTrianglesP2, tria ) BEGIN_ELEM_WRITE( SMDSEntity_Quad_Triangle, GmfTriangles, tria )
node2IdMap[ tria->GetNode( 0 )], node2IdMap[ tria->GetNode( 0 )],
node2IdMap[ tria->GetNode( 1 )], node2IdMap[ tria->GetNode( 1 )],
node2IdMap[ tria->GetNode( 2 )], node2IdMap[ tria->GetNode( 2 )],
END_ELEM_WRITE( tria );
BEGIN_EXTRA_VERTICES_WRITE( SMDSEntity_Quad_Triangle, GmfExtraVerticesAtTriangles, tria, 3 )
node2IdMap[ tria->GetNode( 3 )], node2IdMap[ tria->GetNode( 3 )],
node2IdMap[ tria->GetNode( 4 )], node2IdMap[ tria->GetNode( 4 )],
node2IdMap[ tria->GetNode( 5 )], node2IdMap[ tria->GetNode( 5 )]
END_ELEM_WRITE( tria ); END_EXTRA_VERTICES_WRITE();
// quadrangles // quadrangles
TElem2IDMap quad2IDMap; TElem2IDMap quad2IDMap;
BEGIN_ELEM_WRITE( SMDSEntity_Quadrangle, GmfQuadrilaterals, quad ) BEGIN_ELEM_WRITE( SMDSEntity_Quadrangle, GmfQuadrilaterals, quad )
@ -145,19 +171,37 @@ Driver_Mesh::Status DriverGMF_Write::Perform()
node2IdMap[ quad->GetNode( 3 )], node2IdMap[ quad->GetNode( 3 )],
END_ELEM_WRITE_ADD_TO_MAP( quad, quad2IDMap ); END_ELEM_WRITE_ADD_TO_MAP( quad, quad2IDMap );
// bi-quadratic quadrangles // quadratic quadrangles
BEGIN_ELEM_WRITE( SMDSEntity_BiQuad_Quadrangle, GmfQuadrilateralsQ2, quad ) BEGIN_ELEM_WRITE( SMDSEntity_Quad_Quadrangle, GmfQuadrilaterals, quad )
node2IdMap[ quad->GetNode( 0 )], node2IdMap[ quad->GetNode( 0 )],
node2IdMap[ quad->GetNode( 3 )],
node2IdMap[ quad->GetNode( 2 )],
node2IdMap[ quad->GetNode( 1 )], node2IdMap[ quad->GetNode( 1 )],
node2IdMap[ quad->GetNode( 7 )], node2IdMap[ quad->GetNode( 2 )],
node2IdMap[ quad->GetNode( 6 )], node2IdMap[ quad->GetNode( 3 )],
node2IdMap[ quad->GetNode( 5 )],
node2IdMap[ quad->GetNode( 4 )],
node2IdMap[ quad->GetNode( 8 )],
END_ELEM_WRITE( quad ); END_ELEM_WRITE( quad );
BEGIN_EXTRA_VERTICES_WRITE( SMDSEntity_Quad_Quadrangle, GmfExtraVerticesAtQuadrilaterals, quad, 4 )
node2IdMap[ quad->GetNode( 4 )],
node2IdMap[ quad->GetNode( 5 )],
node2IdMap[ quad->GetNode( 6 )],
node2IdMap[ quad->GetNode( 7 )]
END_EXTRA_VERTICES_WRITE();
// bi-quadratic quadrangles
BEGIN_ELEM_WRITE( SMDSEntity_BiQuad_Quadrangle, GmfQuadrilaterals, quad )
node2IdMap[ quad->GetNode( 0 )],
node2IdMap[ quad->GetNode( 1 )],
node2IdMap[ quad->GetNode( 2 )],
node2IdMap[ quad->GetNode( 3 )],
END_ELEM_WRITE( quad );
BEGIN_EXTRA_VERTICES_WRITE( SMDSEntity_BiQuad_Quadrangle, GmfExtraVerticesAtQuadrilaterals, quad, 5 )
node2IdMap[ quad->GetNode( 4 )],
node2IdMap[ quad->GetNode( 5 )],
node2IdMap[ quad->GetNode( 6 )],
node2IdMap[ quad->GetNode( 7 )],
node2IdMap[ quad->GetNode( 8 )]
END_EXTRA_VERTICES_WRITE();
// terahedra // terahedra
BEGIN_ELEM_WRITE( SMDSEntity_Tetra, GmfTetrahedra, tetra ) BEGIN_ELEM_WRITE( SMDSEntity_Tetra, GmfTetrahedra, tetra )
node2IdMap[ tetra->GetNode( 0 )], node2IdMap[ tetra->GetNode( 0 )],
@ -165,20 +209,23 @@ Driver_Mesh::Status DriverGMF_Write::Perform()
node2IdMap[ tetra->GetNode( 1 )], node2IdMap[ tetra->GetNode( 1 )],
node2IdMap[ tetra->GetNode( 3 )], node2IdMap[ tetra->GetNode( 3 )],
END_ELEM_WRITE( tetra ); END_ELEM_WRITE( tetra );
// quadratic terahedra // quadratic terahedra
BEGIN_ELEM_WRITE( SMDSEntity_Quad_Tetra, GmfTetrahedraP2, tetra ) BEGIN_ELEM_WRITE( SMDSEntity_Quad_Tetra, GmfTetrahedra, tetra )
node2IdMap[ tetra->GetNode( 0 )], node2IdMap[ tetra->GetNode( 0 )],
node2IdMap[ tetra->GetNode( 2 )], node2IdMap[ tetra->GetNode( 2 )],
node2IdMap[ tetra->GetNode( 1 )], node2IdMap[ tetra->GetNode( 1 )],
node2IdMap[ tetra->GetNode( 3 )], node2IdMap[ tetra->GetNode( 3 )],
END_ELEM_WRITE( tetra );
BEGIN_EXTRA_VERTICES_WRITE( SMDSEntity_Quad_Tetra, GmfExtraVerticesAtTetrahedra, tetra, 6 )
node2IdMap[ tetra->GetNode( 6 )], node2IdMap[ tetra->GetNode( 6 )],
node2IdMap[ tetra->GetNode( 5 )], node2IdMap[ tetra->GetNode( 5 )],
node2IdMap[ tetra->GetNode( 4 )], node2IdMap[ tetra->GetNode( 4 )],
node2IdMap[ tetra->GetNode( 7 )], node2IdMap[ tetra->GetNode( 7 )],
node2IdMap[ tetra->GetNode( 9 )], node2IdMap[ tetra->GetNode( 9 )],
node2IdMap[ tetra->GetNode( 8 )], node2IdMap[ tetra->GetNode( 8 )]
END_ELEM_WRITE( tetra ); END_EXTRA_VERTICES_WRITE();
// pyramids // pyramids
BEGIN_ELEM_WRITE( SMDSEntity_Pyramid, GmfPyramids, pyra ) BEGIN_ELEM_WRITE( SMDSEntity_Pyramid, GmfPyramids, pyra )
@ -201,8 +248,8 @@ Driver_Mesh::Status DriverGMF_Write::Perform()
node2IdMap[ hexa->GetNode( 5 )], node2IdMap[ hexa->GetNode( 5 )],
END_ELEM_WRITE( hexa ); END_ELEM_WRITE( hexa );
// tri-quadratic hexahedra // quadratic hexahedra
BEGIN_ELEM_WRITE( SMDSEntity_TriQuad_Hexa, GmfHexahedraQ2, hexa ) BEGIN_ELEM_WRITE( SMDSEntity_Quad_Hexa, GmfHexahedra, hexa )
node2IdMap[ hexa->GetNode( 0 )], node2IdMap[ hexa->GetNode( 0 )],
node2IdMap[ hexa->GetNode( 3 )], node2IdMap[ hexa->GetNode( 3 )],
node2IdMap[ hexa->GetNode( 2 )], node2IdMap[ hexa->GetNode( 2 )],
@ -211,26 +258,56 @@ Driver_Mesh::Status DriverGMF_Write::Perform()
node2IdMap[ hexa->GetNode( 7 )], node2IdMap[ hexa->GetNode( 7 )],
node2IdMap[ hexa->GetNode( 6 )], node2IdMap[ hexa->GetNode( 6 )],
node2IdMap[ hexa->GetNode( 5 )], node2IdMap[ hexa->GetNode( 5 )],
END_ELEM_WRITE( hexa );
BEGIN_EXTRA_VERTICES_WRITE( SMDSEntity_Quad_Hexa, GmfExtraVerticesAtHexahedra, hexa, 12 )
node2IdMap[ hexa->GetNode( 11 )], node2IdMap[ hexa->GetNode( 11 )],
node2IdMap[ hexa->GetNode( 10 )], node2IdMap[ hexa->GetNode( 10 )],
node2IdMap[ hexa->GetNode( 9 )], node2IdMap[ hexa->GetNode( 9 )],
node2IdMap[ hexa->GetNode( 8 )], node2IdMap[ hexa->GetNode( 8 )],
node2IdMap[ hexa->GetNode( 12 )],
node2IdMap[ hexa->GetNode( 15 )], node2IdMap[ hexa->GetNode( 15 )],
node2IdMap[ hexa->GetNode( 14 )], node2IdMap[ hexa->GetNode( 14 )],
node2IdMap[ hexa->GetNode( 13 )], node2IdMap[ hexa->GetNode( 13 )],
node2IdMap[ hexa->GetNode( 12 )],
node2IdMap[ hexa->GetNode( 16 )],
node2IdMap[ hexa->GetNode( 19 )],
node2IdMap[ hexa->GetNode( 18 )],
node2IdMap[ hexa->GetNode( 17 )]
END_EXTRA_VERTICES_WRITE();
// tri-quadratic hexahedra
BEGIN_ELEM_WRITE( SMDSEntity_TriQuad_Hexa, GmfHexahedra, hexa )
node2IdMap[ hexa->GetNode( 0 )],
node2IdMap[ hexa->GetNode( 3 )],
node2IdMap[ hexa->GetNode( 2 )],
node2IdMap[ hexa->GetNode( 1 )],
node2IdMap[ hexa->GetNode( 4 )],
node2IdMap[ hexa->GetNode( 7 )],
node2IdMap[ hexa->GetNode( 6 )],
node2IdMap[ hexa->GetNode( 5 )],
END_ELEM_WRITE( hexa );
BEGIN_EXTRA_VERTICES_WRITE( SMDSEntity_TriQuad_Hexa, GmfExtraVerticesAtHexahedra, hexa, 19 )
node2IdMap[ hexa->GetNode( 11 )],
node2IdMap[ hexa->GetNode( 10 )],
node2IdMap[ hexa->GetNode( 9 )],
node2IdMap[ hexa->GetNode( 8 )],
node2IdMap[ hexa->GetNode( 15 )],
node2IdMap[ hexa->GetNode( 14 )],
node2IdMap[ hexa->GetNode( 13 )],
node2IdMap[ hexa->GetNode( 12 )],
node2IdMap[ hexa->GetNode( 16 )],
node2IdMap[ hexa->GetNode( 19 )], node2IdMap[ hexa->GetNode( 19 )],
node2IdMap[ hexa->GetNode( 18 )], node2IdMap[ hexa->GetNode( 18 )],
node2IdMap[ hexa->GetNode( 17 )], node2IdMap[ hexa->GetNode( 17 )],
node2IdMap[ hexa->GetNode( 16 )],
node2IdMap[ hexa->GetNode( 20 )], node2IdMap[ hexa->GetNode( 20 )],
node2IdMap[ hexa->GetNode( 24 )], node2IdMap[ hexa->GetNode( 24 )],
node2IdMap[ hexa->GetNode( 23 )], node2IdMap[ hexa->GetNode( 23 )],
node2IdMap[ hexa->GetNode( 22 )], node2IdMap[ hexa->GetNode( 22 )],
node2IdMap[ hexa->GetNode( 21 )], node2IdMap[ hexa->GetNode( 21 )],
node2IdMap[ hexa->GetNode( 25 )], node2IdMap[ hexa->GetNode( 25 )],
node2IdMap[ hexa->GetNode( 26 )], node2IdMap[ hexa->GetNode( 26 )]
END_ELEM_WRITE( hexa ); END_EXTRA_VERTICES_WRITE();
// prism // prism
BEGIN_ELEM_WRITE( SMDSEntity_Penta, GmfPrisms, prism ) BEGIN_ELEM_WRITE( SMDSEntity_Penta, GmfPrisms, prism )

View File

@ -1362,6 +1362,7 @@ void SMDS_DownPyramid::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>&
set<int> tofind; set<int> tofind;
int ids[16] = { 0, 1, 2, 3, 0, 3, 4, 3, 2, 4, 2, 1, 4, 1, 0, 4 }; int ids[16] = { 0, 1, 2, 3, 0, 3, 4, 3, 2, 4, 2, 1, 4, 1, 0, 4 };
// Quadrangular face
tofind.clear(); tofind.clear();
for (int i = 0; i < 4; i++) for (int i = 0; i < 4; i++)
tofind.insert(nodes[ids[i]]); tofind.insert(nodes[ids[i]]);
@ -1371,6 +1372,7 @@ void SMDS_DownPyramid::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>&
orderedNodes[i] = nodes[ids[i]]; orderedNodes[i] = nodes[ids[i]];
return; return;
} }
// Triangular faces
for (int k = 0; k < 4; k++) for (int k = 0; k < 4; k++)
{ {
tofind.clear(); tofind.clear();
@ -1489,6 +1491,7 @@ SMDS_DownQuadPyramid::~SMDS_DownQuadPyramid()
void SMDS_DownQuadPyramid::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>& orderedNodes) void SMDS_DownQuadPyramid::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>& orderedNodes)
{ {
// MESSAGE("SMDS_DownQuadPyramid::getOrderedNodesOfFace cellId = " << cellId);
set<int> setNodes; set<int> setNodes;
setNodes.clear(); setNodes.clear();
for (int i = 0; i < orderedNodes.size(); i++) for (int i = 0; i < orderedNodes.size(); i++)
@ -1503,8 +1506,9 @@ void SMDS_DownQuadPyramid::getOrderedNodesOfFace(int cellId, std::vector<vtkIdTy
int ids[32] = { 0, 1, 2, 3, 5, 6, 7, 8, int ids[32] = { 0, 1, 2, 3, 5, 6, 7, 8,
0, 3, 4, 8, 12, 9, 3, 2, 4, 7 , 11, 12, 2, 1, 4, 6, 10, 11, 1, 0, 4, 5, 9, 10 }; 0, 3, 4, 8, 12, 9, 3, 2, 4, 7 , 11, 12, 2, 1, 4, 6, 10, 11, 1, 0, 4, 5, 9, 10 };
// Quadrangular face
tofind.clear(); tofind.clear();
for (int i = 0; i < 4; i++) for (int i = 0; i < 8; i++)
tofind.insert(nodes[ids[i]]); tofind.insert(nodes[ids[i]]);
if (setNodes == tofind) if (setNodes == tofind)
{ {
@ -1512,6 +1516,7 @@ void SMDS_DownQuadPyramid::getOrderedNodesOfFace(int cellId, std::vector<vtkIdTy
orderedNodes[i] = nodes[ids[i]]; orderedNodes[i] = nodes[ids[i]];
return; return;
} }
// Triangular faces
for (int k = 0; k < 4; k++) for (int k = 0; k < 4; k++)
{ {
tofind.clear(); tofind.clear();
@ -1525,7 +1530,7 @@ void SMDS_DownQuadPyramid::getOrderedNodesOfFace(int cellId, std::vector<vtkIdTy
} }
} }
MESSAGE("=== Problem volume " << _vtkCellIds[cellId] << " " << _grid->_mesh->fromVtkToSmds(_vtkCellIds[cellId])); MESSAGE("=== Problem volume " << _vtkCellIds[cellId] << " " << _grid->_mesh->fromVtkToSmds(_vtkCellIds[cellId]));
MESSAGE(orderedNodes[0] << " " << orderedNodes[1] << " " << orderedNodes[2]); MESSAGE(orderedNodes[0] << " " << orderedNodes[1] << " " << orderedNodes[2] << " " << orderedNodes[3]);
MESSAGE(nodes[0] << " " << nodes[1] << " " << nodes[2] << " " << nodes[3]); MESSAGE(nodes[0] << " " << nodes[1] << " " << nodes[2] << " " << nodes[3]);
} }
@ -1661,6 +1666,7 @@ void SMDS_DownPenta::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>& o
//int ids[18] = { 0, 2, 1, 3, 4, 5, 0, 1, 4, 3, 1, 2, 5, 4, 2, 0, 3, 5 }; //int ids[18] = { 0, 2, 1, 3, 4, 5, 0, 1, 4, 3, 1, 2, 5, 4, 2, 0, 3, 5 };
int ids[18] = { 0, 1, 2, 3, 5, 4, 0, 3, 4, 1, 1, 4, 5, 2, 2, 5, 3, 0 }; int ids[18] = { 0, 1, 2, 3, 5, 4, 0, 3, 4, 1, 1, 4, 5, 2, 2, 5, 3, 0 };
// Triangular faces
for (int k = 0; k < 2; k++) for (int k = 0; k < 2; k++)
{ {
tofind.clear(); tofind.clear();
@ -1673,6 +1679,7 @@ void SMDS_DownPenta::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType>& o
return; return;
} }
} }
// Quadrangular faces
for (int k = 0; k < 3; k++) for (int k = 0; k < 3; k++)
{ {
tofind.clear(); tofind.clear();
@ -1810,6 +1817,7 @@ void SMDS_DownQuadPenta::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType
int ids[36] = { 0, 1, 2, 6, 7, 8, 3, 5, 4, 11, 10, 9, int ids[36] = { 0, 1, 2, 6, 7, 8, 3, 5, 4, 11, 10, 9,
0, 3, 4, 1, 12, 9, 13, 6, 1, 4, 5, 2, 13, 10, 14, 7, 2, 5, 3, 0, 14, 11, 12, 8 }; 0, 3, 4, 1, 12, 9, 13, 6, 1, 4, 5, 2, 13, 10, 14, 7, 2, 5, 3, 0, 14, 11, 12, 8 };
// Triangular faces
for (int k = 0; k < 2; k++) for (int k = 0; k < 2; k++)
{ {
tofind.clear(); tofind.clear();
@ -1822,6 +1830,7 @@ void SMDS_DownQuadPenta::getOrderedNodesOfFace(int cellId, std::vector<vtkIdType
return; return;
} }
} }
// Quadrangular faces
for (int k = 0; k < 3; k++) for (int k = 0; k < 3; k++)
{ {
tofind.clear(); tofind.clear();

View File

@ -49,6 +49,7 @@
#include <GCPnts_AbscissaPoint.hxx> #include <GCPnts_AbscissaPoint.hxx>
#include <GeomAdaptor_Curve.hxx> #include <GeomAdaptor_Curve.hxx>
#include <Geom_Surface.hxx> #include <Geom_Surface.hxx>
#include <LDOMParser.hxx>
#include <TopExp.hxx> #include <TopExp.hxx>
#include <TopExp_Explorer.hxx> #include <TopExp_Explorer.hxx>
#include <TopLoc_Location.hxx> #include <TopLoc_Location.hxx>
@ -73,6 +74,98 @@
using namespace std; using namespace std;
//================================================================================
/*!
* \brief Returns \a true if two algorithms (described by \a this and the given
* algo data) are compatible by their output and input types of elements.
*/
//================================================================================
bool SMESH_Algo::Features::IsCompatible( const SMESH_Algo::Features& algo2 ) const
{
if ( _dim > algo2._dim ) return algo2.IsCompatible( *this );
// algo2 is of highter dimension
if ( _outElemTypes.empty() || algo2._inElemTypes.empty() )
return false;
bool compatible = true;
set<SMDSAbs_GeometryType>::const_iterator myOutType = _outElemTypes.begin();
for ( ; myOutType != _outElemTypes.end() && compatible; ++myOutType )
compatible = algo2._inElemTypes.count( *myOutType );
return compatible;
}
//================================================================================
/*!
* \brief Return Data of the algorithm
*/
//================================================================================
const SMESH_Algo::Features& SMESH_Algo::GetFeatures( const std::string& algoType )
{
static map< string, SMESH_Algo::Features > theFeaturesByName;
if ( theFeaturesByName.empty() )
{
// Read Plugin.xml files
vector< string > xmlPaths = SMESH_Gen::GetPluginXMLPaths();
LDOMParser xmlParser;
for ( size_t iXML = 0; iXML < xmlPaths.size(); ++iXML )
{
bool error = xmlParser.parse( xmlPaths[iXML].c_str() );
if ( error )
{
TCollection_AsciiString data;
INFOS( xmlParser.GetError(data) );
continue;
}
// <algorithm type="Regular_1D"
// ...
// input="EDGE"
// output="QUAD,TRIA">
//
LDOM_Document xmlDoc = xmlParser.getDocument();
LDOM_NodeList algoNodeList = xmlDoc.getElementsByTagName( "algorithm" );
for ( int i = 0; i < algoNodeList.getLength(); ++i )
{
LDOM_Node algoNode = algoNodeList.item( i );
LDOM_Element& algoElem = (LDOM_Element&) algoNode;
TCollection_AsciiString algoType = algoElem.getAttribute("type");
TCollection_AsciiString input = algoElem.getAttribute("input");
TCollection_AsciiString output = algoElem.getAttribute("output");
TCollection_AsciiString dim = algoElem.getAttribute("dim");
TCollection_AsciiString label = algoElem.getAttribute("label-id");
if ( algoType.IsEmpty() ) continue;
Features & data = theFeaturesByName[ algoType.ToCString() ];
data._dim = dim.IntegerValue();
data._label = label.ToCString();
for ( int isInput = 0; isInput < 2; ++isInput )
{
TCollection_AsciiString& typeStr = isInput ? input : output;
set<SMDSAbs_GeometryType>& typeSet = isInput ? data._inElemTypes : data._outElemTypes;
int beg = 1, end;
while ( beg <= typeStr.Length() )
{
while ( beg < typeStr.Length() && !isalpha( typeStr.Value( beg ) ))
++beg;
end = beg;
while ( end < typeStr.Length() && isalpha( typeStr.Value( end + 1 ) ))
++end;
if ( end > beg )
{
TCollection_AsciiString typeName = typeStr.SubString( beg, end );
if ( typeName == "EDGE" ) typeSet.insert( SMDSGeom_EDGE );
else if ( typeName == "TRIA" ) typeSet.insert( SMDSGeom_TRIANGLE );
else if ( typeName == "QUAD" ) typeSet.insert( SMDSGeom_QUADRANGLE );
}
beg = end + 1;
}
}
}
}
}
return theFeaturesByName[ algoType ];
}
//============================================================================= //=============================================================================
/*! /*!
* *
@ -252,120 +345,13 @@ bool SMESH_Algo::FaceNormal(const SMDS_MeshElement* F, gp_XYZ& normal, bool norm
return ok; return ok;
} }
//================================================================================ /*
/*! * Moved to SMESH_MesherHelper
* \brief Find out elements orientation on a geometrical face
* \param theFace - The face correctly oriented in the shape being meshed
* \param theMeshDS - The mesh data structure
* \retval bool - true if the face normal and the normal of first element
* in the correspoding submesh point in different directions
*/ */
//================================================================================ // bool SMESH_Algo::IsReversedSubMesh (const TopoDS_Face& theFace,
// SMESHDS_Mesh* theMeshDS)
bool SMESH_Algo::IsReversedSubMesh (const TopoDS_Face& theFace, // {
SMESHDS_Mesh* theMeshDS) // }
{
if ( theFace.IsNull() || !theMeshDS )
return false;
// find out orientation of a meshed face
int faceID = theMeshDS->ShapeToIndex( theFace );
TopoDS_Shape aMeshedFace = theMeshDS->IndexToShape( faceID );
bool isReversed = ( theFace.Orientation() != aMeshedFace.Orientation() );
const SMESHDS_SubMesh * aSubMeshDSFace = theMeshDS->MeshElements( faceID );
if ( !aSubMeshDSFace )
return isReversed;
// find element with node located on face and get its normal
const SMDS_FacePosition* facePos = 0;
int vertexID = 0;
gp_Pnt nPnt[3];
gp_Vec Ne;
bool normalOK = false;
SMDS_ElemIteratorPtr iteratorElem = aSubMeshDSFace->GetElements();
while ( iteratorElem->more() ) // loop on elements on theFace
{
const SMDS_MeshElement* elem = iteratorElem->next();
if ( elem && elem->NbNodes() > 2 ) {
SMDS_ElemIteratorPtr nodesIt = elem->nodesIterator();
const SMDS_FacePosition* fPos = 0;
int i = 0, vID = 0;
while ( nodesIt->more() ) { // loop on nodes
const SMDS_MeshNode* node
= static_cast<const SMDS_MeshNode *>(nodesIt->next());
if ( i == 3 ) i = 2;
nPnt[ i++ ].SetCoord( node->X(), node->Y(), node->Z() );
// check position
const SMDS_PositionPtr& pos = node->GetPosition();
if ( !pos ) continue;
if ( pos->GetTypeOfPosition() == SMDS_TOP_FACE ) {
fPos = dynamic_cast< const SMDS_FacePosition* >( pos );
}
else if ( pos->GetTypeOfPosition() == SMDS_TOP_VERTEX ) {
vID = node->getshapeId();
}
}
if ( fPos || ( !normalOK && vID )) {
// compute normal
gp_Vec v01( nPnt[0], nPnt[1] ), v02( nPnt[0], nPnt[2] );
if ( v01.SquareMagnitude() > RealSmall() &&
v02.SquareMagnitude() > RealSmall() )
{
Ne = v01 ^ v02;
normalOK = ( Ne.SquareMagnitude() > RealSmall() );
}
// we need position on theFace or at least on vertex
if ( normalOK ) {
vertexID = vID;
if ((facePos = fPos))
break;
}
}
}
}
if ( !normalOK )
return isReversed;
// node position on face
double u,v;
if ( facePos ) {
u = facePos->GetUParameter();
v = facePos->GetVParameter();
}
else if ( vertexID ) {
TopoDS_Shape V = theMeshDS->IndexToShape( vertexID );
if ( V.IsNull() || V.ShapeType() != TopAbs_VERTEX )
return isReversed;
gp_Pnt2d uv = BRep_Tool::Parameters( TopoDS::Vertex( V ), theFace );
u = uv.X();
v = uv.Y();
}
else
{
return isReversed;
}
// face normal at node position
TopLoc_Location loc;
Handle(Geom_Surface) surf = BRep_Tool::Surface( theFace, loc );
// if ( surf.IsNull() || surf->Continuity() < GeomAbs_C1 )
// some surfaces not detected as GeomAbs_C1 are nevertheless correct for meshing
if ( surf.IsNull() || surf->Continuity() < GeomAbs_C0 )
{
if (!surf.IsNull())
MESSAGE("surf->Continuity() < GeomAbs_C1 " << (surf->Continuity() < GeomAbs_C1));
return isReversed;
}
gp_Vec d1u, d1v;
surf->D1( u, v, nPnt[0], d1u, d1v );
gp_Vec Nf = (d1u ^ d1v).Transformed( loc );
if ( theFace.Orientation() == TopAbs_REVERSED )
Nf.Reverse();
return Ne * Nf < 0.;
}
//================================================================================ //================================================================================
/*! /*!

View File

@ -30,9 +30,10 @@
#include "SMESH_SMESH.hxx" #include "SMESH_SMESH.hxx"
#include "SMESH_Hypothesis.hxx" #include "SMDSAbs_ElementType.hxx"
#include "SMESH_ComputeError.hxx"
#include "SMESH_Comment.hxx" #include "SMESH_Comment.hxx"
#include "SMESH_ComputeError.hxx"
#include "SMESH_Hypothesis.hxx"
#include <TopoDS_Shape.hxx> #include <TopoDS_Shape.hxx>
#include <TopoDS_Edge.hxx> #include <TopoDS_Edge.hxx>
@ -42,6 +43,7 @@
#include <vector> #include <vector>
#include <list> #include <list>
#include <map> #include <map>
#include <set>
class SMDS_MeshNode; class SMDS_MeshNode;
class SMESHDS_Mesh; class SMESHDS_Mesh;
@ -60,6 +62,7 @@ class gp_XYZ;
typedef std::map< SMESH_subMesh*, std::vector<int> > MapShapeNbElems; typedef std::map< SMESH_subMesh*, std::vector<int> > MapShapeNbElems;
typedef std::map< SMESH_subMesh*, std::vector<int> >::iterator MapShapeNbElemsItr; typedef std::map< SMESH_subMesh*, std::vector<int> >::iterator MapShapeNbElemsItr;
// ==================================================================================
/*! /*!
* \brief Root of all algorithms * \brief Root of all algorithms
* *
@ -69,9 +72,33 @@ typedef std::map< SMESH_subMesh*, std::vector<int> >::iterator MapShapeNbElemsIt
* - methods related to dependencies between sub-meshes imposed by the algorith * - methods related to dependencies between sub-meshes imposed by the algorith
* - static utilities, like EdgeLength() * - static utilities, like EdgeLength()
*/ */
class SMESH_EXPORT SMESH_Algo:public SMESH_Hypothesis // ==================================================================================
class SMESH_EXPORT SMESH_Algo : public SMESH_Hypothesis
{ {
public: public:
//==================================================================================
/*!
* \brief Structure describing algorithm features
*/
// --------------------------------------------------------------------------------
struct Features
{
int _dim;
std::set<SMDSAbs_GeometryType> _inElemTypes; // acceptable types of input mesh element
std::set<SMDSAbs_GeometryType> _outElemTypes; // produced types of mesh elements
std::string _label; // GUI type name
bool IsCompatible( const Features& algo2 ) const;
};
/*!
* \brief Returns a structure describing algorithm features
*/
static const Features& GetFeatures( const std::string& algoType );
const Features& GetFeatures() const { return GetFeatures( _name ); }
public:
//==================================================================================
/*! /*!
* \brief Creates algorithm * \brief Creates algorithm
* \param hypId - algorithm ID * \param hypId - algorithm ID
@ -287,14 +314,10 @@ public:
const bool ignoreMediumNodes, const bool ignoreMediumNodes,
std::map< double, const SMDS_MeshNode* > & theNodes); std::map< double, const SMDS_MeshNode* > & theNodes);
/*! /*!
* \brief Find out elements orientation on a geometrical face * Moved to SMESH_MesherHelper
* \param theFace - The face correctly oriented in the shape being meshed
* \param theMeshDS - The mesh data structure
* \retval bool - true if the face normal and the normal of first element
* in the correspoding submesh point in different directions
*/ */
static bool IsReversedSubMesh (const TopoDS_Face& theFace, // static bool IsReversedSubMesh (const TopoDS_Face& theFace,
SMESHDS_Mesh* theMeshDS); // SMESHDS_Mesh* theMeshDS);
/*! /*!
* \brief Compute length of an edge * \brief Compute length of an edge
* \param E - the edge * \param E - the edge

View File

@ -43,13 +43,12 @@
#include "Utils_ExceptHandlers.hxx" #include "Utils_ExceptHandlers.hxx"
#include <TopoDS_Iterator.hxx> #include <TopoDS_Iterator.hxx>
#include <LDOMParser.hxx>
#include "memoire.h" #include "memoire.h"
#ifdef WNT #ifdef WNT
#include <windows.h> #include <windows.h>
#endif #endif
using namespace std; using namespace std;
@ -523,6 +522,7 @@ bool SMESH_Gen::Evaluate(SMESH_Mesh & aMesh,
.And( SMESH_HypoFilter::IsMoreLocalThan( algoShape, aMesh )); .And( SMESH_HypoFilter::IsMoreLocalThan( algoShape, aMesh ));
if ( SMESH_Algo* subAlgo = (SMESH_Algo*) aMesh.GetHypothesis( aSubShape, filter, true )) { if ( SMESH_Algo* subAlgo = (SMESH_Algo*) aMesh.GetHypothesis( aSubShape, filter, true )) {
if ( ! subAlgo->NeedDiscreteBoundary() ) continue;
SMESH_Hypothesis::Hypothesis_Status status; SMESH_Hypothesis::Hypothesis_Status status;
if ( subAlgo->CheckHypothesis( aMesh, aSubShape, status )) if ( subAlgo->CheckHypothesis( aMesh, aSubShape, status ))
// mesh a lower smToCompute starting from vertices // mesh a lower smToCompute starting from vertices
@ -998,100 +998,6 @@ std::vector< std::string > SMESH_Gen::GetPluginXMLPaths()
return xmlPaths; return xmlPaths;
} }
//=======================================================================
namespace // Access to type of input and output of an algorithm
//=======================================================================
{
struct AlgoData
{
int _dim;
set<SMDSAbs_GeometryType> _inElemTypes; // acceptable types of input mesh element
set<SMDSAbs_GeometryType> _outElemTypes; // produced types of mesh elements
bool IsCompatible( const AlgoData& algo2 ) const
{
if ( _dim > algo2._dim ) return algo2.IsCompatible( *this );
// algo2 is of highter dimension
if ( _outElemTypes.empty() || algo2._inElemTypes.empty() )
return false;
bool compatible = true;
set<SMDSAbs_GeometryType>::const_iterator myOutType = _outElemTypes.begin();
for ( ; myOutType != _outElemTypes.end() && compatible; ++myOutType )
compatible = algo2._inElemTypes.count( *myOutType );
return compatible;
}
};
//================================================================================
/*!
* \brief Return AlgoData of the algorithm
*/
//================================================================================
const AlgoData& getAlgoData( const SMESH_Algo* algo )
{
static map< string, AlgoData > theDataByName;
if ( theDataByName.empty() )
{
// Read Plugin.xml files
vector< string > xmlPaths = SMESH_Gen::GetPluginXMLPaths();
LDOMParser xmlParser;
for ( size_t iXML = 0; iXML < xmlPaths.size(); ++iXML )
{
bool error = xmlParser.parse( xmlPaths[iXML].c_str() );
if ( error )
{
TCollection_AsciiString data;
INFOS( xmlParser.GetError(data) );
continue;
}
// <algorithm type="Regular_1D"
// ...
// input="EDGE"
// output="QUAD,TRIA">
//
LDOM_Document xmlDoc = xmlParser.getDocument();
LDOM_NodeList algoNodeList = xmlDoc.getElementsByTagName( "algorithm" );
for ( int i = 0; i < algoNodeList.getLength(); ++i )
{
LDOM_Node algoNode = algoNodeList.item( i );
LDOM_Element& algoElem = (LDOM_Element&) algoNode;
TCollection_AsciiString algoType = algoElem.getAttribute("type");
TCollection_AsciiString input = algoElem.getAttribute("input");
TCollection_AsciiString output = algoElem.getAttribute("output");
TCollection_AsciiString dim = algoElem.getAttribute("dim");
if ( algoType.IsEmpty() ) continue;
AlgoData & data = theDataByName[ algoType.ToCString() ];
data._dim = dim.IntegerValue();
for ( int isInput = 0; isInput < 2; ++isInput )
{
TCollection_AsciiString& typeStr = isInput ? input : output;
set<SMDSAbs_GeometryType>& typeSet = isInput ? data._inElemTypes : data._outElemTypes;
int beg = 1, end;
while ( beg <= typeStr.Length() )
{
while ( beg < typeStr.Length() && !isalpha( typeStr.Value( beg ) ))
++beg;
end = beg;
while ( end < typeStr.Length() && isalpha( typeStr.Value( end + 1 ) ))
++end;
if ( end > beg )
{
TCollection_AsciiString typeName = typeStr.SubString( beg, end );
if ( typeName == "EDGE" ) typeSet.insert( SMDSGeom_EDGE );
else if ( typeName == "TRIA" ) typeSet.insert( SMDSGeom_TRIANGLE );
else if ( typeName == "QUAD" ) typeSet.insert( SMDSGeom_QUADRANGLE );
}
beg = end + 1;
}
}
}
}
}
return theDataByName[ algo->GetName() ];
}
}
//============================================================================= //=============================================================================
/*! /*!
* Finds algo to mesh a shape. Optionally returns a shape the found algo is bound to * Finds algo to mesh a shape. Optionally returns a shape the found algo is bound to
@ -1105,6 +1011,8 @@ SMESH_Algo *SMESH_Gen::GetAlgo(SMESH_Mesh & aMesh,
SMESH_HypoFilter filter( SMESH_HypoFilter::IsAlgo() ); SMESH_HypoFilter filter( SMESH_HypoFilter::IsAlgo() );
filter.And( filter.IsApplicableTo( aShape )); filter.And( filter.IsApplicableTo( aShape ));
typedef SMESH_Algo::Features AlgoData;
TopoDS_Shape assignedToShape; TopoDS_Shape assignedToShape;
SMESH_Algo* algo = SMESH_Algo* algo =
(SMESH_Algo*) aMesh.GetHypothesis( aShape, filter, true, &assignedToShape ); (SMESH_Algo*) aMesh.GetHypothesis( aShape, filter, true, &assignedToShape );
@ -1144,10 +1052,10 @@ SMESH_Algo *SMESH_Gen::GetAlgo(SMESH_Mesh & aMesh,
// check compatibility of algos // check compatibility of algos
if ( algos3D.size() > 1 ) if ( algos3D.size() > 1 )
{ {
const AlgoData& algoData = getAlgoData( algo ); const AlgoData& algoData = algo->SMESH_Algo::GetFeatures();
const AlgoData& algoData2 = getAlgoData( algo2 ); const AlgoData& algoData2 = algo2->SMESH_Algo::GetFeatures();
const AlgoData& algoData3d0 = getAlgoData( algos3D[0] ); const AlgoData& algoData3d0 = algos3D[0]->SMESH_Algo::GetFeatures();
const AlgoData& algoData3d1 = getAlgoData( algos3D[1] ); const AlgoData& algoData3d1 = algos3D[1]->SMESH_Algo::GetFeatures();
if (( algoData2.IsCompatible( algoData3d0 ) && if (( algoData2.IsCompatible( algoData3d0 ) &&
algoData2.IsCompatible( algoData3d1 )) algoData2.IsCompatible( algoData3d1 ))
&& &&

View File

@ -2002,6 +2002,79 @@ bool SMESH_MesherHelper::IsStructured( SMESH_subMesh* faceSM )
return true; return true;
} }
//================================================================================
/*!
* \brief Find out elements orientation on a geometrical face
* \param theFace - The face correctly oriented in the shape being meshed
* \retval bool - true if the face normal and the normal of first element
* in the correspoding submesh point in different directions
*/
//================================================================================
bool SMESH_MesherHelper::IsReversedSubMesh (const TopoDS_Face& theFace)
{
if ( theFace.IsNull() )
return false;
// find out orientation of a meshed face
int faceID = GetMeshDS()->ShapeToIndex( theFace );
TopoDS_Shape aMeshedFace = GetMeshDS()->IndexToShape( faceID );
bool isReversed = ( theFace.Orientation() != aMeshedFace.Orientation() );
const SMESHDS_SubMesh * aSubMeshDSFace = GetMeshDS()->MeshElements( faceID );
if ( !aSubMeshDSFace )
return isReversed;
// find an element with a good normal
gp_Vec Ne;
bool normalOK = false;
gp_XY uv;
SMDS_ElemIteratorPtr iteratorElem = aSubMeshDSFace->GetElements();
while ( !normalOK && iteratorElem->more() ) // loop on elements on theFace
{
const SMDS_MeshElement* elem = iteratorElem->next();
if ( elem && elem->NbCornerNodes() > 2 )
{
SMESH_TNodeXYZ nPnt[3];
SMDS_ElemIteratorPtr nodesIt = elem->nodesIterator();
for ( int iN = 0; nodesIt->more() && iN < 3; ++iN) // loop on nodes
nPnt[ iN ] = nodesIt->next();
// compute normal
gp_Vec v01( nPnt[0], nPnt[1] ), v02( nPnt[0], nPnt[2] );
if ( v01.SquareMagnitude() > RealSmall() &&
v02.SquareMagnitude() > RealSmall() )
{
Ne = v01 ^ v02;
if (( normalOK = ( Ne.SquareMagnitude() > RealSmall() )))
uv = GetNodeUV( theFace, nPnt[0]._node, nPnt[2]._node, &normalOK );
}
}
}
if ( !normalOK )
return isReversed;
// face normal at node position
TopLoc_Location loc;
Handle(Geom_Surface) surf = BRep_Tool::Surface( theFace, loc );
// if ( surf.IsNull() || surf->Continuity() < GeomAbs_C1 )
// some surfaces not detected as GeomAbs_C1 are nevertheless correct for meshing
if ( surf.IsNull() || surf->Continuity() < GeomAbs_C0 )
{
if (!surf.IsNull())
MESSAGE("surf->Continuity() < GeomAbs_C1 " << (surf->Continuity() < GeomAbs_C1));
return isReversed;
}
gp_Vec d1u, d1v; gp_Pnt p;
surf->D1( uv.X(), uv.Y(), p, d1u, d1v );
gp_Vec Nf = (d1u ^ d1v).Transformed( loc );
if ( theFace.Orientation() == TopAbs_REVERSED )
Nf.Reverse();
return Ne * Nf < 0.;
}
//======================================================================= //=======================================================================
//function : Count //function : Count
//purpose : Count nb of sub-shapes //purpose : Count nb of sub-shapes

View File

@ -221,6 +221,11 @@ public:
*/ */
bool GetIsQuadratic() const { return myCreateQuadratic; } bool GetIsQuadratic() const { return myCreateQuadratic; }
/*
* \brief Find out elements orientation on a geometrical face
*/
bool IsReversedSubMesh (const TopoDS_Face& theFace);
/*! /*!
* \brief Move medium nodes of faces and volumes to fix distorted elements * \brief Move medium nodes of faces and volumes to fix distorted elements
* \param error - container of fixed distorted elements * \param error - container of fixed distorted elements
@ -373,6 +378,7 @@ public:
/*! /*!
* \brief Return node UV on face * \brief Return node UV on face
* \param inFaceNode - a node of element being created located inside a face * \param inFaceNode - a node of element being created located inside a face
* \param check - if provided, returns result of UV check that it enforces
*/ */
gp_XY GetNodeUV(const TopoDS_Face& F, gp_XY GetNodeUV(const TopoDS_Face& F,
const SMDS_MeshNode* n, const SMDS_MeshNode* n,

View File

@ -88,22 +88,22 @@ SMESH_subMesh::SMESH_subMesh(int Id,
SMESHDS_Mesh * meshDS, SMESHDS_Mesh * meshDS,
const TopoDS_Shape & aSubShape) const TopoDS_Shape & aSubShape)
{ {
_subShape = aSubShape; _subShape = aSubShape;
_subMeshDS = meshDS->MeshElements(_subShape); // may be null ... _subMeshDS = meshDS->MeshElements(_subShape); // may be null ...
_father = father; _father = father;
_Id = Id; _Id = Id;
_dependenceAnalysed = _alwaysComputed = false; _dependenceAnalysed = _alwaysComputed = false;
_algo = 0;
if (_subShape.ShapeType() == TopAbs_VERTEX) if (_subShape.ShapeType() == TopAbs_VERTEX)
{ {
_algoState = HYP_OK; _algoState = HYP_OK;
_computeState = READY_TO_COMPUTE; _computeState = READY_TO_COMPUTE;
} }
else else
{ {
_algoState = NO_ALGO; _algoState = NO_ALGO;
_computeState = NOT_READY; _computeState = NOT_READY;
} }
} }
//============================================================================= //=============================================================================
@ -194,7 +194,9 @@ SMESH_subMesh *SMESH_subMesh::GetFirstToCompute()
SMESH_Algo* SMESH_subMesh::GetAlgo() const SMESH_Algo* SMESH_subMesh::GetAlgo() const
{ {
return _father->GetGen()->GetAlgo(*_father, _subShape); if ( !_algo )
((SMESH_subMesh*)this)->_algo = _father->GetGen()->GetAlgo(*_father, _subShape);
return _algo;
} }
//================================================================================ //================================================================================
@ -268,11 +270,12 @@ bool SMESH_subMesh::IsMeshComputed() const
*/ */
//============================================================================= //=============================================================================
bool SMESH_subMesh::SubMeshesComputed() const bool SMESH_subMesh::SubMeshesComputed(bool * isFailedToCompute/*=0*/) const
{ {
int myDim = SMESH_Gen::GetShapeDim( _subShape ); int myDim = SMESH_Gen::GetShapeDim( _subShape );
int dimToCheck = myDim - 1; int dimToCheck = myDim - 1;
bool subMeshesComputed = true; bool subMeshesComputed = true;
if ( isFailedToCompute ) *isFailedToCompute = false;
// check subMeshes with upper dimension => reverse iteration // check subMeshes with upper dimension => reverse iteration
SMESH_subMeshIteratorPtr smIt = getDependsOnIterator(false,true); SMESH_subMeshIteratorPtr smIt = getDependsOnIterator(false,true);
while ( smIt->more() ) while ( smIt->more() )
@ -281,66 +284,72 @@ bool SMESH_subMesh::SubMeshesComputed() const
if ( sm->_alwaysComputed ) if ( sm->_alwaysComputed )
continue; continue;
const TopoDS_Shape & ss = sm->GetSubShape(); const TopoDS_Shape & ss = sm->GetSubShape();
// MSV 07.04.2006: restrict checking to myDim-1 only. Ex., there is no sense // MSV 07.04.2006: restrict checking to myDim-1 only. Ex., there is no sense
// in checking of existence of edges if the algo needs only faces. Moreover, // in checking of existence of edges if the algo needs only faces. Moreover,
// degenerated edges may have no submesh, as after computing NETGEN_2D. // degenerated edges may have no submesh, as after computing NETGEN_2D.
int dim = SMESH_Gen::GetShapeDim( ss ); if ( !_algo || _algo->NeedDiscreteBoundary() ) {
if (dim < dimToCheck) int dim = SMESH_Gen::GetShapeDim( ss );
break; // the rest subMeshes are all of less dimension if (dim < dimToCheck)
break; // the rest subMeshes are all of less dimension
}
SMESHDS_SubMesh * ds = sm->GetSubMeshDS(); SMESHDS_SubMesh * ds = sm->GetSubMeshDS();
bool computeOk = (sm->GetComputeState() == COMPUTE_OK || bool computeOk = (sm->GetComputeState() == COMPUTE_OK ||
(ds && ( dimToCheck ? ds->NbElements() : ds->NbNodes() ))); (ds && ( dimToCheck ? ds->NbElements() : ds->NbNodes() )));
if (!computeOk) if (!computeOk)
{ {
int type = ss.ShapeType();
subMeshesComputed = false; subMeshesComputed = false;
if ( isFailedToCompute && !(*isFailedToCompute) )
*isFailedToCompute = ( sm->GetComputeState() == FAILED_TO_COMPUTE );
switch (type) // int type = ss.ShapeType();
{
case TopAbs_COMPOUND:
{
MESSAGE("The not computed sub mesh is a COMPOUND");
break;
}
case TopAbs_COMPSOLID:
{
MESSAGE("The not computed sub mesh is a COMPSOLID");
break;
}
case TopAbs_SHELL:
{
MESSAGE("The not computed sub mesh is a SHEL");
break;
}
case TopAbs_WIRE:
{
MESSAGE("The not computed sub mesh is a WIRE");
break;
}
case TopAbs_SOLID:
{
MESSAGE("The not computed sub mesh is a SOLID");
break;
}
case TopAbs_FACE:
{
MESSAGE("The not computed sub mesh is a FACE");
break;
}
case TopAbs_EDGE:
{
MESSAGE("The not computed sub mesh is a EDGE");
break;
}
default:
{
MESSAGE("The not computed sub mesh is of unknown type");
break;
}
}
break; // switch (type)
// {
// case TopAbs_COMPOUND:
// {
// MESSAGE("The not computed sub mesh is a COMPOUND");
// break;
// }
// case TopAbs_COMPSOLID:
// {
// MESSAGE("The not computed sub mesh is a COMPSOLID");
// break;
// }
// case TopAbs_SHELL:
// {
// MESSAGE("The not computed sub mesh is a SHEL");
// break;
// }
// case TopAbs_WIRE:
// {
// MESSAGE("The not computed sub mesh is a WIRE");
// break;
// }
// case TopAbs_SOLID:
// {
// MESSAGE("The not computed sub mesh is a SOLID");
// break;
// }
// case TopAbs_FACE:
// {
// MESSAGE("The not computed sub mesh is a FACE");
// break;
// }
// case TopAbs_EDGE:
// {
// MESSAGE("The not computed sub mesh is a EDGE");
// break;
// }
// default:
// {
// MESSAGE("The not computed sub mesh is of unknown type");
// break;
// }
// }
if ( !isFailedToCompute )
break;
} }
} }
return subMeshesComputed; return subMeshesComputed;
@ -601,10 +610,6 @@ bool SMESH_subMesh::IsApplicableHypotesis(const SMESH_Hypothesis* theHypothesis,
SMESH_Hypothesis::Hypothesis_Status SMESH_Hypothesis::Hypothesis_Status
SMESH_subMesh::AlgoStateEngine(int event, SMESH_Hypothesis * anHyp) SMESH_subMesh::AlgoStateEngine(int event, SMESH_Hypothesis * anHyp)
{ {
// MESSAGE("SMESH_subMesh::AlgoStateEngine");
//SCRUTE(_algoState);
//SCRUTE(event);
// **** les retour des evenement shape sont significatifs // **** les retour des evenement shape sont significatifs
// (add ou remove fait ou non) // (add ou remove fait ou non)
// le retour des evenement father n'indiquent pas que add ou remove fait // le retour des evenement father n'indiquent pas que add ou remove fait
@ -612,8 +617,8 @@ SMESH_Hypothesis::Hypothesis_Status
SMESH_Hypothesis::Hypothesis_Status aux_ret, ret = SMESH_Hypothesis::HYP_OK; SMESH_Hypothesis::Hypothesis_Status aux_ret, ret = SMESH_Hypothesis::HYP_OK;
SMESHDS_Mesh* meshDS =_father->GetMeshDS(); SMESHDS_Mesh* meshDS =_father->GetMeshDS();
//SMESH_Gen* gen =_father->GetGen();
SMESH_Algo* algo = 0; SMESH_Algo* algo = 0;
_algo = 0;
if (_subShape.ShapeType() == TopAbs_VERTEX ) if (_subShape.ShapeType() == TopAbs_VERTEX )
{ {
@ -642,7 +647,7 @@ SMESH_Hypothesis::Hypothesis_Status
int oldAlgoState = _algoState; int oldAlgoState = _algoState;
bool modifiedHyp = (event == MODIF_HYP); // if set to true, force event MODIF_ALGO_STATE bool modifiedHyp = (event == MODIF_HYP); // if set to true, force event MODIF_ALGO_STATE
bool needFullClean = false; bool needFullClean = false, subMeshesSupported = false;
bool isApplicableHyp = IsApplicableHypotesis( anHyp ); bool isApplicableHyp = IsApplicableHypotesis( anHyp );
@ -665,7 +670,7 @@ SMESH_Hypothesis::Hypothesis_Status
SMESH_HypoFilter filter( SMESH_HypoFilter::HasType( algo->GetType() )); SMESH_HypoFilter filter( SMESH_HypoFilter::HasType( algo->GetType() ));
filter.Or( SMESH_HypoFilter::HasType( algo->GetType()+1 )); filter.Or( SMESH_HypoFilter::HasType( algo->GetType()+1 ));
filter.Or( SMESH_HypoFilter::HasType( algo->GetType()+2 )); filter.Or( SMESH_HypoFilter::HasType( algo->GetType()+2 ));
if ( SMESH_Algo * curAlgo = (SMESH_Algo*) _father->GetHypothesis( _subShape, filter, true )) if ( SMESH_Algo * curAlgo = (SMESH_Algo*)_father->GetHypothesis(_subShape, filter, true ))
needFullClean = ( !curAlgo->NeedDiscreteBoundary() ); needFullClean = ( !curAlgo->NeedDiscreteBoundary() );
} }
} }
@ -702,6 +707,7 @@ SMESH_Hypothesis::Hypothesis_Status
// we must perform it now because later // we must perform it now because later
// we will have no information about the type of the removed algo // we will have no information about the type of the removed algo
needFullClean = true; needFullClean = true;
subMeshesSupported = algo->SupportSubmeshes();
} }
} }
} }
@ -984,8 +990,10 @@ SMESH_Hypothesis::Hypothesis_Status
// CLEAN was not called at event REMOVE_ALGO because the algo is not applicable to SOLID. // CLEAN was not called at event REMOVE_ALGO because the algo is not applicable to SOLID.
algo = dynamic_cast<SMESH_Algo*> (anHyp); algo = dynamic_cast<SMESH_Algo*> (anHyp);
if (!algo->NeedDiscreteBoundary()) if (!algo->NeedDiscreteBoundary())
{
needFullClean = true; needFullClean = true;
subMeshesSupported = algo->SupportSubmeshes();
}
algo = GetAlgo(); algo = GetAlgo();
if (algo == NULL) // no more applying algo on father if (algo == NULL) // no more applying algo on father
{ {
@ -1064,7 +1072,7 @@ SMESH_Hypothesis::Hypothesis_Status
if ( needFullClean ) { if ( needFullClean ) {
// added or removed algo is all-dimensional // added or removed algo is all-dimensional
ComputeStateEngine( CLEAN ); ComputeStateEngine( CLEAN );
cleanDependsOn(); cleanDependsOn( subMeshesSupported );
ComputeSubMeshStateEngine( CHECK_COMPUTE_STATE ); ComputeSubMeshStateEngine( CHECK_COMPUTE_STATE );
} }
@ -1163,17 +1171,59 @@ SMESH_Hypothesis::Hypothesis_Status
return ret; return ret;
} }
//============================================================================= //================================================================================
/*! /*!
* * \brief Remove elements from sub-meshes.
* \param keepSupportedsubMeshes - if true, the sub-meshes computed using more
* local algorithms are not cleaned
*/ */
//============================================================================= //================================================================================
void SMESH_subMesh::cleanDependsOn() void SMESH_subMesh::cleanDependsOn( bool keepSupportedsubMeshes )
{ {
SMESH_subMeshIteratorPtr smIt = getDependsOnIterator(false,false); if ( _father->NbNodes() == 0 ) return;
while ( smIt->more() )
smIt->next()->ComputeStateEngine(CLEAN); SMESH_subMeshIteratorPtr smIt = getDependsOnIterator(false,
/*complexShapeFirst=*/true);
if ( !keepSupportedsubMeshes )
{
while ( smIt->more() )
smIt->next()->ComputeStateEngine(CLEAN);
}
else
{
// find sub-meshes to keep elements on
set< SMESH_subMesh* > smToKeep;
SMESHDS_Mesh* meshDS = _father->GetMeshDS();
while ( smIt->more() )
{
SMESH_subMesh* sm = smIt->next();
if ( sm->IsEmpty() ) continue;
// look for an algo assigned to sm
bool algoFound = false;
const list<const SMESHDS_Hypothesis*>& hyps = meshDS->GetHypothesis( sm->_subShape );
list<const SMESHDS_Hypothesis*>::const_iterator h = hyps.begin();
for ( ; ( !algoFound && h != hyps.end() ); ++h )
algoFound = ((*h)->GetType() != SMESHDS_Hypothesis::PARAM_ALGO );
// remember all sub-meshes of sm
if ( algoFound )
{
SMESH_subMeshIteratorPtr smIt2 = getDependsOnIterator(false,true);
while ( smIt2->more() )
smToKeep.insert( smIt2->next() );
}
}
// remove elements
SMESH_subMeshIteratorPtr smIt = getDependsOnIterator(false,true);
while ( smIt->more() )
{
SMESH_subMesh* sm = smIt->next();
if ( !smToKeep.count( sm ))
sm->ComputeStateEngine(CLEAN);
}
}
} }
//============================================================================= //=============================================================================
@ -1283,10 +1333,6 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
default:; default:;
} }
//MESSAGE("SMESH_subMesh::ComputeStateEngine");
//SCRUTE(_computeState);
//SCRUTE(event);
if (_subShape.ShapeType() == TopAbs_VERTEX) if (_subShape.ShapeType() == TopAbs_VERTEX)
{ {
_computeState = READY_TO_COMPUTE; _computeState = READY_TO_COMPUTE;
@ -1328,7 +1374,7 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
case MODIF_ALGO_STATE: case MODIF_ALGO_STATE:
algo = GetAlgo(); algo = GetAlgo();
if (algo && !algo->NeedDiscreteBoundary()) if (algo && !algo->NeedDiscreteBoundary())
cleanDependsOn(); // clean sub-meshes with event CLEAN cleanDependsOn( algo->SupportSubmeshes() ); // clean sub-meshes with event CLEAN
if ( _algoState == HYP_OK ) if ( _algoState == HYP_OK )
_computeState = READY_TO_COMPUTE; _computeState = READY_TO_COMPUTE;
break; break;
@ -1374,7 +1420,7 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
if (algo) if (algo)
{ {
if (!algo->NeedDiscreteBoundary()) if (!algo->NeedDiscreteBoundary())
cleanDependsOn(); // clean sub-meshes with event CLEAN cleanDependsOn( algo->SupportSubmeshes() ); // clean sub-meshes with event CLEAN
if ( _algoState == HYP_OK ) if ( _algoState == HYP_OK )
_computeState = READY_TO_COMPUTE; _computeState = READY_TO_COMPUTE;
} }
@ -1394,21 +1440,22 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
TopoDS_Shape shape = _subShape; TopoDS_Shape shape = _subShape;
// check submeshes needed // check submeshes needed
if (_father->HasShapeToMesh() ) { if (_father->HasShapeToMesh() ) {
bool subComputed = false; bool subComputed = false, subFailed = false;
if (!algo->OnlyUnaryInput()) if (!algo->OnlyUnaryInput())
shape = getCollection( gen, algo, subComputed ); shape = getCollection( gen, algo, subComputed, subFailed );
else else
subComputed = SubMeshesComputed(); subComputed = SubMeshesComputed();
ret = ( algo->NeedDiscreteBoundary() ? subComputed : ret = ( algo->NeedDiscreteBoundary() ? subComputed :
algo->SupportSubmeshes() ? true : algo->SupportSubmeshes() ? !subFailed :
( !subComputed || _father->IsNotConformAllowed() )); ( !subComputed || _father->IsNotConformAllowed() ));
if (!ret) { if (!ret)
{
_computeState = FAILED_TO_COMPUTE; _computeState = FAILED_TO_COMPUTE;
if ( !algo->NeedDiscreteBoundary() ) if ( !algo->NeedDiscreteBoundary() && !subFailed )
_computeError = _computeError =
SMESH_ComputeError::New(COMPERR_BAD_INPUT_MESH, SMESH_ComputeError::New(COMPERR_BAD_INPUT_MESH,
"Unexpected computed submesh",algo); "Unexpected computed submesh",algo);
break; break; // goto exit
} }
} }
// Compute // Compute
@ -1494,6 +1541,8 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
} }
// check if an error reported on any sub-shape // check if an error reported on any sub-shape
bool isComputeErrorSet = !checkComputeError( algo, ret, shape ); bool isComputeErrorSet = !checkComputeError( algo, ret, shape );
if ( isComputeErrorSet )
ret = false;
// check if anything was built // check if anything was built
TopExp_Explorer subS(shape, _subShape.ShapeType()); TopExp_Explorer subS(shape, _subShape.ShapeType());
if (ret) if (ret)
@ -1597,7 +1646,7 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
ComputeStateEngine( CLEAN ); ComputeStateEngine( CLEAN );
algo = GetAlgo(); algo = GetAlgo();
if (algo && !algo->NeedDiscreteBoundary()) if (algo && !algo->NeedDiscreteBoundary())
cleanDependsOn(); // clean sub-meshes with event CLEAN cleanDependsOn( algo->SupportSubmeshes() ); // clean sub-meshes with event CLEAN
break; break;
case COMPUTE: // nothing to do case COMPUTE: // nothing to do
break; break;
@ -1652,7 +1701,7 @@ bool SMESH_subMesh::ComputeStateEngine(int event)
ComputeStateEngine( CLEAN ); ComputeStateEngine( CLEAN );
algo = GetAlgo(); algo = GetAlgo();
if (algo && !algo->NeedDiscreteBoundary()) if (algo && !algo->NeedDiscreteBoundary())
cleanDependsOn(); // clean sub-meshes with event CLEAN cleanDependsOn( algo->SupportSubmeshes() ); // clean sub-meshes with event CLEAN
if (_algoState == HYP_OK) if (_algoState == HYP_OK)
_computeState = READY_TO_COMPUTE; _computeState = READY_TO_COMPUTE;
else else
@ -1951,9 +2000,10 @@ void SMESH_subMesh::removeSubMeshElementsAndNodes()
TopoDS_Shape SMESH_subMesh::getCollection(SMESH_Gen * theGen, TopoDS_Shape SMESH_subMesh::getCollection(SMESH_Gen * theGen,
SMESH_Algo* theAlgo, SMESH_Algo* theAlgo,
bool & theSubComputed) bool & theSubComputed,
bool & theSubFailed)
{ {
theSubComputed = SubMeshesComputed(); theSubComputed = SubMeshesComputed( & theSubFailed );
TopoDS_Shape mainShape = _father->GetMeshDS()->ShapeToMesh(); TopoDS_Shape mainShape = _father->GetMeshDS()->ShapeToMesh();

View File

@ -253,7 +253,7 @@ public:
void SetIsAlwaysComputed(bool isAlCo); void SetIsAlwaysComputed(bool isAlCo);
bool IsAlwaysComputed() { return _alwaysComputed; } bool IsAlwaysComputed() { return _alwaysComputed; }
bool SubMeshesComputed() const; bool SubMeshesComputed(bool * isFailedToCompute=0) const;
/*! /*!
@ -273,7 +273,7 @@ protected:
void updateDependantsState(const compute_event theEvent); void updateDependantsState(const compute_event theEvent);
void updateSubMeshState(const compute_state theState); void updateSubMeshState(const compute_state theState);
void cleanDependants(); void cleanDependants();
void cleanDependsOn(); void cleanDependsOn( bool keepSupportedsubMeshes = false );
void setAlgoState(algo_state state); void setAlgoState(algo_state state);
/*! /*!
@ -282,7 +282,8 @@ protected:
*/ */
TopoDS_Shape getCollection(SMESH_Gen * theGen, TopoDS_Shape getCollection(SMESH_Gen * theGen,
SMESH_Algo* theAlgo, SMESH_Algo* theAlgo,
bool & theSubComputed); bool & theSubComputed,
bool & theSubFailed);
/*! /*!
* \brief Update compute_state by _computeError * \brief Update compute_state by _computeError
* \retval bool - false if there are errors * \retval bool - false if there are errors
@ -313,11 +314,12 @@ protected:
std::map < int, SMESH_subMesh * >_mapDepend; std::map < int, SMESH_subMesh * >_mapDepend;
bool _dependenceAnalysed; bool _dependenceAnalysed;
SMESH_Algo * _algo; // the algorithm found by last *StateEngine() call
algo_state _algoState; algo_state _algoState;
compute_state _computeState; compute_state _computeState;
SMESH_ComputeErrorPtr _computeError; SMESH_ComputeErrorPtr _computeError;
// allow algo->Compute() if a subshape of lower dim is meshed but // allow algo->Compute() if a sub-shape of lower dim is meshed but
// none mesh entity is bound to it. Eg StdMeshers_CompositeSegment_1D can // none mesh entity is bound to it. Eg StdMeshers_CompositeSegment_1D can
// mesh several edges as a whole and leave some of them without mesh entities // mesh several edges as a whole and leave some of them without mesh entities
bool _alwaysComputed; bool _alwaysComputed;

View File

@ -39,9 +39,11 @@ class SMESHDS_EXPORT SMESHDS_Hypothesis
SMESHDS_Hypothesis(int hypId); SMESHDS_Hypothesis(int hypId);
virtual ~SMESHDS_Hypothesis(); virtual ~SMESHDS_Hypothesis();
enum hypothesis_type { PARAM_ALGO, ALGO_0D, ALGO_1D, ALGO_2D, ALGO_3D };
const char* GetName() const; const char* GetName() const;
int GetID() const; int GetID() const;
int GetType() const; int GetType() const;
virtual std::ostream & SaveTo(std::ostream & save)=0; virtual std::ostream & SaveTo(std::ostream & save)=0;
virtual std::istream & LoadFrom(std::istream & load)=0; virtual std::istream & LoadFrom(std::istream & load)=0;
@ -49,12 +51,10 @@ class SMESHDS_EXPORT SMESHDS_Hypothesis
virtual bool operator==(const SMESHDS_Hypothesis& other) const; virtual bool operator==(const SMESHDS_Hypothesis& other) const;
bool operator!=(const SMESHDS_Hypothesis& other) const { return !(*this==other); } bool operator!=(const SMESHDS_Hypothesis& other) const { return !(*this==other); }
enum hypothesis_type { PARAM_ALGO, ALGO_0D, ALGO_1D, ALGO_2D, ALGO_3D };
protected: protected:
std::string _name; // identifier if hypothesis type std::string _name; // identifier of hypothesis type
int _hypId; // ID unique within application session int _hypId; // ID unique within application session
int _type; // enum hypothesis_type hypothesis_type _type; // enum hypothesis_type
}; };
#endif #endif

View File

@ -543,11 +543,9 @@
{ {
format = "GMF"; format = "GMF";
notSupportedElemTypes.push_back( SMESH::Entity_0D ); notSupportedElemTypes.push_back( SMESH::Entity_0D );
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Quadrangle );
notSupportedElemTypes.push_back( SMESH::Entity_Polygon ); notSupportedElemTypes.push_back( SMESH::Entity_Polygon );
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Polygon ); notSupportedElemTypes.push_back( SMESH::Entity_Quad_Polygon );
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Pyramid ); notSupportedElemTypes.push_back( SMESH::Entity_Quad_Pyramid );
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Hexa );
notSupportedElemTypes.push_back( SMESH::Entity_Quad_Penta ); notSupportedElemTypes.push_back( SMESH::Entity_Quad_Penta );
notSupportedElemTypes.push_back( SMESH::Entity_Hexagonal_Prism ); notSupportedElemTypes.push_back( SMESH::Entity_Hexagonal_Prism );
notSupportedElemTypes.push_back( SMESH::Entity_Polyhedra ); notSupportedElemTypes.push_back( SMESH::Entity_Polyhedra );

View File

@ -441,7 +441,7 @@ void SMESHGUI_AddMeshElementDlg::Init()
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), SLOT(ClickOnHelp()));
@ -450,8 +450,8 @@ void SMESHGUI_AddMeshElementDlg::Init()
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()),SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()),SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(SelectionIntoArgument()));
/* to close dialog if study frame change */ /* to close dialog if study frame change */
connect(mySMESHGUI, SIGNAL(SignalStudyFrameChanged()), SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL(SignalStudyFrameChanged()), SLOT(reject()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
if (Reverse) if (Reverse)
connect(Reverse, SIGNAL(stateChanged(int)), SLOT(CheckBox(int))); connect(Reverse, SIGNAL(stateChanged(int)), SLOT(CheckBox(int)));
@ -599,14 +599,14 @@ void SMESHGUI_AddMeshElementDlg::ClickOnApply()
void SMESHGUI_AddMeshElementDlg::ClickOnOk() void SMESHGUI_AddMeshElementDlg::ClickOnOk()
{ {
ClickOnApply(); ClickOnApply();
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_AddMeshElementDlg::ClickOnCancel() void SMESHGUI_AddMeshElementDlg::reject()
{ {
//mySelectionMgr->clearSelected(); //mySelectionMgr->clearSelected();
mySimulation->SetVisibility(false); mySimulation->SetVisibility(false);
@ -615,7 +615,7 @@ void SMESHGUI_AddMeshElementDlg::ClickOnCancel()
aViewWindow->SetSelectionMode( ActorSelection ); aViewWindow->SetSelectionMode( ActorSelection );
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -874,26 +874,6 @@ void SMESHGUI_AddMeshElementDlg::enterEvent (QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_AddMeshElementDlg::closeEvent (QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=================================================================================
// function : hideEvent()
// purpose : caused by ESC key
//=================================================================================
void SMESHGUI_AddMeshElementDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : CheckBox() // function : CheckBox()
// purpose : // purpose :

View File

@ -71,8 +71,6 @@ public:
private: private:
void Init(); void Init();
void closeEvent( QCloseEvent* );
void hideEvent( QHideEvent* ); /* ESC key */
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
void displaySimulation(); void displaySimulation();
@ -119,9 +117,11 @@ private:
QString myHelpFileName; QString myHelpFileName;
protected slots:
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
void ClickOnApply(); void ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -628,13 +628,13 @@ void SMESHGUI_AddQuadraticElementDlg::Init()
connect(myReverseCB, SIGNAL(stateChanged(int)), SLOT(onReverse(int))); connect(myReverseCB, SIGNAL(stateChanged(int)), SLOT(onReverse(int)));
connect(buttonOk, SIGNAL(clicked()), SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), SLOT(ClickOnHelp()));
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), SLOT(DeactivateActiveDialog()));
connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), SLOT(reject()));
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), SLOT(reject()));
myCurrentLineEdit = myCornerNodes; myCurrentLineEdit = myCornerNodes;
@ -803,14 +803,14 @@ void SMESHGUI_AddQuadraticElementDlg::ClickOnApply()
void SMESHGUI_AddQuadraticElementDlg::ClickOnOk() void SMESHGUI_AddQuadraticElementDlg::ClickOnOk()
{ {
ClickOnApply(); ClickOnApply();
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_AddQuadraticElementDlg::ClickOnCancel() void SMESHGUI_AddQuadraticElementDlg::reject()
{ {
mySelectionMgr->clearSelected(); mySelectionMgr->clearSelected();
mySimulation->SetVisibility(false); mySimulation->SetVisibility(false);
@ -819,7 +819,7 @@ void SMESHGUI_AddQuadraticElementDlg::ClickOnCancel()
aViewWindow->SetSelectionMode( ActorSelection ); aViewWindow->SetSelectionMode( ActorSelection );
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -1134,26 +1134,6 @@ void SMESHGUI_AddQuadraticElementDlg::enterEvent (QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_AddQuadraticElementDlg::closeEvent (QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=================================================================================
// function : hideEvent()
// purpose : caused by ESC key
//=================================================================================
void SMESHGUI_AddQuadraticElementDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : onReverse() // function : onReverse()
// purpose : // purpose :

View File

@ -73,8 +73,6 @@ private:
typedef QList<SMESH::SMESH_GroupBase_var> GrpList; typedef QList<SMESH::SMESH_GroupBase_var> GrpList;
void Init(); void Init();
void closeEvent( QCloseEvent* );
void hideEvent( QHideEvent* ); /* ESC key */
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
void displaySimulation(); void displaySimulation();
@ -128,6 +126,9 @@ private:
QString myHelpFileName; QString myHelpFileName;
protected slots:
virtual void reject();
private slots: private slots:
void onTextChange( const QString& ); void onTextChange( const QString& );
void onCellTextChange( int, int ); void onCellTextChange( int, int );
@ -135,7 +136,6 @@ private slots:
void onCellDoubleClicked( int, int ); void onCellDoubleClicked( int, int );
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
void ClickOnApply(); void ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetCurrentSelection(); void SetCurrentSelection();

View File

@ -212,7 +212,7 @@ void SMESHGUI_BuildCompoundDlg::Init()
// signals and slots connections // signals and slots connections
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
@ -223,7 +223,7 @@ void SMESHGUI_BuildCompoundDlg::Init()
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(reject()));
LineEditName->setText(GetDefaultName(tr("COMPOUND_MESH"))); LineEditName->setText(GetDefaultName(tr("COMPOUND_MESH")));
LineEditMeshes->setFocus(); LineEditMeshes->setFocus();
@ -366,20 +366,20 @@ void SMESHGUI_BuildCompoundDlg::ClickOnOk()
{ {
setIsApplyAndClose( true ); setIsApplyAndClose( true );
if (ClickOnApply()) if (ClickOnApply())
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_BuildCompoundDlg::ClickOnCancel() void SMESHGUI_BuildCompoundDlg::reject()
{ {
//mySelectionMgr->clearSelected(); //mySelectionMgr->clearSelected();
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -480,27 +480,6 @@ void SMESHGUI_BuildCompoundDlg::enterEvent( QEvent* )
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_BuildCompoundDlg::closeEvent( QCloseEvent* )
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
//function : hideEvent
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_BuildCompoundDlg::hideEvent( QHideEvent* )
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : keyPressEvent() // function : keyPressEvent()
// purpose : // purpose :

View File

@ -68,9 +68,7 @@ public:
private: private:
void Init(); void Init();
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
bool isValid(); bool isValid();
@ -115,9 +113,11 @@ private:
bool myIsApplyAndClose; bool myIsApplyAndClose;
protected slots:
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SelectionIntoArgument(); void SelectionIntoArgument();

View File

@ -479,12 +479,12 @@ SMESHGUI_ClippingDlg::SMESHGUI_ClippingDlg( SMESHGUI* theModule, SVTK_ViewWindow
connect(PreviewCheckBox, SIGNAL(toggled(bool)), this, SLOT(OnPreviewToggle(bool))); connect(PreviewCheckBox, SIGNAL(toggled(bool)), this, SLOT(OnPreviewToggle(bool)));
connect(AutoApplyCheckBox, SIGNAL(toggled(bool)), this, SLOT(onAutoApply(bool))); connect(AutoApplyCheckBox, SIGNAL(toggled(bool)), this, SLOT(onAutoApply(bool)));
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
/* to close dialog if study frame change */ /* to close dialog if study frame change */
connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalStudyFrameChanged()), this, SLOT(reject()));
this->show(); this->show();
} }
@ -589,16 +589,17 @@ void SMESHGUI_ClippingDlg::ClickOnApply()
void SMESHGUI_ClippingDlg::ClickOnOk() void SMESHGUI_ClippingDlg::ClickOnOk()
{ {
ClickOnApply(); ClickOnApply();
ClickOnCancel(); reject();
} }
//======================================================================= //=======================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//======================================================================= //=======================================================================
void SMESHGUI_ClippingDlg::ClickOnCancel() void SMESHGUI_ClippingDlg::reject()
{ {
close(); //here we can insert actions to do at close.
QDialog::reject();
} }
//================================================================================= //=================================================================================

View File

@ -192,6 +192,9 @@ private:
bool myIsSelectPlane; bool myIsSelectPlane;
QString myHelpFileName; QString myHelpFileName;
protected slots:
virtual void reject();
public slots: public slots:
void onSelectPlane( int ); void onSelectPlane( int );
void ClickOnNew(); void ClickOnNew();
@ -203,7 +206,6 @@ public slots:
void OnPreviewToggle( bool ); void OnPreviewToggle( bool );
void onAutoApply(bool); void onAutoApply(bool);
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
void ClickOnApply(); void ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
}; };

View File

@ -227,7 +227,7 @@ SMESHGUI_CopyMeshDlg::SMESHGUI_CopyMeshDlg( SMESHGUI* theModule )
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
@ -236,7 +236,7 @@ SMESHGUI_CopyMeshDlg::SMESHGUI_CopyMeshDlg( SMESHGUI* theModule )
connect(mySelectionMgr, SIGNAL (currentSelectionChanged()), connect(mySelectionMgr, SIGNAL (currentSelectionChanged()),
this, SLOT (SelectionIntoArgument())); this, SLOT (SelectionIntoArgument()));
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()),/* to close dialog if study change */ connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()),/* to close dialog if study change */
this, SLOT (ClickOnCancel())); this, SLOT (reject()));
connect(myLineEditElements, SIGNAL(textChanged(const QString&)), connect(myLineEditElements, SIGNAL(textChanged(const QString&)),
this, SLOT (onTextChange(const QString&))); this, SLOT (onTextChange(const QString&)));
@ -369,14 +369,14 @@ void SMESHGUI_CopyMeshDlg::ClickOnOk()
{ {
setIsApplyAndClose( true ); setIsApplyAndClose( true );
if( ClickOnApply() ) if( ClickOnApply() )
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_CopyMeshDlg::ClickOnCancel() void SMESHGUI_CopyMeshDlg::reject()
{ {
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
if ( mySelectionMgr ) if ( mySelectionMgr )
@ -384,7 +384,7 @@ void SMESHGUI_CopyMeshDlg::ClickOnCancel()
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode( ActorSelection ); aViewWindow->SetSelectionMode( ActorSelection );
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -618,26 +618,6 @@ void SMESHGUI_CopyMeshDlg::enterEvent (QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_CopyMeshDlg::closeEvent (QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
//function : hideEvent
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_CopyMeshDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : keyPressEvent() // function : keyPressEvent()
// purpose : // purpose :

View File

@ -65,9 +65,7 @@ public:
private: private:
void Init( bool = true ); void Init( bool = true );
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
int GetConstructorId(); int GetConstructorId();
void setNewMeshName(); void setNewMeshName();
@ -114,9 +112,11 @@ private:
bool myIsApplyAndClose; bool myIsApplyAndClose;
protected slots:
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SelectionIntoArgument(); void SelectionIntoArgument();

View File

@ -230,7 +230,7 @@ QWidget* SMESHGUI_CreatePatternDlg::createButtonFrame( QWidget* theParent )
aLay->addWidget( myHelpBtn ); aLay->addWidget( myHelpBtn );
connect( myOkBtn, SIGNAL( clicked() ), this, SLOT( onOk() ) ); connect( myOkBtn, SIGNAL( clicked() ), this, SLOT( onOk() ) );
connect( myCloseBtn, SIGNAL( clicked() ), this, SLOT( onClose() ) ); connect( myCloseBtn, SIGNAL( clicked() ), this, SLOT( reject() ) );
connect( mySaveBtn, SIGNAL( clicked() ), this, SLOT( onSave() ) ); connect( mySaveBtn, SIGNAL( clicked() ), this, SLOT( onSave() ) );
connect( myHelpBtn, SIGNAL( clicked() ), this, SLOT( onHelp() ) ); connect( myHelpBtn, SIGNAL( clicked() ), this, SLOT( onHelp() ) );
@ -279,7 +279,7 @@ void SMESHGUI_CreatePatternDlg::Init( const int theType )
connect( mySMESHGUI, SIGNAL( SignalDeactivateActiveDialog() ), connect( mySMESHGUI, SIGNAL( SignalDeactivateActiveDialog() ),
this, SLOT( onDeactivate() ) ); this, SLOT( onDeactivate() ) );
connect( mySMESHGUI, SIGNAL( SignalCloseAllDialogs() ), connect( mySMESHGUI, SIGNAL( SignalCloseAllDialogs() ),
this, SLOT( onClose() ) ); this, SLOT( reject() ) );
mySwitch2d->setEnabled( theType == Type_2d ); mySwitch2d->setEnabled( theType == Type_2d );
mySwitch3d->setEnabled( theType == Type_3d ); mySwitch3d->setEnabled( theType == Type_3d );
@ -482,17 +482,17 @@ void SMESHGUI_CreatePatternDlg::onOk()
} }
//======================================================================= //=======================================================================
// function : onClose() // function : reject()
// purpose : SLOT called when "Close" button pressed. Close dialog // purpose : SLOT called when "Close" button pressed. Close dialog
//======================================================================= //=======================================================================
void SMESHGUI_CreatePatternDlg::onClose() void SMESHGUI_CreatePatternDlg::reject()
{ {
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ) ) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ) )
aViewWindow->SetSelectionMode( ActorSelection ); aViewWindow->SetSelectionMode( ActorSelection );
disconnect( mySelectionMgr, 0, this, 0 ); disconnect( mySelectionMgr, 0, this, 0 );
disconnect( mySMESHGUI, 0, this, 0 ); disconnect( mySMESHGUI, 0, this, 0 );
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
emit Close(); emit Close();
} }
@ -648,15 +648,6 @@ void SMESHGUI_CreatePatternDlg::enterEvent( QEvent* )
} }
} }
//=================================================================================
// function : closeEvent()
// purpose : Close dialog box
//=================================================================================
void SMESHGUI_CreatePatternDlg::closeEvent( QCloseEvent* )
{
onClose();
}
//======================================================================= //=======================================================================
// function : onSelBtnClicked() // function : onSelBtnClicked()
// purpose : SLOT. Called when -> button clicked. // purpose : SLOT. Called when -> button clicked.

View File

@ -74,14 +74,13 @@ signals:
void Close(); void Close();
private: private:
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
private slots: private slots:
void onOk(); void onOk();
void onSave(); void onSave();
void onClose(); void reject();
void onHelp(); void onHelp();
void onDeactivate(); void onDeactivate();

View File

@ -335,7 +335,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::Init()
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL( clicked() ), SLOT( ClickOnOk() ) ); connect(buttonOk, SIGNAL( clicked() ), SLOT( ClickOnOk() ) );
connect(buttonCancel, SIGNAL( clicked() ), SLOT( ClickOnCancel() ) ); connect(buttonCancel, SIGNAL( clicked() ), SLOT( reject() ) );
connect(buttonApply, SIGNAL( clicked() ), SLOT( ClickOnApply() ) ); connect(buttonApply, SIGNAL( clicked() ), SLOT( ClickOnApply() ) );
connect(buttonHelp, SIGNAL( clicked() ), SLOT( ClickOnHelp() ) ); connect(buttonHelp, SIGNAL( clicked() ), SLOT( ClickOnHelp() ) );
@ -351,7 +351,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::Init()
connect( mySelectionMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) ); connect( mySelectionMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( SelectionIntoArgument() ) );
connect( Preview, SIGNAL(toggled(bool)), this, SLOT(ClickOnPreview(bool))); connect( Preview, SIGNAL(toggled(bool)), this, SLOT(ClickOnPreview(bool)));
/* to close dialog if study change */ /* to close dialog if study change */
connect( mySMESHGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( ClickOnCancel() ) ); connect( mySMESHGUI, SIGNAL ( SignalCloseAllDialogs() ), this, SLOT( reject() ) );
ConstructorsClicked(0); ConstructorsClicked(0);
SelectionIntoArgument(); SelectionIntoArgument();
@ -589,15 +589,15 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnOk()
{ {
if(checkEditLine(false) == -1) {return;} if(checkEditLine(false) == -1) {return;}
ClickOnApply(); ClickOnApply();
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnCancel() void SMESHGUI_CreatePolyhedralVolumeDlg::reject()
{ {
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
//SALOME_ListIO aList; //SALOME_ListIO aList;
@ -608,7 +608,7 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::ClickOnCancel()
aViewWindow->SetSelectionMode( ActorSelection ); aViewWindow->SetSelectionMode( ActorSelection );
disconnect( mySelectionMgr, 0, this, 0 ); disconnect( mySelectionMgr, 0, this, 0 );
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -1037,30 +1037,6 @@ void SMESHGUI_CreatePolyhedralVolumeDlg::enterEvent(QEvent* e)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_CreatePolyhedralVolumeDlg::closeEvent( QCloseEvent* e )
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
//function : hideEvent
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_CreatePolyhedralVolumeDlg::hideEvent ( QHideEvent * e )
{
if ( !isMinimized() )
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : GetConstructorId() // function : GetConstructorId()
// purpose : // purpose :

View File

@ -72,9 +72,7 @@ private:
typedef QList<SMESH::SMESH_GroupBase_var> GrpList; typedef QList<SMESH::SMESH_GroupBase_var> GrpList;
void Init(); void Init();
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
int GetConstructorId(); int GetConstructorId();
void displaySimulation(); void displaySimulation();
@ -125,11 +123,13 @@ public slots:
void onAdd(); void onAdd();
void onRemove(); void onRemove();
protected slots:
virtual void reject();
private slots: private slots:
void ConstructorsClicked( int ); void ConstructorsClicked( int );
void ClickOnPreview( bool ); void ClickOnPreview( bool );
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
void ClickOnApply(); void ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -146,7 +146,7 @@ QWidget* SMESHGUI_DeleteGroupDlg::createButtonFrame (QWidget* theParent)
// connect signals and slots // connect signals and slots
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk())); connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose())); connect(myCloseBtn, SIGNAL(clicked()), SLOT(reject()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply())); connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp())); connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
@ -173,7 +173,7 @@ void SMESHGUI_DeleteGroupDlg::Init ()
// selection and SMESHGUI // selection and SMESHGUI
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
// set selection mode // set selection mode
mySelectionMgr->installFilter(new SMESH_TypeFilter(SMESH::GROUP)); mySelectionMgr->installFilter(new SMESH_TypeFilter(SMESH::GROUP));
@ -239,14 +239,14 @@ bool SMESHGUI_DeleteGroupDlg::onApply()
void SMESHGUI_DeleteGroupDlg::onOk() void SMESHGUI_DeleteGroupDlg::onOk()
{ {
if (onApply()) if (onApply())
onClose(); reject();
} }
//================================================================================= //=================================================================================
// function : onClose() // function : reject()
// purpose : SLOT called when "Close" button pressed. Close dialog // purpose : SLOT called when "Close" button pressed. Close dialog
//================================================================================= //=================================================================================
void SMESHGUI_DeleteGroupDlg::onClose() void SMESHGUI_DeleteGroupDlg::reject()
{ {
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection); aViewWindow->SetSelectionMode(ActorSelection);
@ -254,7 +254,7 @@ void SMESHGUI_DeleteGroupDlg::onClose()
disconnect(mySMESHGUI, 0, this, 0); disconnect(mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -334,15 +334,6 @@ void SMESHGUI_DeleteGroupDlg::enterEvent (QEvent*)
mySelectionMgr->installFilter(new SMESH_TypeFilter (SMESH::GROUP)); mySelectionMgr->installFilter(new SMESH_TypeFilter (SMESH::GROUP));
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_DeleteGroupDlg::closeEvent (QCloseEvent*)
{
onClose();
}
//================================================================================= //=================================================================================
// function : keyPressEvent() // function : keyPressEvent()
// purpose : // purpose :

View File

@ -59,14 +59,15 @@ public:
void Init (); void Init ();
private: private:
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
protected slots:
virtual void reject();
private slots: private slots:
void onOk(); void onOk();
bool onApply(); bool onApply();
void onClose();
void onHelp(); void onHelp();
void onDeactivate(); void onDeactivate();

View File

@ -214,14 +214,14 @@ SMESHGUI_DuplicateNodesDlg::SMESHGUI_DuplicateNodesDlg( SMESHGUI* theModule )
connect(mySelectButton3, SIGNAL (clicked()), this, SLOT(onEditCurrentArgument())); connect(mySelectButton3, SIGNAL (clicked()), this, SLOT(onEditCurrentArgument()));
connect(myButtonOk, SIGNAL(clicked()), this, SLOT(onOk())); connect(myButtonOk, SIGNAL(clicked()), this, SLOT(onOk()));
connect(myButtonClose, SIGNAL(clicked()), this, SLOT(onClose())); connect(myButtonClose, SIGNAL(clicked()), this, SLOT(reject()));
connect(myButtonApply, SIGNAL(clicked()), this, SLOT(onApply())); connect(myButtonApply, SIGNAL(clicked()), this, SLOT(onApply()));
connect(myButtonHelp, SIGNAL(clicked()), this, SLOT(onHelp())); connect(myButtonHelp, SIGNAL(clicked()), this, SLOT(onHelp()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionChanged())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionChanged()));
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(onDeactivate())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(onDeactivate()));
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(onClose())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
} }
/*! /*!
@ -425,19 +425,19 @@ bool SMESHGUI_DuplicateNodesDlg::onApply()
void SMESHGUI_DuplicateNodesDlg::onOk() void SMESHGUI_DuplicateNodesDlg::onOk()
{ {
if (onApply()) if (onApply())
onClose(); reject();
} }
/*! /*!
\brief SLOT called to close the dialog. \brief SLOT called to close the dialog.
*/ */
void SMESHGUI_DuplicateNodesDlg::onClose() void SMESHGUI_DuplicateNodesDlg::reject()
{ {
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
disconnect(mySMESHGUI, 0, this, 0); disconnect(mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
reject(); QDialog::reject();
} }
/*! /*!
@ -575,15 +575,6 @@ void SMESHGUI_DuplicateNodesDlg::enterEvent (QEvent*)
} }
} }
/*!
\brief Receive close events.
Reimplemented from QWidget class.
*/
void SMESHGUI_DuplicateNodesDlg::closeEvent (QCloseEvent*)
{
onClose();
}
/*! /*!
\brief Receive key press events. \brief Receive key press events.
Reimplemented from QWidget class. Reimplemented from QWidget class.

View File

@ -65,15 +65,16 @@ private:
bool isValid(); bool isValid();
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
protected slots:
virtual void reject();
private slots: private slots:
void onConstructorsClicked( int ); void onConstructorsClicked( int );
void onOk(); void onOk();
void onClose();
bool onApply(); bool onApply();
void onHelp(); void onHelp();

View File

@ -305,7 +305,7 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule)
/***************************************************************/ /***************************************************************/
// signals and slots connections // signals and slots connections
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
@ -326,7 +326,7 @@ SMESHGUI_ExtrusionDlg::SMESHGUI_ExtrusionDlg (SMESHGUI* theModule)
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(reject()));
connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool))); connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool)));
@ -664,16 +664,28 @@ bool SMESHGUI_ExtrusionDlg::ClickOnApply()
void SMESHGUI_ExtrusionDlg::ClickOnOk() void SMESHGUI_ExtrusionDlg::ClickOnOk()
{ {
if (ClickOnApply()) if (ClickOnApply())
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : Called when dialog box is closed // purpose : Called when dialog box is closed
//================================================================================= //=================================================================================
void SMESHGUI_ExtrusionDlg::ClickOnCancel() void SMESHGUI_ExtrusionDlg::reject()
{ {
reject(); disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters();
//mySelectionMgr->clearSelected();
if (SMESH::GetCurrentVtkView()) {
SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters
SMESH::SetPointRepresentation(false);
SMESH::SetPickable();
}
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection);
mySMESHGUI->ResetState();
QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -998,32 +1010,6 @@ void SMESHGUI_ExtrusionDlg::enterEvent (QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_ExtrusionDlg::closeEvent( QCloseEvent* )
{
/* same than click on cancel button */
disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters();
//mySelectionMgr->clearSelected();
if (SMESH::GetCurrentVtkView()) {
SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters
SMESH::SetPointRepresentation(false);
SMESH::SetPickable();
}
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection);
mySMESHGUI->ResetState();
}
void SMESHGUI_ExtrusionDlg::reject()
{
QDialog::reject();
close();
}
//================================================================================= //=================================================================================
// function : onSelectMesh() // function : onSelectMesh()
// purpose : // purpose :

View File

@ -68,12 +68,9 @@ public:
SMESHGUI_ExtrusionDlg( SMESHGUI* ); SMESHGUI_ExtrusionDlg( SMESHGUI* );
~SMESHGUI_ExtrusionDlg(); ~SMESHGUI_ExtrusionDlg();
void reject();
private: private:
void Init( bool = true ); void Init( bool = true );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void closeEvent( QCloseEvent* );
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
int GetConstructorId(); int GetConstructorId();
void getExtrusionVector(SMESH::DirStruct& aVector); void getExtrusionVector(SMESH::DirStruct& aVector);
@ -147,14 +144,14 @@ private:
SMESHGUI_FilterDlg* myFilterDlg; SMESHGUI_FilterDlg* myFilterDlg;
protected slots: protected slots:
virtual void onDisplaySimulation( bool ); virtual void onDisplaySimulation( bool );
virtual void reject();
private slots: private slots:
void ConstructorsClicked( int ); void ConstructorsClicked( int );
void CheckIsEnable(); void CheckIsEnable();
void ClickOnOk(); void ClickOnOk();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnCancel();
void ClickOnHelp(); void ClickOnHelp();
void ClickOnRadio(); void ClickOnRadio();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -2653,7 +2653,7 @@ QWidget* SMESHGUI_FilterDlg::createButtonFrame (QWidget* theParent)
aLay->addWidget(myButtons[ BTN_Help ]); aLay->addWidget(myButtons[ BTN_Help ]);
connect(myButtons[ BTN_OK ], SIGNAL(clicked()), SLOT(onOk())); connect(myButtons[ BTN_OK ], SIGNAL(clicked()), SLOT(onOk()));
connect(myButtons[ BTN_Close ], SIGNAL(clicked()), SLOT(onClose())); connect(myButtons[ BTN_Close ], SIGNAL(clicked()), SLOT(reject()));
connect(myButtons[ BTN_Apply ], SIGNAL(clicked()), SLOT(onApply())); connect(myButtons[ BTN_Apply ], SIGNAL(clicked()), SLOT(onApply()));
connect(myButtons[ BTN_Help ], SIGNAL(clicked()), SLOT(onHelp())); connect(myButtons[ BTN_Help ], SIGNAL(clicked()), SLOT(onHelp()));
@ -2718,7 +2718,7 @@ void SMESHGUI_FilterDlg::Init (const QList<int>& theTypes, const bool setInViewe
mySMESHGUI->SetActiveDialogBox((QDialog*)this); mySMESHGUI->SetActiveDialogBox((QDialog*)this);
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
updateMainButtons(); updateMainButtons();
updateSelection(); updateSelection();
@ -2768,10 +2768,10 @@ void SMESHGUI_FilterDlg::onOk()
} }
//======================================================================= //=======================================================================
// name : SMESHGUI_FilterDlg::onClose // name : SMESHGUI_FilterDlg::reject
// Purpose : SLOT called when "Close" button pressed. Close dialog // Purpose : SLOT called when "Close" button pressed. Close dialog
//======================================================================= //=======================================================================
void SMESHGUI_FilterDlg::onClose() void SMESHGUI_FilterDlg::reject()
{ {
// Restore previously selected object // Restore previously selected object
if (mySelectionMgr) if (mySelectionMgr)
@ -2799,8 +2799,7 @@ void SMESHGUI_FilterDlg::onClose()
disconnect(mySMESHGUI, 0, this, 0); disconnect(mySMESHGUI, 0, this, 0);
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
return;
} }
//================================================================================= //=================================================================================
@ -2848,15 +2847,6 @@ void SMESHGUI_FilterDlg::enterEvent (QEvent*)
setEnabled(true); setEnabled(true);
} }
//=======================================================================
// name : closeEvent()
// Purpose :
//=======================================================================
void SMESHGUI_FilterDlg::closeEvent (QCloseEvent*)
{
onClose();
}
//======================================================================= //=======================================================================
// name : SMESHGUI_FilterDlg::getIdsFromWg // name : SMESHGUI_FilterDlg::getIdsFromWg
// Purpose : Retrieve list of ids from given widget // Purpose : Retrieve list of ids from given widget

View File

@ -238,11 +238,13 @@ signals:
void Accepted(); void Accepted();
protected slots:
virtual void reject();
private slots: private slots:
void onOk(); void onOk();
bool onApply(); bool onApply();
void onClose();
void onHelp(); void onHelp();
void onDeactivate(); void onDeactivate();
void onSelectionDone(); void onSelectionDone();
@ -253,7 +255,6 @@ private:
void construct( const QList<int>& ); void construct( const QList<int>& );
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );

View File

@ -269,7 +269,7 @@ QWidget* SMESHGUI_FilterLibraryDlg::createButtonFrame (QWidget* theParent)
aLay->addWidget(myButtons[ BTN_Help ]); aLay->addWidget(myButtons[ BTN_Help ]);
connect(myButtons[ BTN_OK ], SIGNAL(clicked()), SLOT(onOk())); connect(myButtons[ BTN_OK ], SIGNAL(clicked()), SLOT(onOk()));
connect(myButtons[ BTN_Close ], SIGNAL(clicked()), SLOT(onClose())); connect(myButtons[ BTN_Close ], SIGNAL(clicked()), SLOT(reject()));
connect(myButtons[ BTN_Apply ], SIGNAL(clicked()), SLOT(onApply())); connect(myButtons[ BTN_Apply ], SIGNAL(clicked()), SLOT(onApply()));
connect(myButtons[ BTN_Help ], SIGNAL(clicked()), SLOT(onHelp())); connect(myButtons[ BTN_Help ], SIGNAL(clicked()), SLOT(onHelp()));
@ -337,7 +337,7 @@ void SMESHGUI_FilterLibraryDlg::Init (const QList<int>& theTypes,
setEnabled(true); setEnabled(true);
connect( mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); connect( mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect( mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose())); connect( mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
if (myMode == ADD_TO) if (myMode == ADD_TO)
{ {
@ -467,22 +467,18 @@ bool SMESHGUI_FilterLibraryDlg::onApply()
void SMESHGUI_FilterLibraryDlg::onOk() void SMESHGUI_FilterLibraryDlg::onOk()
{ {
if (onApply()) if (onApply())
{ reject();
disconnect( mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState();
accept();
}
} }
//======================================================================= //=======================================================================
// name : SMESHGUI_FilterLibraryDlg::onClose // name : SMESHGUI_FilterLibraryDlg::reject
// Purpose : SLOT called when "Close" button pressed. Close dialog // Purpose : SLOT called when "Close" button pressed. Close dialog
//======================================================================= //=======================================================================
void SMESHGUI_FilterLibraryDlg::onClose() void SMESHGUI_FilterLibraryDlg::reject()
{ {
disconnect( mySMESHGUI, 0, this, 0); disconnect( mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -527,15 +523,6 @@ void SMESHGUI_FilterLibraryDlg::enterEvent(QEvent*)
setEnabled(true); setEnabled(true);
} }
//=================================================================================
// function : closeEvent()
// purpose : Close dialog
//=================================================================================
void SMESHGUI_FilterLibraryDlg::closeEvent(QCloseEvent* e)
{
onClose();
}
//======================================================================= //=======================================================================
// name : SMESHGUI_FilterLibraryDlg::getFileName // name : SMESHGUI_FilterLibraryDlg::getFileName
// Purpose : Get file name // Purpose : Get file name

View File

@ -77,14 +77,15 @@ public:
void SetTable( const SMESHGUI_FilterTable* ); void SetTable( const SMESHGUI_FilterTable* );
private: private:
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
protected slots:
virtual void reject();
private slots: private slots:
void onOk(); void onOk();
bool onApply(); bool onApply();
void onClose();
void onHelp(); void onHelp();
void onDeactivate(); void onDeactivate();

View File

@ -439,7 +439,7 @@ void SMESHGUI_GroupDlg::initDialog( bool create)
connect(myOKBtn, SIGNAL(clicked()), this, SLOT(onOK())); connect(myOKBtn, SIGNAL(clicked()), this, SLOT(onOK()));
connect(myApplyBtn, SIGNAL(clicked()), this, SLOT(onApply())); connect(myApplyBtn, SIGNAL(clicked()), this, SLOT(onApply()));
connect(myCloseBtn, SIGNAL(clicked()), this, SLOT(onClose())); connect(myCloseBtn, SIGNAL(clicked()), this, SLOT(reject()));
connect(myHelpBtn, SIGNAL(clicked()), this, SLOT(onHelp())); connect(myHelpBtn, SIGNAL(clicked()), this, SLOT(onHelp()));
/* Init selection */ /* Init selection */
@ -458,7 +458,7 @@ void SMESHGUI_GroupDlg::initDialog( bool create)
myGeomFilter = new GEOM_SelectionFilter( aStudy, true ); myGeomFilter = new GEOM_SelectionFilter( aStudy, true );
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(onDeactivate())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(onDeactivate()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(onClose())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(reject()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(onObjectSelectionChanged())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(onObjectSelectionChanged()));
connect(mySMESHGUI, SIGNAL(SignalVisibilityChanged()), this, SLOT(onVisibilityChanged())); connect(mySMESHGUI, SIGNAL(SignalVisibilityChanged()), this, SLOT(onVisibilityChanged()));
@ -1189,7 +1189,7 @@ void SMESHGUI_GroupDlg::onOK()
{ {
setIsApplyAndClose( true ); setIsApplyAndClose( true );
if ( onApply() ) if ( onApply() )
onClose(); reject();
setIsApplyAndClose( false ); setIsApplyAndClose( false );
} }
@ -2165,15 +2165,6 @@ void SMESHGUI_GroupDlg::onSort()
} }
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_GroupDlg::closeEvent (QCloseEvent*)
{
onClose();
}
//================================================================================= //=================================================================================
// function : onVisibilityChanged() // function : onVisibilityChanged()
// purpose : // purpose :
@ -2184,10 +2175,10 @@ void SMESHGUI_GroupDlg::onVisibilityChanged()
} }
//================================================================================= //=================================================================================
// function : SMESHGUI_GroupDlg::onClose // function : SMESHGUI_GroupDlg::reject
// purpose : SLOT called when "Close" button pressed. Close dialog // purpose : SLOT called when "Close" button pressed. Close dialog
//================================================================================= //=================================================================================
void SMESHGUI_GroupDlg::onClose() void SMESHGUI_GroupDlg::reject()
{ {
if (SMESH::GetCurrentVtkView()) { if (SMESH::GetCurrentVtkView()) {
SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters
@ -2208,7 +2199,7 @@ void SMESHGUI_GroupDlg::onClose()
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -2262,16 +2253,6 @@ void SMESHGUI_GroupDlg::enterEvent (QEvent*)
} }
} }
//=================================================================================
// function : hideEvent
// purpose : caused by ESC key
//=================================================================================
void SMESHGUI_GroupDlg::hideEvent (QHideEvent*)
{
if (!isMinimized() && !myIsBusy)
onClose();
}
//================================================================================= //=================================================================================
// function : keyPressEvent() // function : keyPressEvent()
// purpose : // purpose :

View File

@ -85,13 +85,15 @@ public slots:
void onAdd(); void onAdd();
void onRemove(); void onRemove();
protected slots:
virtual void reject();
private slots: private slots:
void onTypeChanged( int ); void onTypeChanged( int );
void onGrpTypeChanged( int ); void onGrpTypeChanged( int );
void onColorChanged( QColor ); void onColorChanged( QColor );
void onOK(); void onOK();
void onClose();
bool onApply(); bool onApply();
void onHelp(); void onHelp();
void onDeactivate(); void onDeactivate();
@ -123,9 +125,7 @@ private:
void init( SMESH::SMESH_Mesh_ptr ); void init( SMESH::SMESH_Mesh_ptr );
void init( SMESH::SMESH_GroupBase_ptr, void init( SMESH::SMESH_GroupBase_ptr,
const bool theIsConvert = false ); const bool theIsConvert = false );
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
void setSelectionMode( int ); void setSelectionMode( int );
void updateButtons(); void updateButtons();

View File

@ -204,7 +204,7 @@ QWidget* SMESHGUI_GroupOpDlg::createButtonFrame (QWidget* theParent)
// connect signals and slots // connect signals and slots
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk())); connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose())); connect(myCloseBtn, SIGNAL(clicked()), SLOT(reject()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply())); connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp())); connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
@ -228,7 +228,7 @@ void SMESHGUI_GroupOpDlg::Init()
// selection and SMESHGUI // selection and SMESHGUI
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(ClickOnClose())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
// set selection mode // set selection mode
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
@ -315,14 +315,14 @@ void SMESHGUI_GroupOpDlg::onOk()
{ {
setIsApplyAndClose( true ); setIsApplyAndClose( true );
if ( onApply() ) if ( onApply() )
onClose(); reject();
setIsApplyAndClose( false ); setIsApplyAndClose( false );
} }
/*! /*!
\brief SLOT called when "Close" button pressed closes dialog \brief SLOT called when dialog is closed
*/ */
void SMESHGUI_GroupOpDlg::onClose() void SMESHGUI_GroupOpDlg::reject()
{ {
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection); aViewWindow->SetSelectionMode(ActorSelection);
@ -331,7 +331,7 @@ void SMESHGUI_GroupOpDlg::onClose()
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
reset(); reset();
reject(); QDialog::reject();
} }
/*! /*!
@ -467,14 +467,6 @@ void SMESHGUI_GroupOpDlg::enterEvent(QEvent*)
mySelectionMgr->installFilter(new SMESH_TypeFilter (SMESH::GROUP)); mySelectionMgr->installFilter(new SMESH_TypeFilter (SMESH::GROUP));
} }
/*!
\brief Provides reaction on close event, closes the dialog box
*/
void SMESHGUI_GroupOpDlg::closeEvent(QCloseEvent*)
{
onClose();
}
/*! /*!
\brief Resets state of the dialog, initializes its fields with default value, etc. \brief Resets state of the dialog, initializes its fields with default value, etc.
Usually called by onApply() slot to reinitialize dialog fields. This virtual method Usually called by onApply() slot to reinitialize dialog fields. This virtual method

View File

@ -92,13 +92,14 @@ protected:
bool isApplyAndClose() const; bool isApplyAndClose() const;
private: private:
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
protected slots:
virtual void reject();
private slots: private slots:
void onOk(); void onOk();
void onClose();
void onHelp(); void onHelp();
void onDeactivate(); void onDeactivate();

View File

@ -552,7 +552,7 @@ void SMESHGUI_MergeDlg::Init()
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
@ -571,7 +571,7 @@ void SMESHGUI_MergeDlg::Init()
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
// Init Mesh field from selection // Init Mesh field from selection
SelectionIntoArgument(); SelectionIntoArgument();
@ -697,14 +697,14 @@ bool SMESHGUI_MergeDlg::ClickOnApply()
void SMESHGUI_MergeDlg::ClickOnOk() void SMESHGUI_MergeDlg::ClickOnOk()
{ {
if (ClickOnApply()) if (ClickOnApply())
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_MergeDlg::ClickOnCancel() void SMESHGUI_MergeDlg::reject()
{ {
myIdPreview->SetPointsLabeled(false); myIdPreview->SetPointsLabeled(false);
SMESH::SetPointRepresentation(false); SMESH::SetPointRepresentation(false);
@ -718,7 +718,7 @@ void SMESHGUI_MergeDlg::ClickOnCancel()
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection); aViewWindow->SetSelectionMode(ActorSelection);
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -1226,26 +1226,6 @@ void SMESHGUI_MergeDlg::enterEvent(QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_MergeDlg::closeEvent(QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
//function : hideEvent
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_MergeDlg::hideEvent (QHideEvent *)
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : keyPressEvent() // function : keyPressEvent()
// purpose : // purpose :

View File

@ -78,9 +78,7 @@ public:
private: private:
void Init(); void Init();
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
void onEditGroup(); void onEditGroup();
@ -150,9 +148,11 @@ private:
QString myEntry; QString myEntry;
GrpList myGroups; GrpList myGroups;
protected slots:
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void updateControls(); void updateControls();

View File

@ -352,7 +352,7 @@ QWidget* SMESHGUI_MeshPatternDlg::createButtonFrame (QWidget* theParent)
aLay->addWidget(myHelpBtn); aLay->addWidget(myHelpBtn);
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk())); connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose())); connect(myCloseBtn, SIGNAL(clicked()), SLOT(reject()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply())); connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp())); connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
@ -390,7 +390,7 @@ void SMESHGUI_MeshPatternDlg::Init()
// selection and SMESHGUI // selection and SMESHGUI
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
myTypeGrp->button(Type_2d)->setChecked(true); myTypeGrp->button(Type_2d)->setChecked(true);
onTypeChanged(Type_2d); onTypeChanged(Type_2d);
@ -538,14 +538,14 @@ bool SMESHGUI_MeshPatternDlg::onApply()
void SMESHGUI_MeshPatternDlg::onOk() void SMESHGUI_MeshPatternDlg::onOk()
{ {
if (onApply()) if (onApply())
onClose(); reject();
} }
//======================================================================= //=======================================================================
// name : SMESHGUI_MeshPatternDlg::onClose // name : SMESHGUI_MeshPatternDlg::reject
// Purpose : SLOT called when "Close" button pressed. Close dialog // Purpose : SLOT called when "Close" button pressed. Close dialog
//======================================================================= //=======================================================================
void SMESHGUI_MeshPatternDlg::onClose() void SMESHGUI_MeshPatternDlg::reject()
{ {
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
SMESH::SetPickable(); SMESH::SetPickable();
@ -555,7 +555,7 @@ void SMESHGUI_MeshPatternDlg::onClose()
disconnect(mySMESHGUI, 0, this, 0); disconnect(mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
erasePreview(); erasePreview();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -724,15 +724,6 @@ void SMESHGUI_MeshPatternDlg::enterEvent (QEvent*)
onTextChanged(mySelEdit[Ids]->text()); onTextChanged(mySelEdit[Ids]->text());
} }
//=======================================================================
// name : SMESHGUI_MeshPatternDlg::closeEvent
// Purpose :
//=======================================================================
void SMESHGUI_MeshPatternDlg::closeEvent (QCloseEvent*)
{
onClose();
}
//======================================================================= //=======================================================================
// name : SMESHGUI_MeshPatternDlg::onSelInputChanged // name : SMESHGUI_MeshPatternDlg::onSelInputChanged
// Purpose : SLOT. Called when -> button clicked. // Purpose : SLOT. Called when -> button clicked.

View File

@ -75,10 +75,12 @@ public:
void Init(); void Init();
protected slots:
virtual void reject();
private slots: private slots:
void onOk(); void onOk();
bool onApply(); bool onApply();
void onClose();
void onHelp(); void onHelp();
void onDeactivate(); void onDeactivate();
@ -108,7 +110,6 @@ private:
void activateSelection(); void activateSelection();
QStringList prepareFilters() const; QStringList prepareFilters() const;
QString autoExtension( const QString& ) const; QString autoExtension( const QString& ) const;
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
bool isValid( const bool = true ); bool isValid( const bool = true );

View File

@ -384,14 +384,14 @@ void SMESHGUI_MultiEditDlg::Init()
// main buttons // main buttons
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk())); connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose())); connect(myCloseBtn, SIGNAL(clicked()), SLOT(reject()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply())); connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp())); connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
// selection and SMESHGUI // selection and SMESHGUI
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
// dialog controls // dialog controls
connect(myFilterBtn, SIGNAL(clicked()), SLOT(onFilterBtn() )); connect(myFilterBtn, SIGNAL(clicked()), SLOT(onFilterBtn() ));
@ -423,7 +423,7 @@ void SMESHGUI_MultiEditDlg::Init()
void SMESHGUI_MultiEditDlg::onOk() void SMESHGUI_MultiEditDlg::onOk()
{ {
if (onApply()) if (onApply())
onClose(); reject();
} }
//======================================================================= //=======================================================================
@ -510,10 +510,10 @@ SMESH::long_array_var SMESHGUI_MultiEditDlg::getIds(SMESH::SMESH_IDSource_var& o
} }
//======================================================================= //=======================================================================
// name : SMESHGUI_MultiEditDlg::onClose // name : SMESHGUI_MultiEditDlg::reject
// Purpose : SLOT called when "Close" button pressed. Close dialog // Purpose : SLOT called when "Close" button pressed. Close dialog
//======================================================================= //=======================================================================
void SMESHGUI_MultiEditDlg::onClose() void SMESHGUI_MultiEditDlg::reject()
{ {
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection); aViewWindow->SetSelectionMode(ActorSelection);
@ -527,7 +527,7 @@ void SMESHGUI_MultiEditDlg::onClose()
//mySelectionMgr->clearSelected(); //mySelectionMgr->clearSelected();
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -646,24 +646,6 @@ void SMESHGUI_MultiEditDlg::enterEvent (QEvent*)
} }
} }
//=======================================================================
// name : SMESHGUI_MultiEditDlg::closeEvent
// Purpose :
//=======================================================================
void SMESHGUI_MultiEditDlg::closeEvent (QCloseEvent*)
{
onClose();
}
//=======================================================================
// name : SMESHGUI_MultiEditDlg::hideEvent
// Purpose : caused by ESC key
//=======================================================================
void SMESHGUI_MultiEditDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
onClose();
}
//======================================================================= //=======================================================================
// name : SMESHGUI_MultiEditDlg::onFilterBtn // name : SMESHGUI_MultiEditDlg::onFilterBtn
// Purpose : SLOT. Called when "Filter" button pressed. // Purpose : SLOT. Called when "Filter" button pressed.
@ -1259,10 +1241,10 @@ SMESHGUI_CuttingOfQuadsDlg::~SMESHGUI_CuttingOfQuadsDlg()
{ {
} }
void SMESHGUI_CuttingOfQuadsDlg::onClose() void SMESHGUI_CuttingOfQuadsDlg::reject()
{ {
erasePreview(); erasePreview();
SMESHGUI_MultiEditDlg::onClose(); SMESHGUI_MultiEditDlg::reject();
} }
bool SMESHGUI_CuttingOfQuadsDlg::process (SMESH::SMESH_MeshEditor_ptr theEditor, bool SMESHGUI_CuttingOfQuadsDlg::process (SMESH::SMESH_MeshEditor_ptr theEditor,

View File

@ -82,7 +82,7 @@ signals:
protected slots: protected slots:
void onOk(); void onOk();
virtual bool onApply(); virtual bool onApply();
virtual void onClose(); virtual void reject();
void onHelp(); void onHelp();
void onDeactivate(); void onDeactivate();
@ -102,9 +102,7 @@ protected slots:
SMESH::NumericalFunctor_ptr getNumericalFunctor(); SMESH::NumericalFunctor_ptr getNumericalFunctor();
protected: protected:
void closeEvent( QCloseEvent* );
void enterEvent( QEvent * ); void enterEvent( QEvent * );
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
QWidget* createButtonFrame( QWidget* ); QWidget* createButtonFrame( QWidget* );
QWidget* createMainFrame( QWidget*, const bool ); QWidget* createMainFrame( QWidget*, const bool );
@ -221,7 +219,7 @@ protected:
SMESH::SMESH_IDSource_ptr obj); SMESH::SMESH_IDSource_ptr obj);
protected slots: protected slots:
virtual void onClose(); virtual void reject();
void onCriterionRB(); void onCriterionRB();
void onPreviewChk(); void onPreviewChk();

View File

@ -370,7 +370,7 @@ void SMESHGUI_NodesDlg::Init()
/* signals and slots connections */ /* signals and slots connections */
connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) ); connect( buttonOk, SIGNAL( clicked() ), this, SLOT( ClickOnOk() ) );
connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( ClickOnCancel() ) ); connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) ); connect( buttonApply, SIGNAL( clicked() ), this, SLOT( ClickOnApply() ) );
connect( buttonHelp, SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) ); connect( buttonHelp, SIGNAL( clicked() ), this, SLOT( ClickOnHelp() ) );
@ -381,8 +381,8 @@ void SMESHGUI_NodesDlg::Init()
connect( mySelectionMgr, SIGNAL( currentSelectionChanged() ), SLOT( SelectionIntoArgument() ) ); connect( mySelectionMgr, SIGNAL( currentSelectionChanged() ), SLOT( SelectionIntoArgument() ) );
connect( mySMESHGUI, SIGNAL( SignalDeactivateActiveDialog() ), SLOT( DeactivateActiveDialog() ) ); connect( mySMESHGUI, SIGNAL( SignalDeactivateActiveDialog() ), SLOT( DeactivateActiveDialog() ) );
/* to close dialog if study frame change */ /* to close dialog if study frame change */
connect( mySMESHGUI, SIGNAL( SignalStudyFrameChanged() ), SLOT( ClickOnCancel() ) ); connect( mySMESHGUI, SIGNAL( SignalStudyFrameChanged() ), SLOT( reject() ) );
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
// set selection mode // set selection mode
SMESH::SetPointRepresentation( true ); SMESH::SetPointRepresentation( true );
@ -414,7 +414,7 @@ void SMESHGUI_NodesDlg::ValueChangedInSpinBox( double newValue )
void SMESHGUI_NodesDlg::ClickOnOk() void SMESHGUI_NodesDlg::ClickOnOk()
{ {
if ( ClickOnApply() ) if ( ClickOnApply() )
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
@ -539,10 +539,10 @@ bool SMESHGUI_NodesDlg::ClickOnApply()
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_NodesDlg::ClickOnCancel() void SMESHGUI_NodesDlg::reject()
{ {
disconnect( mySelectionMgr, 0, this, 0 ); disconnect( mySelectionMgr, 0, this, 0 );
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ) ) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ) )
@ -552,7 +552,7 @@ void SMESHGUI_NodesDlg::ClickOnCancel()
SMESH::SetPointRepresentation( false ); SMESH::SetPointRepresentation( false );
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -638,25 +638,6 @@ void SMESHGUI_NodesDlg::SelectionIntoArgument()
} }
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_NodesDlg::closeEvent( QCloseEvent* )
{
this->ClickOnCancel(); /* same than click on cancel button */
}
//=================================================================================
// function : hideEvent()
// purpose : caused by ESC key
//=================================================================================
void SMESHGUI_NodesDlg::hideEvent( QHideEvent* )
{
if ( !isMinimized() )
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : enterEvent() // function : enterEvent()
// purpose : to reactivate this dialog box when mouse enter onto the window // purpose : to reactivate this dialog box when mouse enter onto the window

View File

@ -79,8 +79,6 @@ private:
void Init(); void Init();
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void closeEvent( QCloseEvent* );
void hideEvent ( QHideEvent* );
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
bool isValid(); bool isValid();
@ -108,9 +106,11 @@ private:
QString myHelpFileName; QString myHelpFileName;
protected slots:
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void DeactivateActiveDialog(); void DeactivateActiveDialog();

View File

@ -435,7 +435,7 @@ SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg( SMESHGUI*
// Connect section // Connect section
connect( myOkBtn, SIGNAL( clicked() ), this, SLOT( onOk() ) ); connect( myOkBtn, SIGNAL( clicked() ), this, SLOT( onOk() ) );
connect( myApplyBtn, SIGNAL( clicked() ), this, SLOT( onApply() ) ); connect( myApplyBtn, SIGNAL( clicked() ), this, SLOT( onApply() ) );
connect( myCancelBtn, SIGNAL( clicked() ), this, SLOT( onCancel() ) ); connect( myCancelBtn, SIGNAL( clicked() ), this, SLOT( reject() ) );
connect( myHelpBtn, SIGNAL(clicked()), this, SLOT( onHelp() ) ); connect( myHelpBtn, SIGNAL(clicked()), this, SLOT( onHelp() ) );
connect( myMinEdit, SIGNAL( textChanged(const QString &) ), this, SLOT( onMinMaxChanged() ) ); connect( myMinEdit, SIGNAL( textChanged(const QString &) ), this, SLOT( onMinMaxChanged() ) );
connect( myMaxEdit, SIGNAL( textChanged(const QString &) ), this, SLOT( onMinMaxChanged() ) ); connect( myMaxEdit, SIGNAL( textChanged(const QString &) ), this, SLOT( onMinMaxChanged() ) );
@ -445,7 +445,7 @@ SMESHGUI_Preferences_ScalarBarDlg::SMESHGUI_Preferences_ScalarBarDlg( SMESHGUI*
connect( myDistributionGrp, SIGNAL( toggled(bool) ), this, SLOT(onDistributionActivated(bool)) ); connect( myDistributionGrp, SIGNAL( toggled(bool) ), this, SLOT(onDistributionActivated(bool)) );
connect( myDistribColorGrp, SIGNAL( buttonClicked( int ) ), this, SLOT( onDistributionChanged( int ) ) ); connect( myDistribColorGrp, SIGNAL( buttonClicked( int ) ), this, SLOT( onDistributionChanged( int ) ) );
connect( mySelectionMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionChanged() ) ); connect( mySelectionMgr, SIGNAL( currentSelectionChanged() ), this, SLOT( onSelectionChanged() ) );
connect( mySMESHGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( onCancel() ) ); connect( mySMESHGUI, SIGNAL( SignalCloseAllDialogs() ), this, SLOT( reject() ) );
myHelpFileName = "quality_page.html"; myHelpFileName = "quality_page.html";
} }
@ -471,7 +471,7 @@ SMESHGUI_Preferences_ScalarBarDlg::~SMESHGUI_Preferences_ScalarBarDlg()
void SMESHGUI_Preferences_ScalarBarDlg::onOk() void SMESHGUI_Preferences_ScalarBarDlg::onOk()
{ {
if ( onApply() ) if ( onApply() )
onCancel(); reject();
} }
//================================================================================================= //=================================================================================================
@ -588,14 +588,15 @@ bool SMESHGUI_Preferences_ScalarBarDlg::onApply()
//================================================================================================= //=================================================================================================
/*! /*!
* SMESHGUI_Preferences_ScalarBarDlg::onCancel * SMESHGUI_Preferences_ScalarBarDlg::reject
* *
* Cancel button slot * Cancel button slot
*/ */
//================================================================================================= //=================================================================================================
void SMESHGUI_Preferences_ScalarBarDlg::onCancel() void SMESHGUI_Preferences_ScalarBarDlg::reject()
{ {
close(); myDlg = 0;
QDialog::reject();
} }
//================================================================================================= //=================================================================================================
@ -724,19 +725,6 @@ void SMESHGUI_Preferences_ScalarBarDlg::onSelectionChanged()
myDistributionGrp->setEnabled( false ); myDistributionGrp->setEnabled( false );
} }
//=================================================================================================
/*!
* SMESHGUI_Preferences_ScalarBarDlg::closeEvent
*
* Close event handler
*/
//=================================================================================================
void SMESHGUI_Preferences_ScalarBarDlg::closeEvent( QCloseEvent* e )
{
myDlg = 0;
QDialog::closeEvent( e );
}
//================================================================================================= //=================================================================================================
/*! /*!
* SMESHGUI_Preferences_ScalarBarDlg::onMinMaxChanged * SMESHGUI_Preferences_ScalarBarDlg::onMinMaxChanged

View File

@ -64,17 +64,18 @@ public:
static void ScalarBarProperties( SMESHGUI* ); static void ScalarBarProperties( SMESHGUI* );
void closeEvent( QCloseEvent* );
void setOriginAndSize( const double, void setOriginAndSize( const double,
const double, const double,
const double, const double,
const double ); const double );
void initScalarBarFromResources(); void initScalarBarFromResources();
protected slots:
virtual void reject();
protected slots: protected slots:
void onOk(); void onOk();
bool onApply(); bool onApply();
void onCancel();
void onHelp(); void onHelp();
void onSelectionChanged(); void onSelectionChanged();
void onXYChanged(); void onXYChanged();

View File

@ -196,7 +196,7 @@ void SMESHGUI_RemoveElementsDlg::Init()
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
@ -204,7 +204,7 @@ void SMESHGUI_RemoveElementsDlg::Init()
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
connect(myEditCurrentArgument, SIGNAL(textChanged(const QString&)), connect(myEditCurrentArgument, SIGNAL(textChanged(const QString&)),
SLOT(onTextChange(const QString&))); SLOT(onTextChange(const QString&)));
@ -257,14 +257,14 @@ void SMESHGUI_RemoveElementsDlg::ClickOnApply()
void SMESHGUI_RemoveElementsDlg::ClickOnOk() void SMESHGUI_RemoveElementsDlg::ClickOnOk()
{ {
ClickOnApply(); ClickOnApply();
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_RemoveElementsDlg::ClickOnCancel() void SMESHGUI_RemoveElementsDlg::reject()
{ {
if (SMESH::GetCurrentVtkView()) if (SMESH::GetCurrentVtkView())
SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters
@ -274,7 +274,7 @@ void SMESHGUI_RemoveElementsDlg::ClickOnCancel()
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -457,26 +457,6 @@ void SMESHGUI_RemoveElementsDlg::enterEvent(QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_RemoveElementsDlg::closeEvent(QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
//function : hideEvent
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_RemoveElementsDlg::hideEvent( QHideEvent* )
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : keyPressEvent() // function : keyPressEvent()
// purpose : // purpose :

View File

@ -63,9 +63,7 @@ public:
private: private:
void Init(); void Init();
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
LightApp_SelectionMgr* mySelectionMgr; LightApp_SelectionMgr* mySelectionMgr;
@ -96,9 +94,11 @@ private:
SMESHGUI_FilterDlg* myFilterDlg; SMESHGUI_FilterDlg* myFilterDlg;
protected slots:
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
void ClickOnApply(); void ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -196,7 +196,7 @@ void SMESHGUI_RemoveNodesDlg::Init()
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
@ -204,7 +204,7 @@ void SMESHGUI_RemoveNodesDlg::Init()
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
connect(myEditCurrentArgument, SIGNAL(textChanged(const QString&)), connect(myEditCurrentArgument, SIGNAL(textChanged(const QString&)),
SLOT(onTextChange(const QString&))); SLOT(onTextChange(const QString&)));
@ -261,14 +261,14 @@ void SMESHGUI_RemoveNodesDlg::ClickOnApply()
void SMESHGUI_RemoveNodesDlg::ClickOnOk() void SMESHGUI_RemoveNodesDlg::ClickOnOk()
{ {
ClickOnApply(); ClickOnApply();
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_RemoveNodesDlg::ClickOnCancel() void SMESHGUI_RemoveNodesDlg::reject()
{ {
//mySelectionMgr->clearSelected(); //mySelectionMgr->clearSelected();
if (SMESH::GetCurrentVtkView()) { if (SMESH::GetCurrentVtkView()) {
@ -280,7 +280,7 @@ void SMESHGUI_RemoveNodesDlg::ClickOnCancel()
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -463,26 +463,6 @@ void SMESHGUI_RemoveNodesDlg::enterEvent(QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_RemoveNodesDlg::closeEvent(QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
//function : hideEvent
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_RemoveNodesDlg::hideEvent( QHideEvent* )
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : keyPressEvent() // function : keyPressEvent()
// purpose : // purpose :

View File

@ -63,9 +63,7 @@ public:
private: private:
void Init(); void Init();
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
LightApp_SelectionMgr* mySelectionMgr; LightApp_SelectionMgr* mySelectionMgr;
@ -96,9 +94,11 @@ private:
SMESHGUI_FilterDlg* myFilterDlg; SMESHGUI_FilterDlg* myFilterDlg;
protected slots:
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
void ClickOnApply(); void ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -186,7 +186,7 @@ void SMESHGUI_RenumberingDlg::Init()
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
@ -194,7 +194,7 @@ void SMESHGUI_RenumberingDlg::Init()
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
myEditCurrentArgument = LineEditMesh; myEditCurrentArgument = LineEditMesh;
LineEditMesh->setFocus(); LineEditMesh->setFocus();
@ -254,20 +254,20 @@ void SMESHGUI_RenumberingDlg::ClickOnApply()
void SMESHGUI_RenumberingDlg::ClickOnOk() void SMESHGUI_RenumberingDlg::ClickOnOk()
{ {
ClickOnApply(); ClickOnApply();
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_RenumberingDlg::ClickOnCancel() void SMESHGUI_RenumberingDlg::reject()
{ {
//mySelectionMgr->clearSelected(); //mySelectionMgr->clearSelected();
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -392,26 +392,6 @@ void SMESHGUI_RenumberingDlg::enterEvent(QEvent* e)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_RenumberingDlg::closeEvent(QCloseEvent* e)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
//function : hideEvent
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_RenumberingDlg::hideEvent (QHideEvent * e)
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : keyPressEvent() // function : keyPressEvent()
// purpose : // purpose :

View File

@ -60,9 +60,7 @@ public:
private: private:
void Init(); void Init();
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */ SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */
@ -89,9 +87,11 @@ private:
QString myHelpFileName; QString myHelpFileName;
protected slots:
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
void ClickOnApply(); void ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -323,7 +323,7 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule )
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int))); connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int)));
@ -343,7 +343,7 @@ SMESHGUI_RevolutionDlg::SMESHGUI_RevolutionDlg( SMESHGUI* theModule )
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(reject()));
connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool))); connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool)));
@ -574,21 +574,27 @@ bool SMESHGUI_RevolutionDlg::ClickOnApply()
void SMESHGUI_RevolutionDlg::ClickOnOk() void SMESHGUI_RevolutionDlg::ClickOnOk()
{ {
if( ClickOnApply() ) if( ClickOnApply() )
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_RevolutionDlg::ClickOnCancel()
{
reject();
}
void SMESHGUI_RevolutionDlg::reject() void SMESHGUI_RevolutionDlg::reject()
{ {
close(); disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters();
//mySelectionMgr->clearSelected();
if (SMESH::GetCurrentVtkView()) {
SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters
SMESH::SetPointRepresentation(false);
}
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection);
mySMESHGUI->ResetState();
QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -910,25 +916,6 @@ void SMESHGUI_RevolutionDlg::enterEvent (QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_RevolutionDlg::closeEvent (QCloseEvent*)
{
/* same than click on cancel button */
disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters();
//mySelectionMgr->clearSelected();
if (SMESH::GetCurrentVtkView()) {
SMESH::RemoveFilters(); // PAL6938 -- clean all mesh entity filters
SMESH::SetPointRepresentation(false);
}
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection);
mySMESHGUI->ResetState();
}
//======================================================================= //=======================================================================
//function : onSelectMesh //function : onSelectMesh
//purpose : //purpose :

View File

@ -74,13 +74,10 @@ public:
SMESHGUI_RevolutionDlg( SMESHGUI* ); SMESHGUI_RevolutionDlg( SMESHGUI* );
~SMESHGUI_RevolutionDlg(); ~SMESHGUI_RevolutionDlg();
void reject();
private: private:
enum {NONE_SELECT, POINT_SELECT, FACE_SELECT}; enum {NONE_SELECT, POINT_SELECT, FACE_SELECT};
void Init( bool = true); void Init( bool = true);
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
int GetConstructorId(); int GetConstructorId();
@ -163,11 +160,11 @@ private:
protected slots: protected slots:
virtual void onDisplaySimulation( bool ); virtual void onDisplaySimulation( bool );
virtual void reject();
private slots: private slots:
void ConstructorsClicked( int ); void ConstructorsClicked( int );
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -297,7 +297,7 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule ) :
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
@ -312,7 +312,7 @@ SMESHGUI_RotationDlg::SMESHGUI_RotationDlg( SMESHGUI* theModule ) :
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool))); connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool)));
connect(ActionGroup, SIGNAL(buttonClicked(int)), SLOT(onActionClicked(int))); connect(ActionGroup, SIGNAL(buttonClicked(int)), SLOT(onActionClicked(int)));
@ -508,14 +508,14 @@ void SMESHGUI_RotationDlg::ClickOnOk()
{ {
setIsApplyAndClose( true ); setIsApplyAndClose( true );
if( ClickOnApply() ) if( ClickOnApply() )
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_RotationDlg::ClickOnCancel() void SMESHGUI_RotationDlg::reject()
{ {
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
@ -527,7 +527,7 @@ void SMESHGUI_RotationDlg::ClickOnCancel()
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection); aViewWindow->SetSelectionMode(ActorSelection);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -857,26 +857,6 @@ void SMESHGUI_RotationDlg::enterEvent (QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_RotationDlg::closeEvent (QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=================================================================================
// function : hideEvent()
// purpose : caused by ESC key
//=================================================================================
void SMESHGUI_RotationDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : onSelectMesh() // function : onSelectMesh()
// purpose : // purpose :

View File

@ -66,9 +66,7 @@ public:
private: private:
void Init( bool = true ); void Init( bool = true );
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
bool IsAxisOk(); bool IsAxisOk();
void setNewMeshName(); void setNewMeshName();
@ -134,11 +132,11 @@ private:
SMESHGUI_FilterDlg* myFilterDlg; SMESHGUI_FilterDlg* myFilterDlg;
protected slots: protected slots:
virtual void onDisplaySimulation( bool ); virtual void onDisplaySimulation( bool );
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -301,7 +301,7 @@ SMESHGUI_ScaleDlg::SMESHGUI_ScaleDlg( SMESHGUI* theModule ) :
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int))); connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int)));
@ -312,7 +312,7 @@ SMESHGUI_ScaleDlg::SMESHGUI_ScaleDlg( SMESHGUI* theModule ) :
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool))); connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool)));
connect(ActionGroup, SIGNAL(buttonClicked(int)), SLOT(onActionClicked(int))); connect(ActionGroup, SIGNAL(buttonClicked(int)), SLOT(onActionClicked(int)));
@ -545,14 +545,14 @@ void SMESHGUI_ScaleDlg::ClickOnOk()
{ {
setIsApplyAndClose( true ); setIsApplyAndClose( true );
if( ClickOnApply() ) if( ClickOnApply() )
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_ScaleDlg::ClickOnCancel() void SMESHGUI_ScaleDlg::reject()
{ {
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
@ -564,7 +564,7 @@ void SMESHGUI_ScaleDlg::ClickOnCancel()
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode( ActorSelection ); aViewWindow->SetSelectionMode( ActorSelection );
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -881,26 +881,6 @@ void SMESHGUI_ScaleDlg::enterEvent (QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_ScaleDlg::closeEvent (QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
//function : hideEvent
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_ScaleDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
ClickOnCancel();
}
//======================================================================= //=======================================================================
//function : onSelectMesh //function : onSelectMesh
//purpose : //purpose :

View File

@ -62,9 +62,7 @@ public:
private: private:
void Init( bool = true ); void Init( bool = true );
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
int GetConstructorId(); int GetConstructorId();
void setNewMeshName(); void setNewMeshName();
@ -129,12 +127,12 @@ private:
protected slots: protected slots:
virtual void onDisplaySimulation( bool ); virtual void onDisplaySimulation( bool );
virtual void reject();
private slots: private slots:
void ConstructorsClicked( int ); void ConstructorsClicked( int );
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -257,7 +257,7 @@ SMESHGUI_SewingDlg::SMESHGUI_SewingDlg( SMESHGUI* theModule )
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int))); connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int)));
@ -272,7 +272,7 @@ SMESHGUI_SewingDlg::SMESHGUI_SewingDlg( SMESHGUI* theModule )
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
connect(LineEdit1, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(LineEdit1, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
connect(LineEdit2, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(LineEdit2, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
@ -548,14 +548,14 @@ bool SMESHGUI_SewingDlg::ClickOnApply()
void SMESHGUI_SewingDlg::ClickOnOk() void SMESHGUI_SewingDlg::ClickOnOk()
{ {
if (ClickOnApply()) if (ClickOnApply())
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_SewingDlg::ClickOnCancel() void SMESHGUI_SewingDlg::reject()
{ {
//mySelectionMgr->clearSelected(); //mySelectionMgr->clearSelected();
SMESH::SetPointRepresentation(false); SMESH::SetPointRepresentation(false);
@ -563,7 +563,7 @@ void SMESHGUI_SewingDlg::ClickOnCancel()
aViewWindow->SetSelectionMode(ActorSelection); aViewWindow->SetSelectionMode(ActorSelection);
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -873,26 +873,6 @@ void SMESHGUI_SewingDlg::enterEvent (QEvent* e)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_SewingDlg::closeEvent (QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
//function : hideEvent
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_SewingDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
ClickOnCancel();
}
//================================================================================= //=================================================================================
// function : GetConstructorId() // function : GetConstructorId()
// purpose : // purpose :

View File

@ -63,9 +63,7 @@ public:
private: private:
void Init(); void Init();
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
int GetConstructorId(); int GetConstructorId();
bool IsValid(); bool IsValid();
@ -118,10 +116,12 @@ private:
QString myHelpFileName; QString myHelpFileName;
protected slots:
virtual void reject();
private slots: private slots:
void ConstructorsClicked( int ); void ConstructorsClicked( int );
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -215,14 +215,14 @@ void SMESHGUI_SingleEditDlg::Init()
// main buttons // main buttons
connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk())); connect(myOkBtn, SIGNAL(clicked()), SLOT(onOk()));
connect(myCloseBtn, SIGNAL(clicked()), SLOT(onClose())); connect(myCloseBtn, SIGNAL(clicked()), SLOT(reject()));
connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply())); connect(myApplyBtn, SIGNAL(clicked()), SLOT(onApply()));
connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp())); connect(myHelpBtn, SIGNAL(clicked()), SLOT(onHelp()));
// selection and SMESHGUI // selection and SMESHGUI
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), SLOT(onSelectionDone()));
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), SLOT(onDeactivate()));
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(onClose())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), SLOT(reject()));
connect(myEdge, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(myEdge, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
myOkBtn->setEnabled(false); myOkBtn->setEnabled(false);
@ -244,14 +244,14 @@ void SMESHGUI_SingleEditDlg::Init()
void SMESHGUI_SingleEditDlg::onOk() void SMESHGUI_SingleEditDlg::onOk()
{ {
if (onApply()) if (onApply())
onClose(); reject();
} }
//======================================================================= //=======================================================================
// name : onClose() // name : reject()
// Purpose : SLOT called when "Close" button pressed. Close dialog // Purpose : SLOT called when "Close" button pressed. Close dialog
//======================================================================= //=======================================================================
void SMESHGUI_SingleEditDlg::onClose() void SMESHGUI_SingleEditDlg::reject()
{ {
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection); aViewWindow->SetSelectionMode(ActorSelection);
@ -259,7 +259,7 @@ void SMESHGUI_SingleEditDlg::onClose()
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
disconnect(mySMESHGUI, 0, this, 0); disconnect(mySMESHGUI, 0, this, 0);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -458,25 +458,6 @@ void SMESHGUI_SingleEditDlg::enterEvent (QEvent*)
} }
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_SingleEditDlg::closeEvent (QCloseEvent*)
{
onClose();
}
//=======================================================================
//function : hideEvent()
//purpose : caused by ESC key
//=======================================================================
void SMESHGUI_SingleEditDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
onClose();
}
//================================================================================= //=================================================================================
// function : onApply() // function : onApply()
// purpose : SLOT. Called when apply button is pressed // purpose : SLOT. Called when apply button is pressed

View File

@ -62,7 +62,7 @@ public:
protected slots: protected slots:
void onOk(); void onOk();
virtual bool onApply(); virtual bool onApply();
void onClose(); virtual void reject();
void onHelp(); void onHelp();
void onDeactivate(); void onDeactivate();
@ -71,9 +71,7 @@ protected slots:
void onTextChange( const QString& ); void onTextChange( const QString& );
protected: protected:
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); void enterEvent( QEvent* );
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
QWidget* createButtonFrame( QWidget* ); QWidget* createButtonFrame( QWidget* );
QWidget* createMainFrame( QWidget* ); QWidget* createMainFrame( QWidget* );

View File

@ -275,7 +275,7 @@ SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( SMESHGUI* theModule )
/***************************************************************/ /***************************************************************/
// signals and slots connections // signals and slots connections
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
@ -284,7 +284,7 @@ SMESHGUI_SmoothingDlg::SMESHGUI_SmoothingDlg( SMESHGUI* theModule )
connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL (SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL (SignalCloseAllDialogs()), this, SLOT(reject()));
connect(LineEditElements, SIGNAL(textChanged(const QString&)), connect(LineEditElements, SIGNAL(textChanged(const QString&)),
SLOT(onTextChange(const QString&))); SLOT(onTextChange(const QString&)));
connect(LineEditNodes, SIGNAL(textChanged(const QString&)), connect(LineEditNodes, SIGNAL(textChanged(const QString&)),
@ -421,14 +421,14 @@ bool SMESHGUI_SmoothingDlg::ClickOnApply()
void SMESHGUI_SmoothingDlg::ClickOnOk() void SMESHGUI_SmoothingDlg::ClickOnOk()
{ {
if( ClickOnApply() ) if( ClickOnApply() )
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : Called when dialog box is closed // purpose : Called when dialog box is closed
//================================================================================= //=================================================================================
void SMESHGUI_SmoothingDlg::ClickOnCancel() void SMESHGUI_SmoothingDlg::reject()
{ {
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
@ -441,7 +441,7 @@ void SMESHGUI_SmoothingDlg::ClickOnCancel()
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection); aViewWindow->SetSelectionMode(ActorSelection);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -704,26 +704,6 @@ void SMESHGUI_SmoothingDlg::enterEvent (QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_SmoothingDlg::closeEvent (QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
// function : hideEvent()
// purpose : caused by ESC key
//=======================================================================
void SMESHGUI_SmoothingDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
ClickOnCancel();
}
//======================================================================= //=======================================================================
// function : onSelectMesh() // function : onSelectMesh()
// purpose : // purpose :

View File

@ -71,9 +71,7 @@ public:
private: private:
void Init(); void Init();
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
void setFilters( const bool theIsElem ); void setFilters( const bool theIsElem );
@ -124,9 +122,11 @@ private:
QPushButton* myElemFilterBtn; QPushButton* myElemFilterBtn;
SMESHGUI_FilterDlg* myFilterDlg; SMESHGUI_FilterDlg* myFilterDlg;
protected slots:
virtual void reject();
private slots: private slots:
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

View File

@ -300,7 +300,7 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule )
/* signals and slots connections */ /* signals and slots connections */
connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk())); connect(buttonOk, SIGNAL(clicked()), this, SLOT(ClickOnOk()));
connect(buttonCancel, SIGNAL(clicked()), this, SLOT(ClickOnCancel())); connect(buttonCancel, SIGNAL(clicked()), this, SLOT(reject()));
connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply())); connect(buttonApply, SIGNAL(clicked()), this, SLOT(ClickOnApply()));
connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp())); connect(buttonHelp, SIGNAL(clicked()), this, SLOT(ClickOnHelp()));
connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int))); connect(GroupConstructors, SIGNAL(buttonClicked(int)), SLOT(ConstructorsClicked(int)));
@ -316,7 +316,7 @@ SMESHGUI_SymmetryDlg::SMESHGUI_SymmetryDlg( SMESHGUI* theModule )
connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog())); connect(mySMESHGUI, SIGNAL(SignalDeactivateActiveDialog()), this, SLOT(DeactivateActiveDialog()));
connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument())); connect(mySelectionMgr, SIGNAL(currentSelectionChanged()), this, SLOT(SelectionIntoArgument()));
/* to close dialog if study change */ /* to close dialog if study change */
connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(ClickOnCancel())); connect(mySMESHGUI, SIGNAL(SignalCloseAllDialogs()), this, SLOT(reject()));
connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&))); connect(LineEditElements, SIGNAL(textChanged(const QString&)), SLOT(onTextChange(const QString&)));
connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool))); connect(CheckBoxMesh, SIGNAL(toggled(bool)), SLOT(onSelectMesh(bool)));
connect(ActionGroup, SIGNAL(buttonClicked(int)), SLOT(onActionClicked(int))); connect(ActionGroup, SIGNAL(buttonClicked(int)), SLOT(onActionClicked(int)));
@ -573,14 +573,14 @@ void SMESHGUI_SymmetryDlg::ClickOnOk()
{ {
setIsApplyAndClose( true ); setIsApplyAndClose( true );
if( ClickOnApply() ) if( ClickOnApply() )
ClickOnCancel(); reject();
} }
//================================================================================= //=================================================================================
// function : ClickOnCancel() // function : reject()
// purpose : // purpose :
//================================================================================= //=================================================================================
void SMESHGUI_SymmetryDlg::ClickOnCancel() void SMESHGUI_SymmetryDlg::reject()
{ {
disconnect(mySelectionMgr, 0, this, 0); disconnect(mySelectionMgr, 0, this, 0);
mySelectionMgr->clearFilters(); mySelectionMgr->clearFilters();
@ -592,7 +592,7 @@ void SMESHGUI_SymmetryDlg::ClickOnCancel()
if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI ))
aViewWindow->SetSelectionMode(ActorSelection); aViewWindow->SetSelectionMode(ActorSelection);
mySMESHGUI->ResetState(); mySMESHGUI->ResetState();
reject(); QDialog::reject();
} }
//================================================================================= //=================================================================================
@ -917,26 +917,6 @@ void SMESHGUI_SymmetryDlg::enterEvent (QEvent*)
ActivateThisDialog(); ActivateThisDialog();
} }
//=================================================================================
// function : closeEvent()
// purpose :
//=================================================================================
void SMESHGUI_SymmetryDlg::closeEvent (QCloseEvent*)
{
/* same than click on cancel button */
ClickOnCancel();
}
//=======================================================================
// function : hideEvent()
// purpose : caused by ESC key
//=======================================================================
void SMESHGUI_SymmetryDlg::hideEvent (QHideEvent*)
{
if (!isMinimized())
ClickOnCancel();
}
//======================================================================= //=======================================================================
//function : onSelectMesh //function : onSelectMesh
//purpose : //purpose :

View File

@ -66,9 +66,7 @@ public:
private: private:
void Init( bool = true ); void Init( bool = true );
void closeEvent( QCloseEvent* );
void enterEvent( QEvent* ); /* mouse enter the QWidget */ void enterEvent( QEvent* ); /* mouse enter the QWidget */
void hideEvent( QHideEvent* ); /* ESC key */
void keyPressEvent( QKeyEvent* ); void keyPressEvent( QKeyEvent* );
int GetConstructorId(); int GetConstructorId();
bool IsMirrorOk(); bool IsMirrorOk();
@ -139,11 +137,11 @@ private:
protected slots: protected slots:
virtual void onDisplaySimulation( bool ); virtual void onDisplaySimulation( bool );
virtual void reject();
private slots: private slots:
void ConstructorsClicked( int ); void ConstructorsClicked( int );
void ClickOnOk(); void ClickOnOk();
void ClickOnCancel();
bool ClickOnApply(); bool ClickOnApply();
void ClickOnHelp(); void ClickOnHelp();
void SetEditCurrentArgument(); void SetEditCurrentArgument();

Some files were not shown because too many files have changed in this diff Show More