19 #include <biogears/cdm/substance/SESubstance.h>
23 class SEElectricalCircuit;
25 class SEThermalCircuit;
26 class SEGasCompartmentGraph;
27 class SELiquidCompartmentGraph;
30 typedef std::map<std::string, double>
ProbeMap;
32 typedef std::map<std::string, std::vector<double>*>
TrackMap;
33 typedef std::map<std::string, std::vector<double>*>::iterator
TrackMapItr;
51 std::vector<std::string>& GetHeadings();
54 void SetFormatting(
const std::string& name, std::streamsize precision);
55 void SetDefaultFormatting(std::streamsize precision);
57 void Probe(
const std::string& name,
double value,
int i);
58 void Probe(
const std::string& name,
double value);
59 void Probe(
const std::string& name, std::vector<double>& values);
64 double GetProbe(
const std::string& name);
65 ProbeMap* GetProbes();
67 void Track(
const std::string& name,
double time,
double value);
71 void Track(
double time,
const SEGasCompartmentGraph& graph, std::vector<SESubstance*>* substances =
nullptr);
75 std::vector<std::string> ReadTrackFromFile(
const char* fileName);
78 std::vector<std::string> StreamDataFromFile(
const char* fileName);
81 double StreamDataFromFile(std::vector<std::string>* headings);
84 double GetTrack(
const std::string& name,
double time);
87 std::vector<double>* GetTrack(
const std::string& name);
90 std::vector<double>& GetTimes();
93 void CreateFile(
const char* fileName, std::ofstream& newFile, std::ios_base::openmode mode = std::ios_base::trunc);
94 void CreateFile(
const std::string& fileName, std::ofstream& newFile, std::ios_base::openmode mode = std::ios_base::trunc);
96 void WriteTrackToFile(
const char* fileName, std::ios_base::openmode mode = std::ios_base::trunc);
98 void StreamTrackToFile(std::ofstream& file);
100 void StreamProbesToFile(
double time, std::ofstream& file);
108 double m_LastTime = -1.0;
111 std::streamsize m_DefaultPrecision = 3;
std::vector< std::string > m_HeadingOrder
Definition: DataTrack.h:110
Definition: SELiquidCompartmentGraph.h:24
std::map< std::string, double >::iterator ProbeMapItr
Definition: DataTrack.h:31
TrackMap m_Track
Definition: DataTrack.h:103
Definition: SEElectricalCircuit.h:21
FormattingMap m_Formatting
Definition: DataTrack.h:105
std::map< std::string, std::vector< double > * >::iterator TrackMapItr
Definition: DataTrack.h:33
ProbeMap m_Probe
Definition: DataTrack.h:104
Definition: SEFluidCircuit.h:20
std::ifstream m_FileStream
Definition: DataTrack.h:113
std::map< std::string, double > ProbeMap
Definition: DataTrack.h:29
Definition: DataTrack.h:37
void UseTabDelimiter()
Definition: DataTrack.h:48
Definition: SEGasCompartmentGraph.h:25
char m_Delimiter
Definition: DataTrack.h:107
std::vector< double > m_Time
Definition: DataTrack.h:109
Definition: SEThermalCircuit.h:20
Definition: SEElectricalCircuit.h:18
std::map< std::string, std::vector< double > * > TrackMap
Definition: DataTrack.h:32
std::map< std::string, SEDecimalFormat > FormattingMap
Definition: DataTrack.h:35
void UseCommaDelimiter()
Definition: DataTrack.h:49