Salome HOME
Prevent multithread test failing if only one CPU core is available
[plugins/blsurfplugin.git] / tests / quadrangles.py
1 # -*- coding: utf-8 -*-
2
3 import sys
4 import salome
5
6 salome.salome_init()
7 theStudy = salome.myStudy
8
9 ###
10 ### GEOM component
11 ###
12
13 import GEOM
14 from salome.geom import geomBuilder
15 import math
16 import SALOMEDS
17
18
19 geompy = geomBuilder.New(theStudy)
20
21 O = geompy.MakeVertex(0, 0, 0)
22 OX = geompy.MakeVectorDXDYDZ(1, 0, 0)
23 OY = geompy.MakeVectorDXDYDZ(0, 1, 0)
24 OZ = geompy.MakeVectorDXDYDZ(0, 0, 1)
25 Face_1 = geompy.MakeFaceHW(100, 100, 1)
26 Disk_1 = geompy.MakeDiskR(20, 1)
27 Partition_1 = geompy.MakePartition([Face_1, Disk_1], Limit=geompy.ShapeType["FACE"])
28 geompy.addToStudy( O, 'O' )
29 geompy.addToStudy( OX, 'OX' )
30 geompy.addToStudy( OY, 'OY' )
31 geompy.addToStudy( OZ, 'OZ' )
32 geompy.addToStudy( Face_1, 'Face_1' )
33 geompy.addToStudy( Disk_1, 'Disk_1' )
34 geompy.addToStudy( Partition_1, 'Partition_1' )
35
36 ###
37 ### SMESH component
38 ###
39
40 import  SMESH, SALOMEDS
41 from salome.smesh import smeshBuilder
42
43 from salome.BLSURFPlugin import BLSURFPluginBuilder
44
45 smesh = smeshBuilder.New(theStudy)
46 Mesh_1 = smesh.Mesh(Partition_1)
47 MG_CADSurf = Mesh_1.Triangle(algo=smeshBuilder.MG_CADSurf)
48 MG_CADSurf_Parameters_1 = MG_CADSurf.Parameters()
49 MG_CADSurf_Parameters_1.SetPhySize( 10 )
50 MG_CADSurf_Parameters_1.SetMaxSize( 10 )
51 MG_CADSurf_Parameters_1.SetChordalError( -1 )
52
53
54 # Test quadrangle dominant
55 MG_CADSurf_Parameters_1.SetElementType( BLSURFPluginBuilder.QuadrangleDominant )
56 isDone = Mesh_1.Compute()
57
58 assert Mesh_1.NbQuadrangles() > 0
59 assert Mesh_1.NbTriangles() > 0
60 assert Mesh_1.NbQuadrangles() > Mesh_1.NbTriangles()
61
62
63 # Test quadrangles only
64 MG_CADSurf_Parameters_1.SetElementType( BLSURFPluginBuilder.Quadrangles )
65 isDone = Mesh_1.Compute()
66
67 assert Mesh_1.NbQuadrangles() > 0
68 assert Mesh_1.NbTriangles() == 0
69
70
71 # Test triangles only
72 MG_CADSurf_Parameters_1.SetElementType( BLSURFPluginBuilder.Triangles )
73 isDone = Mesh_1.Compute()
74
75 assert Mesh_1.NbQuadrangles() == 0
76 assert Mesh_1.NbTriangles() > 0
77
78 # Test quadrangle dominant compatibility (to be deprecated in Salome 9)
79 MG_CADSurf_Parameters_1.SetQuadAllowed( True )
80 isDone = Mesh_1.Compute()
81
82 assert Mesh_1.NbQuadrangles() > 0
83 assert Mesh_1.NbTriangles() > 0
84 assert Mesh_1.NbQuadrangles() > Mesh_1.NbTriangles()
85
86 if salome.sg.hasDesktop():
87   salome.sg.updateObjBrowser(True)