source: issm/trunk/src/c/objects/Params/BoolParam.h@ 4244

Last change on this file since 4244 was 4244, checked in by Eric.Larour, 15 years ago

New class Update, just to update object properties, relevant only to Elements, Loads, Nodes and Materials. Simplifies greatly all the other objects that don't need updates

File size: 3.3 KB
Line 
1/*! \file BoolParam.h
2 * \brief: header file for triavertexinput object
3 */
4
5
6#ifndef _BOOLPARAM_H_
7#define _BOOLPARAM_H_
8
9/*Headers:*/
10/*{{{1*/
11
12#ifdef HAVE_CONFIG_H
13 #include "config.h"
14#else
15#error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!"
16#endif
17
18#ifdef _SERIAL_
19#include <mex.h>
20#endif
21
22
23#include "./Param.h"
24#include "../../include/include.h"
25#include "../../shared/shared.h"
26#include "../../include/include.h"
27#include "../../include/include.h"
28/*}}}*/
29
30class BoolParam: public Param{
31
32 public:
33 /*just hold 3 values for 3 vertices: */
34 int enum_type;
35 IssmBool value;
36
37 /*constructors, destructors: {{{1*/
38 BoolParam();
39 BoolParam(int enum_type,IssmBool value);
40 ~BoolParam();
41 /*}}}*/
42 /*Object methods: {{{1*/
43 Object* copy();
44 void DeepEcho();
45 void Demarshall(char** pmarshalled_dataset);
46 void Echo();
47 int Enum();
48 int Id();
49 void Marshall(char** pmarshalled_dataset);
50 int MarshallSize();
51 int MyRank();
52 /*}}}*/
53 /*Param methods: {{{1*/
54 int EnumType(){return enum_type;}
55 void GetParameterValue(bool* pbool){*pbool=value;}
56 void GetParameterValue(int* pinteger){ISSMERROR("Bool param of enum %i (%s) cannot return an integer",enum_type,EnumAsString(enum_type));}
57 void GetParameterValue(double* pdouble){ISSMERROR("Bool param of enum %i (%s) cannot return a double",enum_type,EnumAsString(enum_type));}
58 void GetParameterValue(char** pstring){ISSMERROR("Bool param of enum %i (%s) cannot return a string",enum_type,EnumAsString(enum_type));}
59 void GetParameterValue(char*** pstringarray,int* pM){ISSMERROR("Bool param of enum %i (%s) cannot return a string arrayl",enum_type,EnumAsString(enum_type));}
60 void GetParameterValue(double** pdoublearray,int* pM){ISSMERROR("Bool param of enum %i (%s) cannot return a double array",enum_type,EnumAsString(enum_type));}
61 void GetParameterValue(double** pdoublearray,int* pM, int* pN){ISSMERROR("Bool param of enum %i (%s) cannot return a double array",enum_type,EnumAsString(enum_type));}
62 void GetParameterValue(Vec* pvec){ISSMERROR("Bool param of enum %i (%s) cannot return a Vec",enum_type,EnumAsString(enum_type));}
63 void GetParameterValue(Mat* pmat){ISSMERROR("Bool param of enum %i (%s) cannot return a Mat",enum_type,EnumAsString(enum_type));}
64
65 void SetValue(bool boolean){this->value=boolean;}
66 void SetValue(int integer){this->value=(bool)integer;}
67 void SetValue(double scalar){this->value=(bool)scalar;}
68 void SetValue(char* string){ISSMERROR("Bool param of enum %i (%s) cannot hold a string",enum_type,EnumAsString(enum_type));}
69 void SetValue(char** stringarray,int M){ISSMERROR("Bool param of enum %i (%s) cannot hold a string array",enum_type,EnumAsString(enum_type));}
70 void SetValue(double* doublearray,int M){ISSMERROR("Bool param of enum %i (%s) cannot hold a double array",enum_type,EnumAsString(enum_type));}
71 void SetValue(double* pdoublearray,int M,int N){ISSMERROR("Bool param of enum %i (%s) cannot hold a double array",enum_type,EnumAsString(enum_type));}
72 void SetValue(Vec vec){ISSMERROR("Bool param of enum %i (%s) cannot hold a Vec",enum_type,EnumAsString(enum_type));}
73 void SetValue(Mat mat){ISSMERROR("Bool param of enum %i (%s) cannot hold a Mat",enum_type,EnumAsString(enum_type));}
74
75 char* GetParameterName(void);
76 #ifdef _SERIAL_
77 void SetMatlabField(mxArray* dataref);
78 #endif
79 /*}}}*/
80};
81#endif /* _BOOLPARAM_H */
Note: See TracBrowser for help on using the repository browser.