[ODE] XML ODE Data Interchange Format

Jani Laakso jani.laakso at itmill.com
Sun Mar 7 16:29:46 MST 2004


In short, basically what I'm trying to say is:
-XODE should define only ODE related data
-let each editor take care of their own definitions (e.g. visual side 
binding)


William Denniss wrote:

>Maybe as you say we don't need the <mesh> tag at all.  The way I see it
>is the the importer doesn't necessarily have to have a file name - it
>could even just use the mesh tags name as an identifier to get the file
>- but a separate <mesh> tag is not needed for that, it could use the
>name of the <body> to achieve the same effect.
>  
>
XODE should not define anything on the visual representation side, I'd 
personally like to focus getting good ODE XML definition and nothing 
more. We do not know how a specific application or editor want's to bind 
visual side to ODE objects. Just let them do their own definition using 
simple <ext> tag or even another XML file.

>The extension you proposed will do fine to store the file locations, and
>it would make sense for it to be the standard way of storing such
>information.  There could be another tag as well to specify the linked
>file format/version, eg <format>Max Object</format>. Perhaps this is not
>needed with .3ds files but it could be handy if a format has several
>different versions which must be treated slightly differently.
>  
>
I wouldn't worry about defining these on XODE schema / DTD. I'd let the 
<ext> tag to be as free as it can get and let editors exploit it  in any 
way they wish. Most probably they would define formats, filenames or 3d 
visual node names but this should not be a concern for XODE (imho).

If developer uses editor X which defines non-XODE supported data under 
<ext> tag, then developer knows about these tags and reads e.g. visual 
representation related data like:

<xode>

  <!-- this file has been accessed using ODEd editor -->
  <extension id="1" name="ODEd" />

  <!-- this file has been accessed using Juice editor -->
  <extension id="2" name="juice" />

  <!-- ODEd defines some more it's own data -->
  <ext id="1">
    <version>1.0</version>
  </ext>

  <!-- Another imaginary example for general Juice settings -->
  <ext id="2">
    <version>1.0</version>
    <visualfiles>
      <filename name="motorcycle.xyz" id="1"/>
      <filename name="truck.xyz" id="2"/>
      <filename name="jeep.xyz" id="3"/>
    </visualfiles>
  </ext>

  <!-- Define all ODE objects -->
  <entity name="motorcycle">
    <body name="chassis">
    <geom />
    <ext id="1">
      <!-- compact ODEd definition block for the current body -->
      <mesh filename="vehicles.3ds" node="bike/tire/left" />
    </ext>
    <ext id="2">
      <!-- sample Juice definition block.. -->
      <visual id="1">
        <node>tireLeft</node>
        <scale x="0.5" y="0.5" z="0.5" />
      </visual>
    </ext>
    </body>
    <body name="frontLeftTire" />
    <body name="frontRightTire" />
    <body name="rearLeftTire" />
    <body name="rearRightTire" />
    <jointgroup />
  </entity>
  <entity name="truck" />
  <entity name="jeep" />

</xode>


Just my five cents, Jani.

-- 
Jani Laakso / IT Mill Ltd | Tel. +358 40 5898086 | http://www.itmill.com




More information about the ODE mailing list