12#ifndef ARCANE_GEOMETRIC_GEOMSHAPEVIEW_H
13#define ARCANE_GEOMETRIC_GEOMSHAPEVIEW_H
17#include "arcane/utils/ITraceMng.h"
18#include "arcane/utils/ArrayView.h"
19#include "arcane/utils/Real3.h"
21#include "arcane/core/Item.h"
23#include "arcane/geometry/GeometricConnectic.h"
24#include "arcane/geometry/GeomElement.h"
25#include "arcane/geometry/CellConnectivity.h"
26#include "arcane/geometry/GeomShapeMutableView.h"
31namespace Arcane::geometric
58class ARCANE_GEOMETRY_EXPORT GeomShapeView
60 friend class GeomShapeMng;
61 friend class GeomShape;
62 friend class GeomShapeConnectivity;
67 static GeomShapeConnectivity* global_connectivity;
71 static void initializeConnectivity();
76 : m_cell_connectivity(global_cell_connectivity[IT_NullType])
77 , m_item_internal(ItemInternal::nullItem())
83#include "arcane/geometry/GeneratedGeomShapeViewDeclarations.h"
99 ARCANE_DEPRECATED_122
void initFromQuad(QuadElementConstView hexa,GeomShape& geom_cell);
113 return m_face_ptr[i];
119 return *m_center_ptr;
125 return 0.5 * (
node(m_cell_connectivity->m_edge_direct_connectic[(i*2)]) +
node(m_cell_connectivity->m_edge_direct_connectic[(i*2)+1]));
138 void _setArray(
const Real3* node_ptr,
const Real3* face_ptr,
const Real3* center_ptr)
140 m_node_ptr = node_ptr;
141 m_face_ptr = face_ptr;
142 m_center_ptr = center_ptr;
147 ARCANE_RESTRICT
const Real3* m_node_ptr =
nullptr;
148 ARCANE_RESTRICT
const Real3* m_face_ptr =
nullptr;
149 ARCANE_RESTRICT
const Real3* m_center_ptr =
nullptr;
158 constexpr const Real3POD* _nodeView()
const {
return (
Real3POD*)(m_node_ptr); }
169 return m_cell_connectivity->nodeConnectic()[i];
175 return m_cell_connectivity->edgeConnectic()[i];
181 return m_cell_connectivity->faceConnectic()[i];
187 return m_cell_connectivity->nbSubZone();
193 return m_cell_connectivity->nbSubZoneFace();
199 return m_cell_connectivity->nodeAssociation()[i];
204 return m_cell_connectivity->SCVFaceConnectic()[i];
210 return m_cell_connectivity->m_edge_node_sub_zone_id[i];
215 return m_cell_connectivity->m_face_node_sub_zone_id[i];
229 return m_cell_connectivity->cellType();
236 m_cell_connectivity = global_cell_connectivity[
item.type()];
237 m_item_internal = ItemCompatibility::_itemInternal(
item);
240 void _setNullItem(
int item_type)
242 m_item_internal = ItemInternal::nullItem();
243 m_cell_connectivity = global_cell_connectivity[item_type];
260:
public GeomShapeView
264 explicit GeomShape2DView(
const GeomShapeView& rhs) : GeomShapeView(rhs){}
272:
public GeomShapeView
285#include "arcane/geometry/GeneratedGeomShapeView.h"
296#include "arcane/geometry/GeomShape.h"
Classe de base d'un élément de maillage.
Classe gérant un vecteur réel de 3 dimensions.
Informations sur la connectivité d'une maille.
Vue constante sur une forme géométrique GeomShape.
const EdgeConnectic & edgeConnectic(Integer i) const
Informations de connectivité aux arêtes.
Integer edgeNodeSubZoneId(Integer i) const
Numéro locaux dans le sous-volumes de contrôle.
const Real3 face(Integer i) const
Position du centre de la ième face de la forme.
GeomType geomType() const
Type géométrique de la forme.
Cell cell() const
Maille associée (null si aucune).
Integer nbSvcFace() const
Nombre de sous faces internes SVC.
ARCANE_DEPRECATED_122 void initFromHexa(HexaElementConstView hexa, GeomShape &geom_cell)
const Real3 edge(Integer i) const
Position du centre de la i-ème arête de la forme.
ARCANE_DEPRECATED_122 void initFromQuad(QuadElementConstView hexa, GeomShape &geom_cell)
Integer nbSubZone() const
Nombre de sous volume de controle.
Face face() const
Face associée (null si aucune).
const Real3 center() const
Position du centre de la forme.
const NodeConnectic & nodeConnectic(Integer i) const
Informations de connectivité aux noeuds.
const FaceConnectic & faceConnectic(Integer i) const
Informations de connectivité aux faces.
void fillSubZoneElement(HexaElementView hexa, Integer i)
Remplit hexa avec les informations du i-ème sous-volume de contrôle.
Integer nodeAssociation(Integer i) const
Numéro local du sommet associé au sous volume de controle.
Item item() const
Entité associée (null si aucune).
constexpr const Real3 node(Integer i) const
Position du ième noeud de la forme.
Enumération spécifiant le type de polygone ou polyèdre associé à un élément ou une forme géométrique.
Int32 Integer
Type représentant un entier.
Structures de connectique locale des mailles.
Structure de connectique locale.
Structures de connectique locale des mailles.
Structures de connectique locale des mailles et svc.