11// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
22// -----------------------------------------------------------------------------
3- // Copyright 2000-2022 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
3+ // Copyright 2000-2025 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
44// See the top-level COPYRIGHT file for details.
55// SPDX-License-Identifier: Apache-2.0
66// -----------------------------------------------------------------------------
77/* ---------------------------------------------------------------------------*/
8- /* IMeshUniqueIdMng.h (C) 2000-2022 */
8+ /* IMeshUniqueIdMng.h (C) 2000-2025 */
99/* */
1010/* Interface du gestionnaire de numérotation des uniqueId() d'un maillage. */
1111/* ---------------------------------------------------------------------------*/
1414/* ---------------------------------------------------------------------------*/
1515/* ---------------------------------------------------------------------------*/
1616
17- #include " arcane/ArcaneTypes.h"
17+ #include " arcane/core/ ArcaneTypes.h"
1818
1919/* ---------------------------------------------------------------------------*/
2020/* ---------------------------------------------------------------------------*/
@@ -38,7 +38,7 @@ class ARCANE_CORE_EXPORT IMeshUniqueIdMng
3838 public:
3939
4040 // ! Libère les ressources
41- virtual ~IMeshUniqueIdMng () =default ;
41+ virtual ~IMeshUniqueIdMng () = default ;
4242
4343 public:
4444
@@ -49,11 +49,11 @@ class ARCANE_CORE_EXPORT IMeshUniqueIdMng
4949 * Si la version vaut 0 alors il n'y a pas de renumérotation. En parallèle,
5050 * il faut alors que les uniqueId() des faces soient cohérents entre
5151 * les sous-domaines.
52- */
53- virtual void setFaceBuilderVersion (Integer n) =0;
52+ */
53+ virtual void setFaceBuilderVersion (Integer n) = 0;
5454
5555 // ! Version de la numérotation des faces.
56- virtual Integer faceBuilderVersion () const =0;
56+ virtual Integer faceBuilderVersion () const = 0;
5757
5858 /* !
5959 * \brief Positionne la version de la numérotation des arêtes.
@@ -66,11 +66,33 @@ class ARCANE_CORE_EXPORT IMeshUniqueIdMng
6666 * Si la version vaut 0 alors il n'y a pas de renumérotation. En parallèle,
6767 * il faut alors que les uniqueId() des faces soient cohérents entre
6868 * les sous-domaines.
69- */
70- virtual void setEdgeBuilderVersion (Integer n) =0;
69+ */
70+ virtual void setEdgeBuilderVersion (Integer n) = 0;
7171
7272 // ! Version de la numérotation des arêtes
73- virtual Integer edgeBuilderVersion () const =0;
73+ virtual Integer edgeBuilderVersion () const = 0;
74+
75+ /* !
76+ * \brief Indique si on détermine les uniqueId() des arêtes et des faces en
77+ * fonction des uniqueId() des noeuds qui les constituent.
78+ *
79+ * Cette méthode doit être appelée avant de positionner la dimension
80+ * du maillage (IPrimaryMesh::setDimension()).
81+ *
82+ * Si actif, lors de la création à la volée d'une arête ou d'une face
83+ * on utilise MeshUtils::generateHashUniqueId() pour générer le uniqueId()
84+ * de l'entité. Cela permet en parallèle de créer automatiquement
85+ * les arêtes ou les faces.
86+ *
87+ * \warning Si ce mécanisme est utilisé, il ne faut pas le mélanger
88+ * avec la création manuelle des arêtes ou des faces (via IMeshModifier)
89+ * ou alors il faut utiliser MeshUtils::generateHashUniqueId() pour générer
90+ * le même identifiant que celui créé à la volée.
91+ */
92+ virtual void setUseNodeUniqueIdToGenerateEdgeAndFaceUniqueId (bool v) = 0;
93+
94+ // ! Indique le mécanisme utilisé pour numéroter les arêtes ou les faces
95+ virtual bool isUseNodeUniqueIdToGenerateEdgeAndFaceUniqueId () const = 0;
7496};
7597
7698/* ---------------------------------------------------------------------------*/
0 commit comments