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

more work on MED IO

parent 8883a67a
No related branches found
No related tags found
No related merge requests found
// $Id: Post.cpp,v 1.159 2008-03-29 10:19:36 geuzaine Exp $
// $Id: Post.cpp,v 1.160 2008-03-29 11:51:37 geuzaine Exp $
//
// Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
//
......@@ -1209,8 +1209,7 @@ class initPView {
PViewData *data = p->getData();
PViewOptions *opt = p->getOptions();
if(data->getDirty() || !p->getChanged()) return;
if(data->getDirty() || !data->getNumTimeSteps() || !p->getChanged()) return;
if(!opt->Visible || opt->Type != PViewOptions::Plot3D) return;
if(opt->UseGenRaise) opt->createGeneralRaise();
......@@ -1271,10 +1270,9 @@ class drawPView {
PViewData *data = p->getData();
PViewOptions *opt = p->getOptions();
if(data->getDirty() || !data->getNumTimeSteps()) return;
if(!opt->Visible || opt->Type != PViewOptions::Plot3D) return;
if(data->getDirty()) return;
glPointSize(opt->PointSize);
gl2psPointSize(opt->PointSize * CTX.print.eps_point_size_factor);
......
// $Id: PViewDataGModel.cpp,v 1.34 2008-03-20 11:44:15 geuzaine Exp $
// $Id: PViewDataGModel.cpp,v 1.35 2008-03-29 11:51:37 geuzaine Exp $
//
// Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
//
......@@ -53,24 +53,25 @@ int PViewDataGModel::getNumTimeSteps()
double PViewDataGModel::getTime(int step)
{
if(_steps.empty()) return 0.;
return _steps[step]->getTime();
}
double PViewDataGModel::getMin(int step)
{
if(step < 0) return _min;
if(step < 0 || _steps.empty()) return _min;
return _steps[step]->getMin();
}
double PViewDataGModel::getMax(int step)
{
if(step < 0) return _max;
if(step < 0 || _steps.empty()) return _max;
return _steps[step]->getMax();
}
SBoundingBox3d PViewDataGModel::getBoundingBox(int step)
{
if(step < 0){
if(step < 0 || _steps.empty()){
SBoundingBox3d tmp;
for(unsigned int i = 0; i < _steps.size(); i++)
tmp += _steps[i]->getBoundingBox();
......@@ -81,25 +82,28 @@ SBoundingBox3d PViewDataGModel::getBoundingBox(int step)
int PViewDataGModel::getNumScalars(int step)
{
if(_steps.empty()) return 0;
if(_steps[0]->getNumComp() == 1) return getNumElements(0);
return 0;
}
int PViewDataGModel::getNumVectors(int step)
{
if(_steps.empty()) return 0;
if(_steps[0]->getNumComp() == 3) return getNumElements(0);
return 0;
}
int PViewDataGModel::getNumTensors(int step)
{
if(_steps.empty()) return 0;
if(_steps[0]->getNumComp() == 9) return getNumElements(0);
return 0;
}
int PViewDataGModel::getNumEntities(int step)
{
if(step < 0){
if(step < 0 || _steps.empty()){
int num = 0;
for(unsigned int i = 0; i < _steps.size(); i++)
num += _steps[i]->getNumEntities();
......@@ -110,7 +114,7 @@ int PViewDataGModel::getNumEntities(int step)
int PViewDataGModel::getNumElements(int step, int ent)
{
if(step < 0){
if(step < 0 || _steps.empty()){
int num = 0;
for(unsigned int i = 0; i < _steps.size(); i++){
if(ent < 0)
......
// $Id: PViewDataGModelIO.cpp,v 1.14 2008-03-29 10:19:43 geuzaine Exp $
// $Id: PViewDataGModelIO.cpp,v 1.15 2008-03-29 11:51:37 geuzaine Exp $
//
// Copyright (C) 1997-2008 C. Geuzaine, J.-F. Remacle
//
......@@ -189,8 +189,8 @@ bool PViewDataGModel::readMED(std::string fileName, int fileIndex)
setName(name);
med_int numSteps = MEDnPasdetemps(fid, name, MED_NOEUD, MED_NONE);
if(numSteps <= 0){
Msg(GERROR, "Invalid umber of steps");
if(numSteps < 0){
Msg(GERROR, "Could not get number of steps");
return false;
}
......@@ -205,6 +205,7 @@ bool PViewDataGModel::readMED(std::string fileName, int fileIndex)
Msg(GERROR, "Could not get step info");
return false;
}
med_int numNodes = MEDnVal(fid, name, MED_NOEUD, MED_NONE, numdt, numo,
meshName, MED_COMPACT);
if(numNodes <= 0) continue;
......@@ -218,8 +219,9 @@ bool PViewDataGModel::readMED(std::string fileName, int fileIndex)
return false;
}
stepData<double> *sd = new stepData<double>(GModel::current(),
stepData<double>::NodeData, numComp);
int numCompGmsh = (numComp == 2) ? 3 : numComp;
stepData<double> *sd = new stepData<double>
(GModel::current(), stepData<double>::NodeData, numCompGmsh);
_steps.push_back(sd);
sd->setFileName(fileName);
sd->setFileIndex(fileIndex);
......@@ -263,7 +265,9 @@ bool PViewDataGModel::readMED(std::string fileName, int fileIndex)
double *d = sd->getData(index, true);
for(int j = 0; j < numComp; j++)
d[j] = val[numComp * i + j];
double s = ComputeScalarRep(numComp, d);
for(int j = numComp; j < numCompGmsh; j++)
d[j] = 0.;
double s = ComputeScalarRep(numCompGmsh, d);
sd->setMin(std::min(sd->getMin(), s));
sd->setMax(std::max(sd->getMax(), s));
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment