coin_scxml(3)

πŸ“¦
version 4.0.10 Β· 4 versions
, in fedora 43, fedora 44

πŸ’– 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 communication
  • ScXMLStateMachine β€” 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 objects
  • ScXMLScxmlElt β€” 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 module
  • ScXMLConstantDataObj β€” base class for immediate data values
  • ScXMLReferenceDataObj β€” 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