File indexing completed on 2025-08-03 08:16:38
0001
0002 #ifndef HiMain2_h
0003 #define HiMain2_h
0004
0005 extern "C" { void* himain2_address_(void); }
0006
0007
0008
0009
0010
0011 class HiMain2 {
0012 public:
0013 HiMain2();
0014 ~HiMain2();
0015
0016 int& katt (int i, int j);
0017 float& patt (int i, int j);
0018 float& vatt (int i, int j);
0019
0020 void init (void);
0021
0022
0023 inline int leniKatt() const {return _leniKatt;}
0024 inline int lenjKatt() const {return _lenjKatt;}
0025 inline int leniPatt() const {return _leniPatt;}
0026 inline int lenjPatt() const {return _lenjPatt;}
0027 inline int leniVatt() const {return _leniVatt;}
0028 inline int lenjVatt() const {return _lenjVatt;}
0029
0030 private:
0031
0032
0033 static const int _leniKatt = 130000;
0034 static const int _lenjKatt = 4;
0035 static const int _leniPatt = 130000;
0036 static const int _lenjPatt = 4;
0037 static const int _leniVatt = 130000;
0038 static const int _lenjVatt = 4;
0039
0040 struct HIMAIN2;
0041 friend struct HIMAIN2;
0042
0043 struct HIMAIN2
0044 {
0045 int katt[_lenjKatt][_leniKatt];
0046 float patt[_lenjPatt][_leniPatt];
0047 float vatt[_lenjVatt][_leniVatt];
0048 };
0049
0050 int _dummy;
0051 float _realdummy;
0052
0053 static HIMAIN2* _himain2;
0054 };
0055
0056
0057 HiMain2::HIMAIN2* HiMain2::_himain2 =0;
0058
0059 inline void
0060 HiMain2::init(void)
0061 { if (!_himain2) _himain2 = static_cast<HIMAIN2*>(himain2_address_()); }
0062
0063
0064 inline
0065 HiMain2::HiMain2()
0066 : _dummy (-999),
0067 _realdummy (-999.)
0068 {}
0069
0070
0071 inline
0072 HiMain2::~HiMain2()
0073 {}
0074
0075 inline int&
0076 HiMain2::katt (int i, int j)
0077 {
0078 init();
0079 if( i < 1 || i > leniKatt() ||
0080 j < 1 || j > lenjKatt() ) return _dummy;
0081
0082 return _himain2->katt[j-1][i-1];
0083 }
0084
0085 inline float&
0086 HiMain2::patt (int i, int j)
0087 {
0088 init();
0089 if( i < 1 || i > leniPatt() ||
0090 j < 1 || j > lenjPatt() ) return _realdummy;
0091
0092 return _himain2->patt[j-1][i-1];
0093 }
0094
0095 inline float&
0096 HiMain2::vatt (int i, int j)
0097 {
0098 init();
0099 if( i < 1 || i > leniVatt() ||
0100 j < 1 || j > lenjVatt() ) return _realdummy;
0101
0102 return _himain2->vatt[j-1][i-1];
0103 }
0104
0105 #endif