All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines
Public Types | Public Member Functions | Static Public Attributes
GeopsyCore::TimeRangeParameters Class Reference

Parameters to define time limits. More...

#include <TimeRangeParameters.h>

Inheritance diagram for GeopsyCore::TimeRangeParameters:
GeopsyCore::TimeRange QGpCoreTools::AbstractParameters QGpCoreTools::XMLClass

List of all members.

Public Types

enum  Type { Absolute, Delta, Signal, Pick }

Public Member Functions

TimeRange absoluteRange () const
TimeRange absoluteRange (const GeopsyCore::Signal *sig) const
TimeRange absoluteRange (const StationSignals *sigs) const
virtual void collectKeywords (PARAMETERS_COLLECTKEYWORDS_ARGS)
double deltaT () const
const QString & endPick () const
Type endType () const
QString endTypeString () const
virtual int keywordCount (PARAMETERS_KEYWORDCOUNT_ARGS)
void operator= (const TimeRangeParameters &o)
void setDeltaT (double dt)
void setEndPick (const QString &p)
void setEndType (Type t)
void setEndType (const QString &t)
void setStartPick (const QString &p)
void setStartType (Type t)
void setStartType (const QString &t)
void setUseFirstSignal (bool f)
virtual bool setValue (PARAMETERS_SETVALUE_ARGS)
const QString & startPick () const
Type startType () const
QString startTypeString () const
 TimeRangeParameters ()
 TimeRangeParameters (const TimeRangeParameters &o)
virtual QString toString (PARAMETERS_TOSTRING_ARGS_DECL) const
bool useFirstSignal () const
virtual void xml_attributes (XML_ATTRIBUTES_ARGS) const
virtual bool xml_setAttributes (XML_SETATTRIBUTES_ARGS)
virtual const QString & xml_tagName () const

Static Public Attributes

static const QString xmlTimeRangeParametersTag = "TimeRangeParameters"

Detailed Description

Parameters to define time limits.

Defines time limits according to signal properties. It can be relative to t0, end, time picks or absolute.


Member Enumeration Documentation

Enumerator:
Absolute 
Delta 
Signal 
Pick 

Constructor & Destructor Documentation

References TRACE.

  : TimeRange(-1e99, 1e99), AbstractParameters(), XMLClass()
{
  TRACE;
  _deltaT=0.0;
  _startType=Signal;
  _endType=Signal;
  _useFirstSignal=false;
}

Member Function Documentation

References GeopsyCore::TimeRange::TimeRange().

{
  return TimeRange(absoluteStart(sig), absoluteEnd(sig));
}

References Delta, GeopsyCore::StationSignals::firstValidSignal(), GeopsyCore::StationSignals::lastValidSignal(), and GeopsyCore::TimeRange::TimeRange().

{
  double t1, t2;
  if(_startType==Delta && _endType!=Delta) {
    t2=absoluteEnd(sigs->lastValidSignal());
    t1=t2-_deltaT;
  } else if(_endType==Delta && _startType!=Delta) {
    t1=absoluteStart(sigs->firstValidSignal());
    t2=t1+_deltaT;
  } else {
    t1=absoluteStart(sigs->firstValidSignal());
    t2=absoluteEnd(sigs->lastValidSignal());
  }
  return TimeRange(t1, t2);
}

Reimplemented from QGpCoreTools::AbstractParameters.

References TRACE.

Referenced by TFAParameters::collectKeywords(), Parameters::collectKeywords(), ArrayCore::ArrayParameters::collectKeywords(), and ArrayCore::LinearFKParameters::collectKeywords().

{
  TRACE;
  keywords.add(prefix+"FROM TIME TYPE", this, 0);
  keywords.add(prefix+"FROM TIME TEXT", this, 1);
  keywords.add(prefix+"TO TIME TYPE", this, 2);
  keywords.add(prefix+"TO TIME TEXT", this, 3);
  keywords.add(prefix+"USE FIRST PICK ONLY", this, 4);
}
double GeopsyCore::TimeRangeParameters::deltaT ( ) const [inline]

Referenced by xml_attributes().

{return _deltaT;}
const QString& GeopsyCore::TimeRangeParameters::endPick ( ) const [inline]

Referenced by GeopsyGui::TimeRangeParameterWidget::setParameters().

{return _endType;}

Referenced by toString(), and xml_attributes().

{return type2String(_endType);}

Reimplemented from QGpCoreTools::AbstractParameters.

{
  return 5;
}
void GeopsyCore::TimeRangeParameters::operator= ( const TimeRangeParameters o) [inline]

References TRACE.

{
  TRACE;
  _startPick=o._startPick;
  _endPick=o._endPick;
  _deltaT=o._deltaT;
  _startType=o._startType;
  _endType=o._endType;
  _useFirstSignal=o._useFirstSignal;
  TimeRange::operator=(o);
}
void GeopsyCore::TimeRangeParameters::setDeltaT ( double  dt) [inline]
void GeopsyCore::TimeRangeParameters::setEndPick ( const QString &  p) [inline]
void GeopsyCore::TimeRangeParameters::setEndType ( const QString &  t) [inline]
{_endType=string2Type(t);}
void GeopsyCore::TimeRangeParameters::setStartPick ( const QString &  p) [inline]
void GeopsyCore::TimeRangeParameters::setStartType ( const QString &  t) [inline]
{_startType=string2Type(t);}

Reimplemented from QGpCoreTools::AbstractParameters.

References Absolute, Delta, Pick, GeopsyCore::TimeRange::setEnd(), setEndType(), GeopsyCore::TimeRange::setStart(), setStartType(), and TRACE.

{
  TRACE;
  switch(index) {
  case 0:
    setStartType(value);
    return true;
  case 1:
    switch(_startType) {
    case Pick:
      _startPick=value;
      break;
    case Delta:
      _deltaT=value.toDouble();
    case Absolute:
      setStart(value.toDouble());
      break;
    default:
      break;
    }
    return true;
  case 2:
    setEndType(value);
    return true;
  case 3:
    switch(_endType) {
    case Pick:
      _endPick=value;
      break;
    case Delta:
      _deltaT=value.toDouble();
    case Absolute:
      setEnd(value.toDouble());
      break;
    default:
      break;
    }
    return true;
  case 4:   
    _useFirstSignal=(value=="y");
    return true;
  default:
    return false;
  }
}
const QString& GeopsyCore::TimeRangeParameters::startPick ( ) const [inline]

Referenced by GeopsyGui::TimeRangeParameterWidget::setParameters().

{return _startType;}

Referenced by toString(), and xml_attributes().

{return type2String(_startType);}

Reimplemented from QGpCoreTools::AbstractParameters.

References Absolute, Delta, GeopsyCore::TimeRange::end(), endTypeString(), QGpCoreTools::log(), Pick, GeopsyCore::TimeRange::start(), startTypeString(), and TRACE.

Referenced by TFAParameters::toString(), Parameters::toString(), ArrayCore::ArrayParameters::toString(), and ArrayCore::LinearFKParameters::toString().

{
  TRACE;
  QString log;
  log+=prefix+"FROM TIME TYPE="+startTypeString()+"\n";
  switch(_startType) {
  case Pick:
    log+=prefix+"FROM TIME TEXT="+_startPick+"\n";
    break;
  case Delta:
    log+=prefix+"FROM TIME TEXT="+QString::number(_deltaT)+"\n";
  case Absolute:
    log+=prefix+"FROM TIME TEXT="+QString::number(start())+"\n";
  default:
      break;
  }
  log+=prefix+"TO TIME TYPE="+endTypeString()+"\n";
  switch(_endType) {
  case Pick:
    log+=prefix+"TO TIME TEXT="+_endPick+"\n";
    break;
  case Delta:
    log+=prefix+"TO TIME TEXT="+QString::number(_deltaT)+"\n";
  case Absolute:
    log+=prefix+"TO TIME TEXT="+QString::number(end())+"\n";
  default:
      break;
  }
  log+=prefix+"USE FIRST PICK ONLY="+(_useFirstSignal ? "y" : "n")+"\n";
  return log;
}

Referenced by GeopsyGui::TimeRangeParameterWidget::setParameters(), and xml_attributes().

{return _useFirstSignal;}

Reimplemented from QGpCoreTools::XMLClass.

References deltaT(), GeopsyCore::TimeRange::end(), endPick(), endTypeString(), GeopsyCore::TimeRange::start(), startPick(), startTypeString(), and useFirstSignal().

Referenced by GeopsyGui::SignalLayer::xml_writeProperties().

{
  Q_UNUSED(context);
  static const QString keys[]={ "startType", "endType", "useFirstSignal",  "startPick", "endPick", "deltaT", "start", "end" };
  attributes.add(keys[0], startTypeString());
  attributes.add(keys[1], endTypeString());
  attributes.add(keys[2], useFirstSignal() ? "true" : "false" );
  attributes.add(keys[3], startPick());
  attributes.add(keys[4], endPick());
  attributes.add(keys[5], QString::number(deltaT()) );
  attributes.add(keys[6], QString::number(start()) );
  attributes.add(keys[7], QString::number(end()) );
}

Reimplemented from QGpCoreTools::XMLClass.

References QGpCoreTools::endl(), setDeltaT(), GeopsyCore::TimeRange::setEnd(), setEndPick(), setEndType(), GeopsyCore::TimeRange::setStart(), setStartPick(), setStartType(), setUseFirstSignal(), QGpCoreTools::StringSection::size(), QGpCoreTools::StringSection::toString(), and QGpCoreTools::tr().

Referenced by GeopsyGui::SignalLayer::xml_setProperty().

{
  Q_UNUSED(context);
  XMLRestoreAttributeIterator it;
  for(it=attributes.begin(); it!=attributes.end();it++) {
    const StringSection& att=it.key();
    switch(att[0].unicode()) {
    case 's':
      if(att.size()>5) {
        if(att[5].unicode()=='T') {
          setStartType(it.value().toString());
        } else {
          setStartPick(it.value().toString());
        }
      } else {
        setStart(it.value().toDouble());
      }
      break;
    case 'e':
      if(att.size()>5) {
        if(att[5].unicode()=='T') {
          setEndType(it.value().toString());
        } else {
          setEndPick(it.value().toString());
        }
      } else {
        setEnd(it.value().toDouble());
      }
      break;
    case 'u':
      setUseFirstSignal(it.value()=="true" );
      break;
    case 'd':
      setDeltaT(it.value().toDouble());
      break;
    default:
      App::stream() << tr("Bad attribute: %1").arg(att.toString()) << endl;
      return false;
    }
  }
  return true;
}
virtual const QString& GeopsyCore::TimeRangeParameters::xml_tagName ( ) const [inline, virtual]

Member Data Documentation

const QString GeopsyCore::TimeRangeParameters::xmlTimeRangeParametersTag = "TimeRangeParameters" [static]

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