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

#include <CompatDataPoint.h>

Inheritance diagram for QGpCompatibility::CompatDataPoint:
QGpCoreTools::XMLClass QGpCompatibility::CompatFunctionPoint QGpCompatibility::CompatVDataPoint

List of all members.

Public Member Functions

 CompatDataPoint ()
 CompatDataPoint (double mean, double stddev, double _weight)
double & mean ()
const double & mean () const
double misfitOrder1 (double value, double invalid)
void operator= (const CompatDataPoint &o)
double & stddev ()
const double & stddev () const
double & weight ()
const double & weight () const

Protected Member Functions

virtual XMLMember xml_member (XML_MEMBER_ARGS)
virtual bool xml_setProperty (XML_SETPROPERTY_ARGS)
virtual const QString & xml_tagName () const
virtual void xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const

Protected Attributes

double _mean
double _stddev
double _weight

Static Protected Attributes

static const QString xmlDataPointTag = "DataPoint"

Constructor & Destructor Documentation

{}
QGpCompatibility::CompatDataPoint::CompatDataPoint ( double  mean,
double  stddev,
double  _weight 
) [inline]

Member Function Documentation

const double& QGpCompatibility::CompatDataPoint::mean ( ) const [inline]
{return _mean;}
double QGpCompatibility::CompatDataPoint::misfitOrder1 ( double  value,
double  invalid 
) [inline]

References _mean, _stddev, and TRACE.

{
  TRACE;
  if(value!=invalid) {
    double diff;
    if(_stddev)
      diff=(_mean - value)/_stddev;
    else
      diff=(_mean - value)/_mean;
    return (diff > 0) ? diff : -diff;
  }
  return 1e99;
}
void QGpCompatibility::CompatDataPoint::operator= ( const CompatDataPoint o) [inline]

Reimplemented in QGpCompatibility::CompatVDataPoint.

References _mean, _stddev, _weight, and TRACE.

{
  TRACE;
  _mean=o._mean;
  _stddev=o._stddev;
  _weight=o._weight;
}
const double& QGpCompatibility::CompatDataPoint::stddev ( ) const [inline]
{return _stddev;}
const double& QGpCompatibility::CompatDataPoint::weight ( ) const [inline]
{return _weight;}

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 TRACE.

{
  TRACE;
  Q_UNUSED(attributes);
  Q_UNUSED(context);
  if(tag=="mean") return XMLMember(0);
  else if(tag=="stddev") return XMLMember(1);
  else if(tag=="weight") return XMLMember(2);
  else return false;
  return true;  
}

Re-implement this function to offer XML restore properties support to your class.

From memberID set the corresponding property with value content. The map of attributes is given as a supplementary information (not useful in all cases).

For a general case:

  Q_UNUSED(attributes);
  double val=content.toDouble();
  switch (memberID) {
  case 0:
    _x1=val;
    return true;
  case 1:
    _y1=val;
    return true;
  case 2:
    _x2=val;
    return true;
  case 3:
    _y2=val;
    return true;
  default:
    return false;
  }

For classes inheriting other classes (see also xml_member())

  switch (memberID) {
  case 0:
    _anInteger=content.toString();
    return true;
  case 1:
    _aString=content.toInt();
    return true;
  case 2:
    _aDouble=content.toDouble();
    return true;
  default:
    return AbstractLine::xml_setProperty(memberID-3, map, content);

For the arguments of this function use Macro XML_SETPROPERTY_ARGS.

Reimplemented from QGpCoreTools::XMLClass.

References _mean, _stddev, _weight, and TRACE.

{
  TRACE;
  Q_UNUSED(tag);
  Q_UNUSED(attributes);
  Q_UNUSED(context);
  switch (memberID) {
  case 0: _mean=content.toDouble(); return true;
  case 1: _stddev=content.toDouble(); return true;
  case 2: _weight=content.toDouble(); return true;
  default: return false;
  }
}
virtual const QString& QGpCompatibility::CompatDataPoint::xml_tagName ( ) const [inline, protected, virtual]

Implements QGpCoreTools::XMLClass.

{return xmlDataPointTag;}

Reimplemented from QGpCoreTools::XMLClass.

References _mean, _stddev, _weight, TRACE, and QGpCoreTools::XMLClass::writeProperty().

{
  TRACE;
  Q_UNUSED(context);
  writeProperty(s, "mean",_mean);
  writeProperty(s, "stddev",_stddev);
  writeProperty(s, "weight",_weight);
}

Member Data Documentation

const QString QGpCompatibility::CompatDataPoint::xmlDataPointTag = "DataPoint" [static, protected]

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