Salome HOME
Merge branch 'V8_3_BR' into ngr/python3_dev
[modules/smesh.git] / src / Tools / blocFissure / gmu / checkDecoupePartition.py
1 # -*- coding: utf-8 -*-
2
3 import logging
4 from .geomsmesh import geompy
5
6 # -----------------------------------------------------------------------------
7 # --- teste si l'opération de partition a produit une modification
8
9 def checkDecoupePartition(shapes, part):
10   """
11   Teste si l'opération de partition a produit une découpe
12   (plus de shapes dans la partition).
13   Résultat non garanti si recouvrement des shapes d'origine.
14   @param shapes : liste des shapes d'origine
15   @param part : résultat de la partition
16   @return True si la partition a découpé les shapes d'origine
17   """
18   logging.info('start')
19   # TODO: ShapeInfo donne des résultats faux (deux faces au lieu de une)
20   
21   isPart = False
22   orig = {}
23   for shape in shapes:
24     info = geompy.ShapeInfo(shape)
25     logging.debug("shape info %s", info)
26     for k in ['VERTEX', 'EDGE', 'FACE', 'SOLID']:
27       if k in list(orig.keys()):
28         orig[k] += info[k]
29       else:
30         orig[k] = info[k]
31   logging.debug("original shapes info %s", orig)
32   info = geompy.ShapeInfo(part)
33   logging.debug("partition info %s", info)
34   for k in ['VERTEX', 'EDGE', 'FACE', 'SOLID']:
35     if orig[k] < info[k]:
36       isPart = True
37       break
38   logging.debug("partition modifie l'original %s", isPart)
39
40   return isPart
41