-
Notifications
You must be signed in to change notification settings - Fork 0
/
Information.h
162 lines (106 loc) · 3.29 KB
/
Information.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
#ifndef INFORMATION_H
#define INFORMATION_H
/**
02/06/2011
- Commented out headers inherited from Utils.h
**/
// #include <cstdlib>
// #include <vector>
// #include <math.h>
#include "Utils.h"
// #include "Structures.h"
#include <fstream>
#include <iostream>
/**
@author Andrew Logsdail
*/
// This is going to hold all our information about the dataset we have, and work out averages etc. for us
class Information{
// This is used to store the point values as it is read in
struct point
{
double x;
double y;
double z; // Intensity
};
public:
Information() {idum = NULL; output_content = NULL;}
~Information() {emptyVectors();}
Information(int *s, std::vector<std::string> *o)
{ init(s,o); }
void init(int *s, std::vector<std::string> *o);
bool readFile(const std::string &name);
bool readFile(const std::string &file, const CompareV &coV);
bool saveImage(std::string sz);
bool saveImage(const std::string sz, std::vector<float> newArray, const int x, const int y, const float grid);
bool saveImageMatrix(std::string sz);
bool saveImageMatrix(const std::string &sz, std::vector<float> &newArray, const int &x, const int &y, const float &grid);
void reset();
void scale(float scalar);
int getCount()
{return count;}
float getXtotal()
{return x_total;}
float getYtotal()
{return y_total;}
float getZtotal()
{return z_total;}
float getMaxX()
{return max_x;}
float getMaxY()
{return max_y;}
float getMaxZ()
{return max_z;}
float getMinX()
{return min_x;}
float getMinY()
{return min_y;}
float getMinZ()
{return min_z;}
float getStep()
{return step;}
float getM()
{return m;} //
float getN()
{return n;} // These are both int but we return floats for calculations
std::string getFilename()
{return filename;}
void setFilename(std::string name)
{filename = name;}
std::vector<float> getDataArray()
{return dataArray;}
// This next one is going to be important for the search routines and comparing each result to the current best
void setDataArray(std::vector<float> &newArray, const int &x, const int &y, const float &grid)
{reset(); setM(x); setN(y); setStep(grid); dataArray = newArray; inputAnalysis();}
void setM(int x_spread)
{m = x_spread;}
void setN(int y_spread)
{n = y_spread;}
void setStep(float gridSize)
{step = gridSize;}
float getMean()
{return z_total/count;}
// Translate Data
void translate(const float diff_x, const float diff_y);
private:
CompareV compare_variables;
std::vector<point> data_points, com_x, com_y;
std::vector<float> dataArray;
int count, m, n;
int *idum; // Pointer to random number seed
std::vector<std::string> *output_content; // Output array
float x_total, y_total, z_total;
float max_x, max_y, max_z, min_x, min_y, min_z;
float step;
std::string filename;
void calcCOM(); // Get COM
bool readZcon(const std::string &name); // Read Zcon
bool readTxt(const std::string &name); // Read Txt
void inputAnalysis(); // Finds out information when new dataArray is defined. Used for set data
void checkLimits(point tPB);
void calculateDataArray(); // Calculate Array from Data points
void emptyVectors()
{data_points.clear(); dataArray.clear(); com_x.clear(); com_y.clear();} // Clean up
void clearCounters();
};
#endif