Arcane  4.2.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
GeomElementView.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* GeomElementView.h (C) 2000-2026 */
9/* */
10/* Vues sur les éléments géométriques. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_GEOMETRIC_GEOMELEMENTVIEW_H
13#define ARCANE_GEOMETRIC_GEOMELEMENTVIEW_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Real3.h"
18
19#include "arcane/geometry/GeometricGlobal.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane::geometric
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29/*!
30 * \ingroup ArcaneGeometric
31 * \brief Classe de base des vues constantes sur des éléments géométriques.
32 *
33 * Les vues de ce type ne sont valides que tant que l'instance dont
34 * elles sont issues existe. Par conséquent, les vues sont surtout
35 * utilisées pour le passage d'argument et ne doivent pas être conservées.
36 */
37class GeomElementConstViewBase
39 public:
40
41 constexpr explicit GeomElementConstViewBase(ARCANE_RESTRICT const Real3POD* ptr)
42 : m_s(ptr)
43 {}
44
45 public:
46
47 //! Récupère la valeur du \a ième noeud
48 constexpr const Real3 operator[](Integer i) const
49 {
50 return Real3(m_s[i].x,m_s[i].y,m_s[i].z);
51 }
52
53 /*!
54 * \brief Récupère la valeur du \a ième noeud.
55 * \deprecated Utiliser operator[] à la place.
56 */
57 //ARCANE_DEPRECATED inline const Real3 s(Integer i) const
58 constexpr const Real3 s(Integer i) const
59 {
60 return Real3(m_s[i].x,m_s[i].y,m_s[i].z);
61 }
62
63 protected:
64
65 ARCANE_RESTRICT const Real3POD* m_s = nullptr;
66};
67
68/*---------------------------------------------------------------------------*/
69/*---------------------------------------------------------------------------*/
70/*!
71 * \ingroup ArcaneGeometric
72 * \brief Classe de base des vues modifiables sur des éléments géométriques.
73 *
74 * Les vues de ce type ne sont valides que tant que l'instance dont
75 * elles sont issues existe. Par conséquent, les vues sont surtout
76 * utilisées pour le passage d'argument et ne doivent pas être conservées.
77 */
78class GeomElementViewBase
79{
80 public:
82 explicit constexpr GeomElementViewBase(ARCANE_RESTRICT Real3POD* ptr)
83 : m_s(ptr)
84 {}
85
86 public:
87
88 //! Récupère la valeur du \a ième noeud
89 constexpr const Real3 operator[](Integer i) const
90 {
91 return Real3(m_s[i].x,m_s[i].y,m_s[i].z);
92 }
93
94 //! Position la valeur du \a i-ème noeud à \a v.
95 constexpr void setValue(Integer i, Real3 v)
96 {
97 m_s[i].x = v.x;
98 m_s[i].y = v.y;
99 m_s[i].z = v.z;
101
102 protected:
103
104 ARCANE_RESTRICT Real3POD* m_s = nullptr;
105};
106
107/*---------------------------------------------------------------------------*/
108/*---------------------------------------------------------------------------*/
109
110#include "arcane/geometry/GeneratedGeomElementView.h"
111
112/*---------------------------------------------------------------------------*/
113/*---------------------------------------------------------------------------*/
114
115}
116
117/*---------------------------------------------------------------------------*/
118/*---------------------------------------------------------------------------*/
119
120#endif
Classe gérant un vecteur réel de 3 dimensions.
Classe de base des vues constantes sur des éléments géométriques.
constexpr const Real3 operator[](Integer i) const
Récupère la valeur du ième noeud.
constexpr const Real3 s(Integer i) const
Récupère la valeur du ième noeud.
Classe de base des vues modifiables sur des éléments géométriques.
constexpr const Real3 operator[](Integer i) const
Récupère la valeur du ième noeud.
constexpr void setValue(Integer i, Real3 v)
Position la valeur du i-ème noeud à v.
Int32 Integer
Type représentant un entier.
Real y
deuxième composante du triplet
Real z
troisième composante du triplet
Real x
première composante du triplet