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; }