Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
iparameter.h
1 #pragma once
2 
3 #include "base/src/vect.h"
4 #include "base/src/symtensor.h"
5 #include "shared/interface/itensordata.h"
6 
7 namespace itasca {
8  class IThing;
9 }
10 
11 namespace fish {
12  using itasca::IThing;
13  class List;
14  class Map;
15 
16  class IParameter {
17  public:
18  enum class TreatAs { Scalar,Vector,Any,Tensor };
19  enum class Component { X,Y,Z,Mag };
20  typedef itasca::ITensorData::Quantity Quantity;
21 
22  virtual ~IParameter() { }
23 
24  virtual QString getName() const=0;
25 
26  virtual bool getIsBool() const=0;
27  virtual bool getIsInt() const=0;
28  virtual bool getIsDouble() const=0;
29  virtual bool getIsNumber() const=0;
30  virtual bool getIsString() const=0;
31  virtual bool getIsVect2() const=0;
32  virtual bool getIsVect3() const=0;
33  virtual bool getIsPoint() const=0;
34  virtual bool getIsList() const = 0;
35  virtual bool getIsMap() const = 0;
36 
37  virtual bool getBool() const=0;
38  virtual qint64 getInt(qint64 min=limits<qint64>::min(),qint64 max=limits<qint64>::max()) const=0;
39  virtual double getDouble(double min=-limits<double>::max(),double max=limits<double>::max()) const=0;
40  virtual QString getString() const=0;
41  virtual DVect2 getVect2() const=0;
42  virtual DVect3 getVect3() const=0;
43  virtual IThing * getPoint() const=0;
44  virtual SymTensor getTensor() const=0;
45  virtual QVariant getQVariant() const=0;
46  virtual List getList() const = 0;
47  virtual Map getMap() const = 0;
48 
49  virtual double safeToDouble(double min=-limits<double>::max(),double max=limits<double>::max()) const=0;
50  virtual DVect2 safeToVect2() const=0;
51  virtual DVect3 safeToVect3() const=0;
52  virtual SymTensor safeToTensor() const=0;
53 
54  virtual QString list() const=0;
55 
56  virtual double getScalar(TreatAs type,Component comp,Quantity quant,bool stress) const = 0;
57 
58  virtual void copy(const IParameter &p)=0;
59  // Sets to the value in the string, converting to the best type it can
60  virtual void fromString(const QString &s)=0;
61  };
62 } // namespace fish
63 // EoF
64 
A Symmetric 2nd order tensor.
Definition: iparameter.h:16
namespace Itasca
Definition: basememory.cpp:9
Base class for items that will be stored in containers.
Definition: ithing.h:31
2D and 3D vector utility classes.
debug checked shorthand for std::numeric_limits<T>::
Definition: limit.h:25
A symmetric 2nd order tensor.
Definition: symtensor.h:19
A Vector2 in 2D, a Vector3 in 3D.
Definition: dim.h:108