2010-03-01 18:35:28 +00:00
|
|
|
#include "processing.h"
|
|
|
|
|
|
|
|
Processing::Processing(Operator* op, Engine* eng)
|
|
|
|
{
|
|
|
|
Op=op;
|
|
|
|
Eng=eng;
|
2010-03-04 15:54:16 +00:00
|
|
|
Enabled = true;
|
2010-03-01 18:35:28 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
Processing::~Processing()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
2010-03-10 11:15:14 +00:00
|
|
|
bool Processing::CheckTimestep()
|
|
|
|
{
|
|
|
|
if (Eng->GetNumberOfTimesteps()%ProcessInterval==0) return true;
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
int Processing::GetNextInterval()
|
|
|
|
{
|
|
|
|
if (Enabled==false) return -1;
|
|
|
|
return ProcessInterval - Eng->GetNumberOfTimesteps()%ProcessInterval;
|
|
|
|
}
|
2010-03-01 18:35:28 +00:00
|
|
|
|
2010-03-02 13:54:50 +00:00
|
|
|
void Processing::DefineStartStopCoord(double* dstart, double* dstop)
|
|
|
|
{
|
2010-03-03 07:00:25 +00:00
|
|
|
if (Op->SnapToMesh(dstart,start)==false) cerr << "Processing::DefineStartStopCoord: Warning: Snapping problem, check start value!!" << endl;
|
|
|
|
if (Op->SnapToMesh(dstop,stop)==false) cerr << "Processing::DefineStartStopCoord: Warning: Snapping problem, check stop value!!" << endl;
|
2010-03-01 18:35:28 +00:00
|
|
|
}
|
2010-03-02 13:54:50 +00:00
|
|
|
|
2010-03-10 11:15:14 +00:00
|
|
|
|
|
|
|
void ProcessingArray::AddProcessing(Processing* proc)
|
|
|
|
{
|
|
|
|
ProcessArray.push_back(proc);
|
|
|
|
}
|
|
|
|
|
|
|
|
void ProcessingArray::DeleteAll()
|
|
|
|
{
|
|
|
|
for (size_t i=0;i<ProcessArray.size();++i)
|
|
|
|
{
|
|
|
|
delete ProcessArray.at(i);
|
|
|
|
}
|
|
|
|
ProcessArray.clear();
|
|
|
|
}
|
|
|
|
|
|
|
|
int ProcessingArray::Process()
|
|
|
|
{
|
|
|
|
int nextProcess=1e100;
|
|
|
|
//this could be done nicely in parallel??
|
|
|
|
for (size_t i=0;i<ProcessArray.size();++i)
|
|
|
|
{
|
|
|
|
int step = ProcessArray.at(i)->Process();
|
|
|
|
if ((step>0) && (step<nextProcess))
|
|
|
|
nextProcess=step;
|
|
|
|
}
|
|
|
|
return nextProcess;
|
|
|
|
}
|