Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
CaseTable.h
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2023 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/* CaseTable.h (C) 2000-2023 */
9/* */
10/* Classe gérant une table de marche. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_CASETABLE_H
13#define ARCANE_CASETABLE_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/datatype/SmallVariant.h"
18
19#include "arcane/CaseFunction.h"
20
21/*---------------------------------------------------------------------------*/
22/*---------------------------------------------------------------------------*/
23
24namespace Arcane
25{
26
27/*---------------------------------------------------------------------------*/
28/*---------------------------------------------------------------------------*/
29
30class CaseTableParams;
31
32/*---------------------------------------------------------------------------*/
33/*---------------------------------------------------------------------------*/
38class ARCANE_CORE_EXPORT CaseTable
39: public CaseFunction
40{
41 public:
42
60
64 {
65 CurveUnknown = 0,
66 CurveConstant = 1,
67 CurveLinear = 2
68 };
69
70 public:
71
75 CaseTable(const CaseFunctionBuildInfo& info,eCurveType curve_type);
76 virtual ~CaseTable();
77
78 public:
79
81 virtual Integer nbElement() const;
82
84 virtual void valueToString(Integer id,String& str) const;
85
87 virtual void paramToString(Integer id,String& param) const;
88
97 virtual eError setParam(Integer id,const String& value);
98
107 virtual eError setValue(Integer id,const String& value);
108
115 virtual eError appendElement(const String& param,const String& value);
116
129 virtual void insertElement(Integer id);
130
137 virtual void removeElement(Integer id);
138
142 virtual eCurveType curveType() const { return m_curve_type; }
144
145 virtual void setParamType(eParamType type);
146
147 virtual bool checkIfValid() const;
148
149 virtual void value(Real param,Real& v) const;
150 virtual void value(Real param,Integer& v) const;
151 virtual void value(Real param,bool& v) const;
152 virtual void value(Real param,String& v) const;
153 virtual void value(Real param,Real3& v) const;
154 virtual void value(Integer param,Real& v) const;
155 virtual void value(Integer param,Integer& v) const;
156 virtual void value(Integer param,bool& v) const;
157 virtual void value(Integer param,String& v) const;
158 virtual void value(Integer param,Real3& v) const;
159
160 public:
161
162 private:
163
164 CaseTableParams* m_param_list;
167 bool m_use_fast_search = true;
168
169 private:
170
171 template<typename U,typename V> void _findValue(U param,V& value) const;
172 template<typename U,typename V> void _findValueAndApplyTransform(U param,V& value) const;
173
174 bool _isValidIndex(Integer index) const;
175 eError _setValue(Integer index,const String& value_str);
176};
177
178/*---------------------------------------------------------------------------*/
179/*---------------------------------------------------------------------------*/
180
181}
182
183/*---------------------------------------------------------------------------*/
184/*---------------------------------------------------------------------------*/
185
186#endif
Informations pour construire une instance de CaseFunction.
Fonction du jeu de données.
Paramètre d'une fonction.
Fonction du jeu de donnée.
Definition CaseTable.h:40
virtual eCurveType curveType() const
Retourne le type de la courbe de la fonction.
Definition CaseTable.h:142
eCurveType
Type de la courbe de la table.
Definition CaseTable.h:64
eError
Type des erreurs retournées par la classe.
Definition CaseTable.h:47
@ ErrCanNotConvertParamToRightType
Indique que la conversion du paramètre vers le type souhaité est impossible.
Definition CaseTable.h:52
@ ErrBadRange
Indique qu'un indice d'un élément n'est pas valide.
Definition CaseTable.h:50
@ ErrNotGreaterThanPrevious
Indique que le paramètre n'est pas supérieur au précédent.
Definition CaseTable.h:56
@ ErrCanNotConvertValueToRightType
Indique que la conversion de la valeur vers le type souhaité est impossible.
Definition CaseTable.h:54
eCurveType m_curve_type
Type de la courbe.
Definition CaseTable.h:166
UniqueArray< SmallVariant > m_value_list
Liste des valeurs.
Definition CaseTable.h:165
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Classe gérant un vecteur de réel de dimension 3.
Definition Real3.h:132
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-