Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
GeomShapeMutableView.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2022 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/* GeomShapeMutableView.h (C) 2000-2014 */
9/* */
10/* Vue modifiable sur un GeomShape. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_GEOMETRIC_GEOMSHAPEMUTABLEVIEW_H
13#define ARCANE_GEOMETRIC_GEOMSHAPEMUTABLEVIEW_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/ITraceMng.h"
18#include "arcane/utils/ArrayView.h"
19#include "arcane/utils/Real3.h"
20
21#include "arcane/Item.h"
22
23#include "arcane/geometric/GeometricConnectic.h"
24#include "arcane/geometric/GeomElement.h"
25#include "arcane/geometric/CellConnectivity.h"
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30ARCANE_BEGIN_NAMESPACE
31GEOMETRIC_BEGIN_NAMESPACE
32
33/*---------------------------------------------------------------------------*/
34/*---------------------------------------------------------------------------*/
35
36class GeomShapeConnectivity;
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40/*!
41 * \ingroup ArcaneGeometric
42 * \brief Vue modifiable sur un GeomShape.
43 *
44 * Une instance de cette classe permet de modifier les coordonnées
45 * des noeuds, des faces et du centre d'un GeomShape.
46 *
47 * Pour récupérer une instance de cet objet, il faut appeler
48 * GeomShapeMng::mutableShapeView() ou GeomShape::toMutableView().
49 */
51{
52 public:
53
54 friend class GeomShapeMng;
55 friend class GeomShape;
56
57 public:
58
60 : m_node_ptr(0), m_face_ptr(0), m_center_ptr(0){}
61
62 private:
63
64 GeomShapeMutableView(Real3* node_ptr,Real3* face_ptr,Real3* center_ptr)
65 : m_node_ptr(node_ptr), m_face_ptr(face_ptr), m_center_ptr(center_ptr){}
66
67 public:
68
69 inline const Real3 node(Integer id) const
70 {
71 return m_node_ptr[id];
72 }
73
74 inline const Real3 face(Integer id) const
75 {
76 return m_face_ptr[id];
77 }
78
79 inline const Real3 center() const
80 {
81 return *m_center_ptr;
82 }
83
84 inline void setNode(Integer id,const Real3& v)
85 {
86 m_node_ptr[id] = v;
87 }
88
89 inline void setFace(Integer id,const Real3& v)
90 {
91 m_face_ptr[id] = v;
92 }
93
94 inline void setCenter(const Real3& v)
95 {
96 (*m_center_ptr) = v;
97 }
98
99 private:
100
101 Real3* m_node_ptr;
102 Real3* m_face_ptr;
103 Real3* m_center_ptr;
104
105 private:
106
107 inline void _setArray(Real3* node_ptr,Real3* face_ptr,Real3* center_ptr)
108 {
109 m_node_ptr = node_ptr;
110 m_face_ptr = face_ptr;
111 m_center_ptr = center_ptr;
112 }
113};
114
115/*---------------------------------------------------------------------------*/
116/*---------------------------------------------------------------------------*/
117
118GEOMETRIC_END_NAMESPACE
119ARCANE_END_NAMESPACE
120
121/*---------------------------------------------------------------------------*/
122/*---------------------------------------------------------------------------*/
123
124#endif
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Classe gérant les GeomShape des mailles d'un maillage.
Vue modifiable sur un GeomShape.
Forme géométrique.
Definition GeomShape.h:55