Itasca C++ Interface
Loading...
Searching...
No Matches
iparameter.h
1#pragma once
2
3#include "base/src/vect.h"
5
6#include "iparametervalue.h"
7#include "shared/interface/itensordata.h"
8
9class QVariant;
10
11namespace base {
12 class Property;
13}
14
15namespace fish {
16 class List;
17 class Map;
18
19 class IParameter {
20 public:
21
22 virtual ~IParameter() { }
23
24 virtual string 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 getIsTensor() const=0;
34 virtual bool getIsPoint() const=0;
35 virtual bool getIsList() const = 0;
36 virtual bool getIsMap() const = 0;
37
38 virtual bool getBool() const=0;
39 virtual int64 getInt(int64 min=limits<int64>::min(),int64 max=limits<int64>::max()) const=0;
40 virtual double getDouble(double min=-limits<double>::max(),double max=limits<double>::max()) const=0;
41 virtual string getString() const=0;
42 virtual DVect2 getVect2() const=0;
43 virtual DVect3 getVect3() const=0;
44 virtual SymTensor getTensor() const=0;
45 virtual List getList() const = 0;
46 virtual Map getMap() const = 0;
47 virtual QVariant getQVariant() const = 0;
48 virtual base::Property getProperty() const = 0;
49
50 virtual double safeToDouble(double min=-limits<double>::max(),double max=limits<double>::max()) const=0;
51 virtual DVect2 safeToVect2() const=0;
52 virtual DVect3 safeToVect3() const=0;
53 virtual SymTensor safeToTensor() const=0;
54
55 virtual string list() const=0;
56
57 virtual void copy(const IParameter &p)=0;
58 // Sets to the value in the string, converting to the best type it can
59 virtual void fromString(const string &s)=0;
60
61 virtual double pullDouble(const IParameterValue &pp) const = 0;
62 virtual string pullString(const IParameterValue &pp) const = 0;
63 virtual std::pair<string,bool> encodeAsString() const=0;
64 virtual void decodeFromString(const string &s)=0;
65 };
66} // namespace fish
67// EoF
68
A symmetric 2nd order tensor.
Definition symtensor.h:22
Definition property.h:36
Definition iparameter.h:19
debug checked shorthand for std::numeric_limits<T>::
Definition limit.h:25
Definition iparametervalue.h:12
A Symmetric 2nd order tensor.
2D and 3D vector utility classes.