Brief description of class still missing. More...
#include <RefraReader.h>
Public Member Functions | |
| RefraReader () | |
| bool | setOptions (int &argc, char **argv) |
Protected Member Functions | |
| virtual bool | parse (QTextStream &s) |
Brief description of class still missing.
Full description of class still missing
Description of constructor still missing
References TRACE.
: ArgumentStdinReader() { TRACE; _mode=TravelTimes; }
| bool RefraReader::parse | ( | QTextStream & | s | ) | [protected, virtual] |
Implements QGpCoreTools::ArgumentStdinReader.
References QGpCoreWave::RefractionDippingModel::begin(), QGpCoreWave::RefractionDippingModel::end(), QGpCoreWave::RefractionDippingModel::fromStream(), QGpCoreWave::TiltNode::init(), QGpCoreWave::RefractionDippingModel::layerCount(), QGpCoreWave::RefractionDippingModel::ray(), sOut(), QGpCoreTools::Curve< pointType >::toString(), TRACE, and QGpCoreWave::RefractionDippingModel::travelTime().
{
TRACE;
QTextStream sOut(stdout);
RefractionDippingModel m;
QString comments;
if(!m.fromStream(s, &comments)) {
return false;
}
if(m.layerCount()>0) {
m.begin();
TiltNode srcNode, recNode;
int deepestLayer;
for(QVector<double>::const_iterator itSrc=_sources.begin(); itSrc!=_sources.end(); itSrc++) {
srcNode.init(*itSrc,m);
sOut << QString("# Source at %1\n").arg(*itSrc);
switch(_mode) {
case TravelTimes:
sOut << "# Receiver(m) Time(s)\n";
break;
case RayPaths:
break;
}
for(QVector<double>::const_iterator itRec=_receivers.begin(); itRec!=_receivers.end(); itRec++) {
recNode.init(*itRec,m);
switch(_mode) {
case TravelTimes:
sOut << QString("%1 %2\n").arg(*itRec).arg(m.travelTime(srcNode, recNode, deepestLayer));
break;
case RayPaths:
sOut << QString("# Receiver at %1\n").arg(*itRec)
<< m.ray(srcNode, recNode).toString();
break;
}
}
}
m.end();
}
return true;
}
| bool RefraReader::setOptions | ( | int & | argc, |
| char ** | argv | ||
| ) |
References QGpCoreTools::endl(), QGpCoreTools::tr(), and TRACE.
Referenced by main().
{
TRACE;
// Check arguments
int i, j=1;
for(i=1; i<argc; i++) {
QByteArray arg=argv[i];
if(arg[0]=='-') {
if(arg=="-src") {
CoreApplication::checkOptionArg(i, argc, argv);
QStringList l=QString(argv[i]).split(",");
for(QStringList::iterator it=l.begin();it!=l.end();it++) {
_sources.append(it->toDouble());
}
} else if(arg=="-rec") {
CoreApplication::checkOptionArg(i, argc, argv);
QStringList l=QString(argv[i]).split(",");
for(QStringList::iterator it=l.begin();it!=l.end();it++) {
_receivers.append(it->toDouble());
}
} else if(arg=="-travel-times") {
_mode=TravelTimes;
} else if(arg=="-ray-paths") {
_mode=RayPaths;
} else {
App::stream() << tr("gprefra: bad option %1, see -help").arg(argv[i]) << endl;
return false;
}
} else {
argv[j++]=argv[i];
}
}
if(j < argc) {
argv[j]=0;
argc=j;
}
// Sort sources and receivers
qSort(_sources);
qSort(_receivers);
return true;
}