1#ifndef COIN_SCXMLEVALUATOR_H
2#define COIN_SCXMLEVALUATOR_H
36#include <Inventor/scxml/ScXMLObject.h>
37#include <Inventor/tools/SbLazyPimplPtr.h>
44class COIN_DLL_API ScXMLEvaluator :
public ScXMLObject {
45 typedef ScXMLObject inherited;
46 SCXML_OBJECT_ABSTRACT_HEADER(ScXMLEvaluator)
52 virtual ~ScXMLEvaluator(
void);
57 virtual ScXMLDataObj * evaluate(
const char * expression)
const = 0;
59 virtual SbBool setAtLocation(
const char * location,
ScXMLDataObj * obj) = 0;
60 virtual ScXMLDataObj * locate(
const char * location)
const = 0;
62 virtual void clearTemporaryVariables(
void);
77class COIN_DLL_API ScXMLDataObj :
public ScXMLObject {
78 SCXML_OBJECT_ABSTRACT_HEADER(ScXMLDataObj)
79 typedef ScXMLObject inherited;
85 virtual ~ScXMLDataObj(
void);
87 void setContainer(ScXMLObject * container);
88 ScXMLObject * getContainer(
void)
const {
return this->container; }
97 typedef ScXMLDataObj inherited;
102 virtual ScXMLDataObj * clone(
void)
const = 0;
103 virtual void convertToString(
SbString & str)
const = 0;
109 SCXML_OBJECT_HEADER(ScXMLStringDataObj)
117 ScXMLStringDataObj(
void);
118 ScXMLStringDataObj(
const char * value);
119 virtual ~ScXMLStringDataObj(
void);
121 void setString(
const char * value);
122 const char * getString(
void)
const {
return this->value; }
125 virtual void convertToString(
SbString & str)
const;
134 SCXML_OBJECT_HEADER(ScXMLRealDataObj)
142 ScXMLRealDataObj(
void);
143 ScXMLRealDataObj(
double value);
144 virtual ~ScXMLRealDataObj(
void);
146 void setReal(
double value);
147 double getReal(
void)
const {
return this->value; }
150 virtual void convertToString(
SbString & str)
const;
159 SCXML_OBJECT_HEADER(ScXMLBoolDataObj)
167 ScXMLBoolDataObj(
void);
168 ScXMLBoolDataObj(SbBool value);
169 virtual ~ScXMLBoolDataObj(
void);
171 void setBool(SbBool value);
172 SbBool getBool(
void)
const {
return this->value; }
175 virtual void convertToString(
SbString & str)
const;
184 SCXML_OBJECT_HEADER(ScXMLSbDataObj)
192 ScXMLSbDataObj(
void);
193 ScXMLSbDataObj(
const char * value);
194 virtual ~ScXMLSbDataObj(
void);
196 void setSbValue(
const char * value);
197 const char * getSbValue(
void)
const {
return this->value; }
200 virtual void convertToString(
SbString & str)
const;
208class COIN_DLL_API ScXMLXMLDataObj :
public ScXMLDataObj {
209 SCXML_OBJECT_HEADER(ScXMLXMLDataObj)
210 typedef ScXMLDataObj inherited;
215 ScXMLXMLDataObj(
void);
216 virtual ~ScXMLXMLDataObj(
void);
218 virtual ScXMLDataObj * clone(
void)
const;
223class COIN_DLL_API ScXMLExprDataObj :
public ScXMLDataObj {
224 SCXML_OBJECT_ABSTRACT_HEADER(ScXMLExprDataObj)
225 typedef ScXMLDataObj inherited;
230 ScXMLExprDataObj(
void);
231 virtual ~ScXMLExprDataObj(
void);
236 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const = 0;
239 ScXMLDataObj * result;
244class COIN_DLL_API ScXMLReferenceDataObj :
public ScXMLExprDataObj {
245 SCXML_OBJECT_HEADER(ScXMLReferenceDataObj)
246 typedef ScXMLExprDataObj inherited;
251 static ScXMLDataObj * createFor(
const char * reference);
253 ScXMLReferenceDataObj(
void);
254 ScXMLReferenceDataObj(
const char * reference);
255 virtual ~ScXMLReferenceDataObj(
void);
257 void setReference(
const char * reference);
258 const char * getReference(
void)
const {
return this->reference; }
271class COIN_DLL_API ScXMLAndOpExprDataObj :
public ScXMLExprDataObj {
272 SCXML_OBJECT_HEADER(ScXMLAndOpExprDataObj)
273 typedef ScXMLExprDataObj inherited;
280 ScXMLAndOpExprDataObj(
void);
282 virtual ~ScXMLAndOpExprDataObj(
void);
285 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
287 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
298class COIN_DLL_API ScXMLOrOpExprDataObj :
public ScXMLExprDataObj {
299 SCXML_OBJECT_HEADER(ScXMLOrOpExprDataObj)
300 typedef ScXMLExprDataObj inherited;
307 ScXMLOrOpExprDataObj(
void);
309 virtual ~ScXMLOrOpExprDataObj(
void);
312 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
314 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
325class COIN_DLL_API ScXMLNotOpExprDataObj :
public ScXMLExprDataObj {
326 SCXML_OBJECT_HEADER(ScXMLNotOpExprDataObj)
327 typedef ScXMLExprDataObj inherited;
334 ScXMLNotOpExprDataObj(
void);
336 virtual ~ScXMLNotOpExprDataObj(
void);
339 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
350class COIN_DLL_API ScXMLEqualsOpExprDataObj :
public ScXMLExprDataObj {
351 SCXML_OBJECT_HEADER(ScXMLEqualsOpExprDataObj)
352 typedef ScXMLExprDataObj inherited;
359 ScXMLEqualsOpExprDataObj(
void);
361 virtual ~ScXMLEqualsOpExprDataObj(
void);
364 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
366 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
380class COIN_DLL_API ScXMLAddOpExprDataObj :
public ScXMLExprDataObj {
381 SCXML_OBJECT_HEADER(ScXMLAddOpExprDataObj)
382 typedef ScXMLExprDataObj inherited;
389 ScXMLAddOpExprDataObj(
void);
391 virtual ~ScXMLAddOpExprDataObj(
void);
394 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
396 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
407class COIN_DLL_API ScXMLSubtractOpExprDataObj :
public ScXMLExprDataObj {
408 SCXML_OBJECT_HEADER(ScXMLSubtractOpExprDataObj)
409 typedef ScXMLExprDataObj inherited;
416 ScXMLSubtractOpExprDataObj(
void);
418 virtual ~ScXMLSubtractOpExprDataObj(
void);
421 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
423 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
434class COIN_DLL_API ScXMLMultiplyOpExprDataObj :
public ScXMLExprDataObj {
435 SCXML_OBJECT_HEADER(ScXMLMultiplyOpExprDataObj)
436 typedef ScXMLExprDataObj inherited;
443 ScXMLMultiplyOpExprDataObj(
void);
445 virtual ~ScXMLMultiplyOpExprDataObj(
void);
448 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
450 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
461class COIN_DLL_API ScXMLDivideOpExprDataObj :
public ScXMLExprDataObj {
462 SCXML_OBJECT_HEADER(ScXMLDivideOpExprDataObj)
463 typedef ScXMLExprDataObj inherited;
470 ScXMLDivideOpExprDataObj(
void);
472 virtual ~ScXMLDivideOpExprDataObj(
void);
475 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
477 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
488class COIN_DLL_API ScXMLNegateOpExprDataObj :
public ScXMLExprDataObj {
489 SCXML_OBJECT_HEADER(ScXMLNegateOpExprDataObj)
490 typedef ScXMLExprDataObj inherited;
497 ScXMLNegateOpExprDataObj(
void);
499 virtual ~ScXMLNegateOpExprDataObj(
void);
502 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
Definition SbLazyPimplPtr.h:56
The SbString class is a string class with convenience functions for string operations.
Definition SbString.h:52
base class for immediate data values
Definition ScXMLEvaluator.h:95
base class for evaluator data objects in the SCXML data module
Definition ScXMLEvaluator.h:77
Definition ScXMLDocument.h:47
virtual void setStateMachine(ScXMLStateMachine *sm)
Definition ScXMLEvaluator.cpp:134
Base class for all SCXML objects.
Definition ScXMLObject.h:41
static void cleanClass(void)
Does the opposite of initClass, deallocates any class specific resources and resets the class to an u...
Definition ScXMLObject.cpp:115
static void initClass(void)
Sets up initialization for data common to all instances of this class, like submitting necessary info...
Definition ScXMLObject.cpp:102
Manager for processing events and setting states in SCXML structures.
Definition ScXMLStateMachine.h:61