Skip to content
Snippets Groups Projects
Commit 304acbc5 authored by Christophe Geuzaine's avatar Christophe Geuzaine
Browse files

trying to fix breakage for multi-step views

parent a160402d
No related branches found
No related tags found
No related merge requests found
......@@ -44,16 +44,16 @@ PView *GMSH_MinMaxPlugin::execute(PView * v)
int iView = (int)MinMaxOptions_Number[0].def;
int overTime = (int)MinMaxOptions_Number[1].def;
int argument = (int)MinMaxOptions_Number[2].def;
PView *v1 = getView(iView, v);
if(!v1) return v;
PViewData *data1 = v1->getData();
PViewData *data1 = v1->getData(true);
PView *vMin = new PView();
PView *vMax = new PView();
PViewDataList *dataMin = getDataList(vMin);
PViewDataList *dataMax = getDataList(vMax);
if(!argument){
double x = data1->getBoundingBox().center().x();
double y = data1->getBoundingBox().center().y();
......@@ -64,86 +64,67 @@ PView *GMSH_MinMaxPlugin::execute(PView * v)
dataMax->NbSP = 1;
}
double minView=VAL_INF, maxView=-VAL_INF, min=VAL_INF, max=-VAL_INF, timeMin=0, timeMax=0;
double xmin, ymin, zmin, xmax, ymax, zmax;
double min=VAL_INF, max=-VAL_INF, timeMin=0, timeMax=0;
for(int step = 0; step < data1->getNumTimeSteps(); step++){
if(data1->hasTimeStep(step)){
//minView=data1->getMin(step);
//maxView=data1->getMax(step);
double minView = VAL_INF, maxView = -VAL_INF;
double xmin = 0., ymin = 0., zmin = 0., xmax = 0., ymax = 0., zmax = 0.;
for(int ent = 0; ent < data1->getNumEntities(step); ent++){
for(int ele = 0; ele < data1->getNumElements(step, ent); ele++){
for(int nod = 0; nod < data1->getNumNodes(step, ent, ele); nod++){
double val;
data1->getScalarValue(step, ent, ele, nod, val);
if(val<minView){
if(val < minView){
data1->getNode(step, ent, ele, nod, xmin, ymin, zmin);
minView=val;
minView = val;
}
if(val>maxView){
if(val > maxView){
data1->getNode(step, ent, ele, nod, xmax, ymax, zmax);
maxView=val;
maxView = val;
}
}
}
}
if(!overTime){
// one stores min/max and at each time step
if(!overTime){
if(argument){
dataMin->SP.push_back(xmin); dataMin->SP.push_back(ymin); dataMin->SP.push_back(zmin);
dataMax->SP.push_back(xmax); dataMax->SP.push_back(ymax); dataMax->SP.push_back(zmax);
(dataMin->NbSP)++;
(dataMax->NbSP)++;
}
else{
double time = data1->getTime(step);
dataMin->Time.push_back(time);
dataMax->Time.push_back(time);
}
dataMin->SP.push_back(minView);
dataMax->SP.push_back(maxView);
double time = data1->getTime(step);
dataMin->Time.push_back(time);//?
dataMax->Time.push_back(time);//?
}
else{
if(minView<min){
min=minView;
if(minView < min){
min = minView;
timeMin = data1->getTime(step);
}
if(maxView>max){
max=maxView;
if(maxView > max){
max = maxView;
timeMax = data1->getTime(step);
}
}
}
}
}
if(overTime){
if(overTime){
dataMin->SP.push_back(min);
dataMax->SP.push_back(max);
dataMin->Time.push_back(timeMin);//?
dataMax->Time.push_back(timeMax);//?
dataMin->Time.push_back(timeMin);
dataMax->Time.push_back(timeMax);
}
// dataMin->NbSP = 1;
// dataMax->NbSP = 1;
vMin->getOptions()->intervalsType = PViewOptions::Numeric;
vMax->getOptions()->intervalsType = PViewOptions::Numeric;
/*
for(int step = 0; step < data1->getNumTimeSteps(); step++){
if(data1->hasTimeStep(step)){
if(overTime){
dataMin->Time.push_back(timeMin);
dataMax->Time.push_back(timeMax);
}
else{
double time = data1->getTime(step);
dataMin->Time.push_back(time);
dataMax->Time.push_back(time);
}
}
}
*/
dataMin->setName(data1->getName() + "_Min");
dataMin->setFileName(data1->getName() + "_Min.pos");
......@@ -151,6 +132,6 @@ PView *GMSH_MinMaxPlugin::execute(PView * v)
dataMax->setName(data1->getName() + "_Max");
dataMax->setFileName(data1->getName() + "_Max.pos");
dataMax->finalize();
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment