Arcane  v3.14.10.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
GeomShape.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/* GeomShape.h (C) 2000-2015 */
9/* */
10/* Forme géométrique. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_GEOMETRIC_GEOMSHAPE_H
13#define ARCANE_GEOMETRIC_GEOMSHAPE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/geometric/GeomShapeView.h"
18
19/*---------------------------------------------------------------------------*/
20/*---------------------------------------------------------------------------*/
21
22ARCANE_BEGIN_NAMESPACE
23GEOMETRIC_BEGIN_NAMESPACE
24
25/*---------------------------------------------------------------------------*/
26/*---------------------------------------------------------------------------*/
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30/*!
31 * \ingroup ArcaneGeometric
32 * \brief Forme géométrique.
33 *
34 * Cette classe ne s'utilise que pour créer une forme géométrique temporaire.
35 * Pour une forme géométrique issue d'une maille, il faut passer par le
36 * GeomShapeMng.
37 *
38 * Une instance de cette classe permet de conserver les informations
39 * nécessaires pour une forme géométrique.
40 *
41 * Il est possible d'initialiser directement
42 * une forme géométrique à partir d'un hexaèdre (initFromHexaedron8())
43 * ou d'un quadrangle (initFromQuad4()). Ces méthodes initialisent la forme
44 * et retournent une vue dessus.
45 * \code
46 * GeomShape shape;
47 * HexaElement hexa;
48 * GeomShapeView shape_view = shape.initFromHexaedron8(hexa);
49 * \endcode
50 *
51 * \todo mettre en place une initialisation spécifique. Pour cela, il faudra
52 * utiliser le toMutableView() mais il faut aussi pouvoir spécifier le geomType().
53 */
54class ARCANE_CEA_GEOMETRIC_EXPORT GeomShape
55{
56 // TEMPORAIRE: a supprimer quand les initFromHexa() et initFromQuad()
57 // de GeomShapeView seront supprimés
58 friend class GeomShapeView;
59
60 public:
61
62 //! Vue modifiable sur cet instance.
64 {
65 return GeomShapeMutableView((Real3*)m_node_ptr,(Real3*)m_face_ptr,(Real3*)&m_center);
66 }
67
68 //! Initialise la forme avec un hexaèdre \a hexa et retourne une vue dessus.
69 Hexaedron8ShapeView initFromHexaedron8(Hexaedron8ElementConstView hexa);
70
71 //! Initialise la forme avec un quadrangle \a quad et retourne une vue dessus.
72 Quad4ShapeView initFromQuad4(Quad4ElementConstView quad);
73
74 protected:
75
76 void _setArray(GeomShapeView& shape)
77 {
78 shape._setArray((Real3*)m_node_ptr,(Real3*)m_face_ptr,(Real3*)&m_center);
79 }
80
81 private:
82
83 Real3POD m_node_ptr[ItemStaticInfo::MAX_CELL_NODE];
84 Real3POD m_face_ptr[ItemStaticInfo::MAX_CELL_FACE];
85 Real3POD m_center;
86};
87
88/*---------------------------------------------------------------------------*/
89/*---------------------------------------------------------------------------*/
90
91GEOMETRIC_END_NAMESPACE
92ARCANE_END_NAMESPACE
93
94/*---------------------------------------------------------------------------*/
95/*---------------------------------------------------------------------------*/
96
97#endif
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Vue modifiable sur un GeomShape.
Vue constante sur une forme géométrique GeomShape.
Forme géométrique.
Definition GeomShape.h:55
GeomShapeMutableView toMutableView()
Vue modifiable sur cet instance.
Definition GeomShape.h:63
Vue constante sur les éléments géométriques de type GeomType::Hexaedron8.
Vue spécifique sur les formes géométriques de type GeomType::Hexaedron8.
Vue constante sur les éléments géométriques de type GeomType::Quad4.
Vue spécifique sur les formes géométriques de type GeomType::Quad4.