1 #ifndef COIN_SCXMLEVALUATOR_H
2 #define COIN_SCXMLEVALUATOR_H
36 #include <Inventor/scxml/ScXMLObject.h>
37 #include <Inventor/tools/SbLazyPimplPtr.h>
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);
70 SbLazyPimplPtr<PImpl> pimpl;
88 ScXMLObject * getContainer(
void)
const {
return this->container; }
99 static void initClass(
void);
100 static void cleanClass(
void);
103 virtual void convertToString(
SbString & str)
const = 0;
109 SCXML_OBJECT_HEADER(ScXMLStringDataObj)
112 static
void initClass(
void);
113 static
void cleanClass(
void);
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)
137 static
void initClass(
void);
138 static
void cleanClass(
void);
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)
162 static
void initClass(
void);
163 static
void cleanClass(
void);
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)
187 static
void initClass(
void);
188 static
void cleanClass(
void);
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;
208 class COIN_DLL_API ScXMLXMLDataObj :
public ScXMLDataObj {
209 SCXML_OBJECT_HEADER(ScXMLXMLDataObj)
212 static
void initClass(
void);
213 static
void cleanClass(
void);
215 ScXMLXMLDataObj(
void);
216 virtual ~ScXMLXMLDataObj(
void);
223 class COIN_DLL_API ScXMLExprDataObj : public
ScXMLDataObj {
224 SCXML_OBJECT_ABSTRACT_HEADER(ScXMLExprDataObj)
225 typedef ScXMLDataObj inherited;
227 static
void initClass(
void);
228 static
void cleanClass(
void);
230 ScXMLExprDataObj(
void);
231 virtual ~ScXMLExprDataObj(
void);
236 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer) const = 0;
239 ScXMLDataObj * result;
246 typedef ScXMLExprDataObj inherited;
248 static void initClass(
void);
249 static void cleanClass(
void);
251 static ScXMLDataObj * createFor(
const char * reference);
257 void setReference(
const char * reference);
258 const char * getReference(
void)
const {
return this->reference; }
260 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
273 typedef ScXMLExprDataObj inherited;
275 static void initClass(
void);
276 static void cleanClass(
void);
278 static ScXMLDataObj * createFor(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
284 void setLHS(ScXMLDataObj * lhs);
285 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
286 void setRHS(ScXMLDataObj * rhs);
287 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
290 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
293 ScXMLDataObj * lhs, * rhs;
298 class COIN_DLL_API ScXMLOrOpExprDataObj :
public ScXMLExprDataObj {
299 SCXML_OBJECT_HEADER(ScXMLOrOpExprDataObj)
300 typedef ScXMLExprDataObj inherited;
302 static
void initClass(
void);
303 static
void cleanClass(
void);
305 static ScXMLDataObj * createFor(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
307 ScXMLOrOpExprDataObj(
void);
308 ScXMLOrOpExprDataObj(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
309 virtual ~ScXMLOrOpExprDataObj(
void);
311 void setLHS(ScXMLDataObj * lhs);
312 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
313 void setRHS(ScXMLDataObj * rhs);
314 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
317 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
320 ScXMLDataObj * lhs, * rhs;
325 class COIN_DLL_API ScXMLNotOpExprDataObj :
public ScXMLExprDataObj {
326 SCXML_OBJECT_HEADER(ScXMLNotOpExprDataObj)
327 typedef ScXMLExprDataObj inherited;
329 static
void initClass(
void);
330 static
void cleanClass(
void);
332 static ScXMLDataObj * createFor(ScXMLDataObj * rhs);
334 ScXMLNotOpExprDataObj(
void);
335 ScXMLNotOpExprDataObj(ScXMLDataObj * rhs);
336 virtual ~ScXMLNotOpExprDataObj(
void);
338 void setRHS(ScXMLDataObj * rhs);
339 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
342 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
350 class COIN_DLL_API ScXMLEqualsOpExprDataObj :
public ScXMLExprDataObj {
351 SCXML_OBJECT_HEADER(ScXMLEqualsOpExprDataObj)
352 typedef ScXMLExprDataObj inherited;
354 static
void initClass(
void);
355 static
void cleanClass(
void);
357 static ScXMLDataObj * createFor(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
359 ScXMLEqualsOpExprDataObj(
void);
360 ScXMLEqualsOpExprDataObj(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
361 virtual ~ScXMLEqualsOpExprDataObj(
void);
363 void setLHS(ScXMLDataObj * lhs);
364 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
365 void setRHS(ScXMLDataObj * rhs);
366 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
369 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
372 ScXMLDataObj * lhs, * rhs;
380 class COIN_DLL_API ScXMLAddOpExprDataObj :
public ScXMLExprDataObj {
381 SCXML_OBJECT_HEADER(ScXMLAddOpExprDataObj)
382 typedef ScXMLExprDataObj inherited;
384 static
void initClass(
void);
385 static
void cleanClass(
void);
387 static ScXMLDataObj * createFor(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
389 ScXMLAddOpExprDataObj(
void);
390 ScXMLAddOpExprDataObj(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
391 virtual ~ScXMLAddOpExprDataObj(
void);
393 void setLHS(ScXMLDataObj * lhs);
394 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
395 void setRHS(ScXMLDataObj * rhs);
396 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
399 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
402 ScXMLDataObj * lhs, * rhs;
407 class COIN_DLL_API ScXMLSubtractOpExprDataObj :
public ScXMLExprDataObj {
408 SCXML_OBJECT_HEADER(ScXMLSubtractOpExprDataObj)
409 typedef ScXMLExprDataObj inherited;
411 static
void initClass(
void);
412 static
void cleanClass(
void);
414 static ScXMLDataObj * createFor(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
416 ScXMLSubtractOpExprDataObj(
void);
417 ScXMLSubtractOpExprDataObj(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
418 virtual ~ScXMLSubtractOpExprDataObj(
void);
420 void setLHS(ScXMLDataObj * lhs);
421 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
422 void setRHS(ScXMLDataObj * rhs);
423 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
426 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
429 ScXMLDataObj * lhs, * rhs;
434 class COIN_DLL_API ScXMLMultiplyOpExprDataObj :
public ScXMLExprDataObj {
435 SCXML_OBJECT_HEADER(ScXMLMultiplyOpExprDataObj)
436 typedef ScXMLExprDataObj inherited;
438 static
void initClass(
void);
439 static
void cleanClass(
void);
441 static ScXMLDataObj * createFor(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
443 ScXMLMultiplyOpExprDataObj(
void);
444 ScXMLMultiplyOpExprDataObj(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
445 virtual ~ScXMLMultiplyOpExprDataObj(
void);
447 void setLHS(ScXMLDataObj * lhs);
448 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
449 void setRHS(ScXMLDataObj * rhs);
450 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
453 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
456 ScXMLDataObj * lhs, * rhs;
461 class COIN_DLL_API ScXMLDivideOpExprDataObj :
public ScXMLExprDataObj {
462 SCXML_OBJECT_HEADER(ScXMLDivideOpExprDataObj)
463 typedef ScXMLExprDataObj inherited;
465 static
void initClass(
void);
466 static
void cleanClass(
void);
468 static ScXMLDataObj * createFor(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
470 ScXMLDivideOpExprDataObj(
void);
471 ScXMLDivideOpExprDataObj(ScXMLDataObj * lhs, ScXMLDataObj * rhs);
472 virtual ~ScXMLDivideOpExprDataObj(
void);
474 void setLHS(ScXMLDataObj * lhs);
475 const ScXMLDataObj * getLHS(
void)
const {
return this->lhs; }
476 void setRHS(ScXMLDataObj * rhs);
477 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
480 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
483 ScXMLDataObj * lhs, * rhs;
488 class COIN_DLL_API ScXMLNegateOpExprDataObj :
public ScXMLExprDataObj {
489 SCXML_OBJECT_HEADER(ScXMLNegateOpExprDataObj)
490 typedef ScXMLExprDataObj inherited;
492 static
void initClass(
void);
493 static
void cleanClass(
void);
495 static ScXMLDataObj * createFor(ScXMLDataObj * rhs);
497 ScXMLNegateOpExprDataObj(
void);
498 ScXMLNegateOpExprDataObj(ScXMLDataObj * rhs);
499 virtual ~ScXMLNegateOpExprDataObj(
void);
501 void setRHS(ScXMLDataObj * rhs);
502 const ScXMLDataObj * getRHS(
void)
const {
return this->rhs; }
505 virtual SbBool evaluateNow(
ScXMLStateMachine * sm, ScXMLDataObj *& pointer)
const;
513 #endif // !COIN_SCXMLEVALUATOR_H
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
defines an interface for profile-dependent evaluators.
Definition: ScXMLEvaluator.h:44
Implements the logical AND operator.
Definition: ScXMLEvaluator.h:271
static void initClass(void)
Sets up initialization for data common to all instances of this class, like submitting necessary info...
Definition: ScXMLObject.cpp:102
Definition: ScXMLDocument.h:47
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
A data object representing a reference to another object in the data model.
Definition: ScXMLEvaluator.h:244
Base class for all SCXML objects.
Definition: ScXMLObject.h:41
The SbString class is a string class with convenience functions for string operations.This is the class used for storing and working with character strings. It automatically takes care of supporting all the "bookkeeping" tasks usually associated with working with character strings, like memory allocation and deallocation etc.
Definition: SbString.h:52
Manager for processing events and setting states in SCXML structures.
Definition: ScXMLStateMachine.h:61