Brief description of class still missing. More...
#include <ParamSpaceScript.h>
Public Member Functions | |
| bool | apply (RealSpace *param) const |
| ParamSpaceScript () | |
| ParamSpaceScript (const ParamSpaceScript &o) | |
| void | setText (QString t) |
| QString | text () const |
| virtual const QString & | xml_tagName () const |
Static Public Attributes | |
| static const QString | xmlParamSpaceScriptTag = "ParamSpaceScript" |
Protected Member Functions | |
| virtual XMLMember | xml_member (XML_MEMBER_ARGS) |
| virtual bool | xml_setProperty (XML_SETPROPERTY_ARGS) |
| virtual void | xml_writeProperties (XML_WRITEPROPERTIES_ARGS) const |
Brief description of class still missing.
Full description of class still missing
| DinverCore::ParamSpaceScript::ParamSpaceScript | ( | ) | [inline] |
{}
| DinverCore::ParamSpaceScript::ParamSpaceScript | ( | const ParamSpaceScript & | o | ) | [inline] |
: XMLClass() {_text=o._text;}
| bool DinverCore::ParamSpaceScript::apply | ( | RealSpace * | param | ) | const |
References QGpCoreTools::ExpressionContext::addVariable(), QGpCoreTools::ExpressionParser::parse(), TRACE, and DinverCore::RealSpace::variableParameterCount().
Referenced by Forward::setParam(), DinverDCCore::Param3DGroundModel::toParameters(), and DinverDCCore::ParamGroundModel::toParameters().
{
TRACE;
ExpressionParser pEngine;
ParamExpressionContext context(param);
ExpressionActions aList=pEngine.parse(_text, &context);
/* Debug purpose ...
for(HeaderActionList::iterator ita=aList.begin();ita!=aList.end();++ita) {
(*ita)->xml_saveFile("/home/mwathele/debugaction.xml");
}*/
// Do not return an error if list of actions is empty
/*if(aList.isEmpty()) {
App::stream() << tr("error: no expression found to construct parameter space") << endl;
return false;
}*/
for(ExpressionActions::iterator ita=aList.begin();ita!=aList.end();++ita) {
context.addVariable("nd", param->variableParameterCount());
(*ita)->value();
}
qDeleteAll(aList);
return true;
}
| void DinverCore::ParamSpaceScript::setText | ( | QString | t | ) | [inline] |
Referenced by DinverGui::ParamSpaceEditor::script().
{_text=t;}
| QString DinverCore::ParamSpaceScript::text | ( | ) | const [inline] |
Referenced by DinverGui::ParamSpaceEditor::setFrom().
{return _text;}
| XMLMember DinverCore::ParamSpaceScript::xml_member | ( | XML_MEMBER_ARGS | ) | [protected, virtual] |
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:
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.
| bool DinverCore::ParamSpaceScript::xml_setProperty | ( | XML_SETPROPERTY_ARGS | ) | [protected, virtual] |
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 TRACE.
{
TRACE;
Q_UNUSED(tag)
Q_UNUSED(attributes)
Q_UNUSED(context);
switch (memberID) {
case 0: _text=content.toString(); return true;
default: return false;
}
}
| virtual const QString& DinverCore::ParamSpaceScript::xml_tagName | ( | ) | const [inline, virtual] |
Implements QGpCoreTools::XMLClass.
{return xmlParamSpaceScriptTag;}
| void DinverCore::ParamSpaceScript::xml_writeProperties | ( | XML_WRITEPROPERTIES_ARGS | ) | const [protected, virtual] |
Reimplemented from QGpCoreTools::XMLClass.
References TRACE, and QGpCoreTools::XMLClass::writeProperty().
{
TRACE;
Q_UNUSED(context);
writeProperty(s, "text", _text);
}
const QString DinverCore::ParamSpaceScript::xmlParamSpaceScriptTag = "ParamSpaceScript" [static] |