All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Member Functions | Protected Member Functions | Protected Attributes
QGpCompatibility::CompatRefraReport Class Reference

#include <CompatRefraReport.h>

Inheritance diagram for QGpCompatibility::CompatRefraReport:
QGpCompatibility::CompatInversionReport

List of all members.

Public Member Functions

void addRefraGoal (CompatHodoChroneData *hd)
 CompatRefraReport (bool isWrite, QString reportFile, QString naInFile=QString::null, int nModels=0)
CompatHodoChronecurrentHodoChrone ()
 Returns the autocorr curves of current model.
RefractionDippingModelcurrentTiltModel ()
virtual bool isA (const char *className)
 Test whether this class is of type className.
void loadRefra (int modelIndex)
 load the model, the cost, the hodochrone curve
void loadRefra (CompatHodoChrone *hodo, int modelIndex)
CompatHodoChroneDataloadRefraGoal ()
void modifyRefraGoal (CompatHodoChroneData *rms)
 ~CompatRefraReport ()

Protected Member Functions

virtual bool initCurrentDispersion ()
 initialize current dispersion object
void initCurrentTiltModel ()

Protected Attributes

RefractionDippingModel_currentTiltModel

Constructor & Destructor Documentation

QGpCompatibility::CompatRefraReport::CompatRefraReport ( bool  isWrite,
QString  reportFile,
QString  naInFile = QString::null,
int  nModels = 0 
)

References QGpCompatibility::CompatInversionReport::_currentDispersion, _currentTiltModel, and TRACE.

                                                                                                   :
CompatInversionReport(isWrite,reportFile,naInFile,nModels)
{
  TRACE;
  _currentTiltModel=0;
  if(!isWrite) { // Force _currentDispersion to be a CompatHodoChrone
    delete _currentDispersion;
    _currentDispersion=0;
  }
}

References _currentTiltModel, and TRACE.

{
  TRACE;
  delete _currentTiltModel;
}

Member Function Documentation

Returns the autocorr curves of current model.

References QGpCompatibility::CompatInversionReport::_currentDispersion, loadRefra(), and TRACE.

{
  TRACE;
  if(!_currentDispersion) loadRefra(0);  
  return (CompatHodoChrone *)_currentDispersion;
}
bool QGpCompatibility::CompatRefraReport::isA ( const char *  className) [virtual]

Test whether this class is of type className.

Reimplemented from QGpCompatibility::CompatInversionReport.

References TRACE.

{
  TRACE;
  return strcmp(className, "CompatRefraReport")==0;
}

load the model, the cost, the hodochrone curve

References QGpCompatibility::CompatInversionReport::_currentCost, QGpCompatibility::CompatInversionReport::_currentDispersion, QGpCompatibility::CompatInversionReport::_currentID, QGpCompatibility::CompatInversionReport::_currentModel, QGpCompatibility::CompatInversionReport::_currentNAModel, _currentTiltModel, QGpCompatibility::CompatInversionReport::_headerBlocksCount, QGpCompatibility::CompatInversionReport::_nd, QGpCompatibility::CompatInversionReport::_s, QGpCompatibility::CompatInversionReport::_version, QGpCoreWave::Seismic1DModel::fromStream(), initCurrentDispersion(), initCurrentTiltModel(), QGpCompatibility::CompatInversionReport::ModelDispersion, QGpCompatibility::CompatMultiModalCurves::reportToRefines(), QGpCompatibility::CompatMultiModalCurves::reportToValues(), QGpCompatibility::CompatInversionReport::startReadingBlock(), and TRACE.

Referenced by currentHodoChrone().

{
  TRACE;
  if(!_currentTiltModel) initCurrentTiltModel();
  if(!_currentNAModel) _currentNAModel=new float [_nd];
  if(!_currentDispersion) initCurrentDispersion();
  if(startReadingBlock(modelIndex+_headerBlocksCount,ModelDispersion)) {
    _s >> _currentID;
    _currentModel->fromStream(_s);
    //_currentTiltModel->set(_currentModel);
    _s >> _currentCost;
    if(_version>=4) _s.readRawData((char *)_currentNAModel,_nd*sizeof(float));
    _currentDispersion->reportToValues(_s);
    if(_version>0) _currentDispersion->reportToRefines(_s);
    //_currentTiltModel->reportToSpec(_s);
  }
  else _currentCost=-1;
}

References QGpCompatibility::CompatInversionReport::_blockOmegas, QGpCompatibility::CompatInversionReport::_currentCost, QGpCompatibility::CompatInversionReport::_currentDispersion, QGpCompatibility::CompatInversionReport::_currentID, QGpCompatibility::CompatInversionReport::_currentModel, QGpCompatibility::CompatInversionReport::_currentNAModel, _currentTiltModel, QGpCompatibility::CompatInversionReport::_headerBlocksCount, QGpCompatibility::CompatInversionReport::_nd, QGpCompatibility::CompatInversionReport::_s, QGpCompatibility::CompatInversionReport::_version, QGpCoreWave::Seismic1DModel::fromStream(), initCurrentDispersion(), initCurrentTiltModel(), QGpCompatibility::CompatInversionReport::ModelDispersion, QGpCompatibility::CompatInversionReport::Omegas, QGpCompatibility::CompatMultiModalCurves::reportToOmega(), QGpCompatibility::CompatMultiModalCurves::reportToRefines(), QGpCompatibility::CompatMultiModalCurves::reportToValues(), QGpCompatibility::CompatInversionReport::startReadingBlock(), and TRACE.

{
  TRACE;
  if(!_currentTiltModel) initCurrentTiltModel();
  if(!_currentNAModel) _currentNAModel=new float [_nd];
  if(!_currentDispersion) initCurrentDispersion();
  if(startReadingBlock(_blockOmegas,Omegas)) {
    hodo->reportToOmega(_s);
    if(startReadingBlock(modelIndex+_headerBlocksCount,ModelDispersion)) {
      _s >> _currentID;
      _currentModel->fromStream(_s);
      //_currentTiltModel->set(_currentModel);
      _s >> _currentCost;
      if(_version>=4) _s.readRawData((char *)_currentNAModel,_nd*sizeof(float));
      hodo->reportToValues(_s);
      if(_version>=1) hodo->reportToRefines(_s);
    }
    else _currentCost=-1;
  }
  else _currentCost=-1;
}

Re-writing over the existing goal curves, extrem caution may be observe to the size of the new CompatHodoChroneData: it must be exactly the same structure as the one added with addRefraGoal(), only some changes in the values are tolerated

References QGpCompatibility::CompatInversionReport::_blockGoal, QGpCompatibility::CompatInversionReport::_s, QGpCompatibility::CompatMultiModalData::dataToReport(), QGpCompatibility::CompatInversionReport::endWritingBlock(), QGpCompatibility::CompatInversionReport::RefraGoal, QGpCompatibility::CompatInversionReport::startWritingBlock(), and TRACE.

{
  TRACE;
  startWritingBlock(_blockGoal,RefraGoal);  
  if(hd) hd->dataToReport(_s);
  endWritingBlock();
}

Member Data Documentation


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines