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

Brief description of class still missing. More...

#include <Param3DGroundModel.h>

Inheritance diagram for DinverDCCore::Param3DGroundModel:
QGpCoreTools::XMLClass

List of all members.

Public Member Functions

void addModel (const ParamGroundModel &gm)
void humanInfo () const
void initFinalProfiles ()
bool isValid () const
ParamGroundModelmodel (int index) const
int modelCount () const
 Param3DGroundModel ()
 Param3DGroundModel (const Param3DGroundModel &o)
void setCustomConditions (const QString &c)
bool toParameters (RealSpace &ps) const
void updateFinalProfiles (const GroundParameter *from=0)
virtual const QString & xml_tagName () const
 ~Param3DGroundModel ()

Static Public Attributes

static const QString xmlParam3DGroundModelTag = "Param3DGroundModel"

Protected Member Functions

virtual XMLMember xml_member (XML_MEMBER_ARGS)
virtual void xml_writeChildren (XML_WRITECHILDREN_ARGS) const

Detailed Description

Brief description of class still missing.

Full description of class still missing


Constructor & Destructor Documentation

Description of constructor still missing

References TRACE.

{
  TRACE;
}

Description of constructor still missing

References model(), and TRACE.

  : XMLClass()
{
  TRACE;
  int n=o._models.count();
  for(int i=0; i<n; i++) {
    ParamGroundModel * model=new ParamGroundModel(*o._models.at(i));
    _models.append(model);
    _lookup.insert(model, i);
  }
  _customConditions=o._customConditions;
}

Description of destructor still missing

References TRACE.

{
  TRACE;
  qDeleteAll(_models);
}

Member Function Documentation

References model(), and TRACE.

Referenced by main(), and xml_member().

{
  TRACE;
  ParamGroundModel * model=new ParamGroundModel(gm);
  _lookup.insert(model, _models.count());
  _models.append(model);
}

References QGpCoreTools::flush(), QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  App::stream() << tr( "\n---------------------- Positions of reference profiles\n\n" );
  for(QVector<ParamGroundModel *>::const_iterator it=_models.begin(); it!=_models.end(); it++) {
    App::stream() << (*it)->position().toString() << "\n";
  }
  App::stream() << flush;
}

References TRACE.

{
  TRACE;
  for(QVector<ParamGroundModel *>::const_iterator it=_models.begin(); it!=_models.end(); it++) {
    (*it)->initFinalProfiles();
  }
}

References QGpCoreTools::endl(), modelCount(), QGpCoreTools::tr(), and TRACE.

{
  TRACE;
  if(modelCount()!=3) {
    App::stream() << tr("Support only for 3 ground model interpolations") << endl;
    return false;
  }
  // Check if there is gradient layers
  for(QVector<ParamGroundModel *>::const_iterator it=_models.begin(); it!=_models.end(); it++) {
    if((*it)->hasGradient()) {
      App::stream() << tr("Gradients are currently not supported") << endl;
      return false;
    }
  }
  return true;
}

Referenced by addModel(), Param3DGroundModel(), and DinverDCCore::TargetList2D::setParamProfiles().

{return _models.at(index);}

Referenced by isValid(), and DinverDCCore::TargetList2D::setParamProfiles().

{return _models.count();}
void DinverDCCore::Param3DGroundModel::setCustomConditions ( const QString &  c) [inline]

Referenced by main().

{_customConditions.setText(c);}

References DinverCore::ParamSpaceScript::apply(), DinverCore::RealSpace::setParameterNamePrefix(), and TRACE.

{
  TRACE;
  int n=_models.count();
  for(int i=0; i<n; i++) {
    ps.setParameterNamePrefix(QString(65+i)+"_");
    if(!_models.at(i)->toParameters(ps)) {
      return false;
    }
  }
  // Add custom conditions between profiles
  if(!_customConditions.apply(&ps)) {
    return false;
  }

  return true;
}

References DinverDCCore::GroundParameter::groundModel(), and TRACE.

{
  TRACE;
  if(from) {
    QHash<const ParamGroundModel *, int>::iterator it=_lookup.find(from->groundModel());
    ASSERT(it!=_lookup.end());
    _models[it.value()]->updateFinalProfiles(from);
  } else {
    for(QVector<ParamGroundModel *>::iterator it=_models.begin(); it!=_models.end(); it++) {
      (*it)->updateFinalProfiles();
    }
  }
}

Re-implement this function to offer XML restore (children and properties) support to your class.

From tag and map (with contains the attibute value) return a unique identifier under the format of a XMLMember. XMLMember is initialized with 3 types of contructors:

  • An integer: id number of a property
  • A XMLClass * : a child of this object identified by tag
  • Default constructor: error, unknow child or property

Map of attributes can be inspected in this way (can be achived also in xml_setProperty()):

    static const QString tmp("childrenName");
    XMLRestoreAttributeIterator it=map.find(tmp);
    if(it!=map.end()) {
      // found attribute "childrenName"
    }

If the map of attributes is not used:

    Q_UNUSED(attributes);
    if(tag=="x1") return XMLMember(0);
    else if(tag=="y1") return XMLMember(1);
    else if(tag=="x2") return XMLMember(2);
    else if(tag=="y2") return XMLMember(3);
    else return XMLMember(XMLMember::Unknown);

Arithmetic operations + and - apply to XMLMember to avoid confusion of property id numbers between inherited objects. Offset 3 corresponds to the number of properties defined in this object.

    if(tag=="anInteger") return XMLMember(0);
    else if(tag=="aString") return XMLMember(1);
    else if(tag=="aDouble") return XMLMember(2);
    return AbstractLine::xml_member(tag, attributes, context)+3;

For the arguments of this function use Macro XML_MEMBER_ARGS.

Reimplemented from QGpCoreTools::XMLClass.

References addModel(), and TRACE.

{
  TRACE;
  Q_UNUSED(context);
  Q_UNUSED(attributes);
  if(tag=="ParamGroundModel" ) {
    addModel(ParamGroundModel());
    return XMLMember(_models.last());
  } else if(tag=="ParamSpaceScript") {
    return XMLMember(&_customConditions);
  }
  return XMLMember(XMLMember::Unknown);
}
virtual const QString& DinverDCCore::Param3DGroundModel::xml_tagName ( ) const [inline, virtual]

Reimplemented from QGpCoreTools::XMLClass.

References TRACE, and QGpCoreTools::XMLClass::xml_save().

{
  TRACE;
  for(QVector<ParamGroundModel *>::const_iterator it=_models.begin(); it!=_models.end(); it++) {
    (*it)->xml_save(s, context);
  }
  _customConditions.xml_save(s, context);
}

Member Data Documentation

const QString DinverDCCore::Param3DGroundModel::xmlParam3DGroundModelTag = "Param3DGroundModel" [static]

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