coin_scxml(3)
π coin_scxml π β State Chart XML Classes π
okay bestie, sit down, hydrate, because this is the coin_scxml manual page β it's a whole family of classes that make up a basic implementation of State Chart XML. yes, that's the whole vibe. no cap.
β¨ SYNOPSIS β¨
πΈ Classes πΈ
like, a lot of them. every single one, bestie, no skips:
ScXMLβ namespace for static ScXML-related functions. lowkey just a lil home for the static stuff πScXMLObjectβ Base class for all SCXML objects. the mother of the whole fam πScXMLEventβ Base class for events sent to SCXML state machines. it's giving "message in a bottle" πScXMLEventTargetβ base class for event targets for inter-system event communicationScXMLStateMachineβ Manager for processing events and setting states in SCXML structures. the actual main character of this page, fr fr πScXMLEltβ base class for all SCXML elements.ScXMLEltReaderβ base class for element reader objectsScXMLScxmlEltβ implements the<scxml>SCXML element.ScXMLInitialEltβ implements the<initial>SCXML element.ScXMLAbstractStateEltβ abstract base class for the SCXML 'state' elements.ScXMLStateEltβ implements the<state>SCXML element.ScXMLParallelEltβ implements the<parallel>SCXML element.ScXMLFinalEltβ implements the<final>SCXML element.ScXMLOnEntryEltβ implements the<onentry>SCXML element.ScXMLOnExitEltβ implements the<onexit>SCXML element.ScXMLTransitionEltβ the<transition>SCXML element.ScXMLHistoryEltβ implements the<history>SCXML element.ScXMLExecutableEltβ base class for all SCXML elements with executable content.ScXMLEventEltβ implements the<event>SCXML element.ScXMLIfEltβ implements the<if>SCXML element.ScXMLElseIfEltβ implements the<elseif>SCXML element.ScXMLElseEltβ implements the<else>SCXML element.ScXMLLogEltβ implements the<log>SCXML element.ScXMLDataModelEltβ implements the<datamodel>SCXML element.ScXMLDataEltβ the<data>SCXML element.ScXMLAssignEltβ the<assign>SCXML element.ScXMLValidateEltβ implements the<validate>SCXML element.ScXMLSendEltβ the< send>SCXML element. (yes the space is literally in there. iykyk π)ScXMLInvokeEltβ implements the<invoke>SCXML element.ScXMLParamEltβ implements the<param>SCXML element.ScXMLFinalizeEltβ implements the<finalize>SCXML element.ScXMLContentEltβ implements the<content>SCXML element.ScXMLAnchorEltβ implements the<anchor>SCXML element.ScXMLScriptEltβ implements the<script>SCXML element.ScXMLEvaluatorβ defines an interface for profile-dependent evaluators.ScXMLDataObjβ base class for evaluator data objects in the SCXML data moduleScXMLConstantDataObjβ base class for immediate data valuesScXMLReferenceDataObjβ A data object representing a reference to another object in the data model.ScXMLAndOpExprDataObjβ Implements the logical AND operator.ScXMLMinimumExprDataObjβ implements the data objects for the evaluator for the minimum profile.ScXMLMinimumEvaluatorβ implements the evaluator for the minimum profile.ScXMLXPathEvaluatorβ implements the XPath evaluator.ScXMLECMAScriptEvaluatorβ evaluator for the ECMAScript profile.
π Detailed Description π
This set of classes is a basic implementation of State Chart XML. β¨
and bestie, i need you to hear me: it is not complete, nor is it necessary conformant to those parts it implements. that's not me being shady, that's just what the page says. we love honesty π
Currently Coin uses SCXML for managing 3D viewer user interaction (the non-model-interaction part) β the examiner navigation mode in layman terms. so like, when you're spinning the 3D view around? that's this π
The Draft Specification for SCXML is at http://www.w3.org/TR/scxml/.
π See also
- Navigation Classes
β³ Since
- Coin 3.0
π¦ State Chart XML π¦
The ScXML part of Coin is a basic, non-conformant, partial implementation of State Chart XML, based on the W3C Working Draft 16 May 2008 of SCXML http://www.w3.org/TR/2008/WD-scxml-20080516/. The latest version should be at http://www.w3.org/TR/scxml/. Read that document for a basic understanding how SCXML documents should be constructed. π
Coin uses SCXML for setting up its navigation systems, to be able to remove hardcoded logic for user navigation and externalize it into XML files. This makes it easy for users to customize the navigation system for their own purposes. customization era!! π
π« Unsupported Items π«
okay this is the part where we keep it real. read these before you @ me:
- The
<parallel>element is not supported as intended with parallel states. Coin will just treat it as an ordinary<state>element for now. Parallel states is not high up on the priority list, so expect this to be handled after a lot of other functionality is in place. - The
<datamodel>-related part of the specification is not fully supported. - The
'target'attribute in the<transition>element can only identify a single state currently, not multiple as you would have to when having support for<parallel>elements (which we don't have). - The virtual state elements like
<history>and<anchor>are just implemented as dummy states for now and do not do anything in relation to what they should actually do.
bestie these are real limitations, not aesthetic ones. don't build your whole personality on <parallel> and then act surprised π
For learning more about how ScXML is implemented and used in Coin, take a look at $COINDIR/scxml/navigation/examiner.xml (or in the Coin source directory, data/scxml/navigation/examiner.xml) for an example of how an SCXML system for camera navigation looks, and look at the source files in src/navigation/ for the C++ counterparts to the same SCXML navigation system. go read the source, it's literally right there π«Ά
β³ Since
- Coin 3.0
βοΈ Author βοΈ
Generated automatically by Doxygen for Coin from the source code. (so if the prose is a little stiff, blame the robots, not me π€)
π«Ά that's the page, bestie π«Ά
this was coin_scxml(3) from Coin, Version 4.0.10, dated Thu Jun 25 2026 00:00:00. slay, go externalize some navigation logic into XML, and remember: < send> really do have a space in it. periodt. π
β¨πΈ
π¦ where this page comes from
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 43: Coin4-devel 4.0.10-1.fc43 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- fedora 44: Coin4-devel 4.0.10-1.fc44 Β· BSD-3-Clause AND GPL-3.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms