[Odejava] *new* XML ODE format

I have proposed a new ODE XML format to the ODE mailing list

My post to the list is here: http://hook.org/pipermail/ode/2004-March/011546.html

And the draft spec is here: http://tankammo.com/xode/xode.txt

If you have any comments, please post them to the ode mailing list.

Cheers,

Will.

Update: The draft spec is now complete - you can view it here http://tankammo.com/xode/1.0r17/

I am currently adding XODE support to Odejava.

Cheers,

Will.

Impressive… that would be wonderful.
Do you have any landing time estimate for odejava?

Body and GeomBox support is in :slight_smile: and the foundations are laid for everything else.

It’s only a matter of time really - no rocket science. I’ll keep you updated in this thread :slight_smile: I’d hope to have usuable XODE support maybe within a week (that is body, geom, and joint).

make sure you subscribe to the cvs mailing list :slight_smile:

Will.

it now supports more geom formats :slight_smile:

try:


cd odejava-xith3d
java -ea -cp odejava-xith3d.jar:../odejava/odejava.jar:xith3d.jar:.:../odejava/ org.odejava.xith3d.test.RunDemo org.odejava.test.xode.XODEExample

(symlink or copy xith3d.jar to odejava-xith3d)

on the top of my list is XODE joint support and multi-geom body support.

Will.

Hi i just read the specification and a couple of things came into my head:

Why Body and Geoms are seen as containters in the specification?

Is there a way in the file to specify that a Geom is to be bound to a specified Body?

well Body is a container really - it can have geoms.

The reason is that child Bodies and Geom’s have their transforms relitive to their parents. You don’t have to use the container features of geom if you don’t want. If you have a geom as the child of a geom - as far as ODE is concerened they are seperate. XODE just defines some extra relationships which you can use if you like.

Will.

I looked at the XODE source code, top stuff! This is superb addition to Odejava. I’m very interested to see how it develops!

Hi Will!
Since I need to use xode in a very short term (within two days) I think i’m starting adding joint support to xode.

As soon as i have some code working i wold be glad to share a couple of classes :wink:

sure, I’ve laid the foundations so hopefully it won’t be too hard. I might do some more work in 24 hours or so and over the weekend (a long weekend for me). Please keep me posted on any coding you do so I don’t duplicate it…

If you told me exactly what you need (i.e. what joints) I could probably add it within 48 hours.

Will.

I’ve corrected the scema so that mass has to come after geoms.

Use this one: http://tankammo.com/xode/1.0r18/

(i.e. xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xsi:noNamespaceSchemaLocation=“http://tankammo.com/xode/1.0r18/xode.xsd”>)

Will.

http://tankammo.com/xode/1.0r18/

changes:


    <transform>
        <tmatrix
            d_1_1="0" d_1_2="1" d_1_3="2" d_1_4="0"
            d_2_1="1" d_2_2="0" d_2_3="1" d_2_4="3"
            d_3_1="0" d_3_2="1" d_3_3="0" d_3_4="1"
            d_4_1="2" d_4_2="0" d_4_3="2" d_4_4="0"
      />
    </transform>

to


    <transform>
        <matrix4f
            m00="0" m01="1" m02="2" m03="0"
            m10="1" m11="0" m12="1" m13="3"
            m20="0" m21="1" m22="0" m23="1"
            m30="2" m31="0" m32="2" m33="0"
      />
    </transform>


    
   Three vectors representing the position, rotation and scale.
    
   Example:
  
    <transform>
        <position x="0" y="0" z="0" />
        <rotation x="0" y="90" z="0" aformat="degrees" />
        <scale x="1" y="1" z="1" />        
    </transform>

to


  Vector Transform Style:
    
   Three vectors representing the position, rotation and scale.
    
   Examples:
  
    <transform scale="1">
        <position x="0" y="0" z="0" />
      <rotation>
              <euler x="0" y="90" z="0" aformat="degrees" />
      </rotation>
    </transform>
    
    <transform scale="1">
        <position x="0" y="0" z="0" />
      <rotation>
            <axisangle  x="0" y="0" z="1" angle="" aformat="degrees" />
      </rotation>
    </transform>
    
    <transform scale="1">
        <position x="0" y="0" z="0" />
      <rotation>
            <quaternion x="0" y="0" z="0" w="0" aformat="degrees"/>
      </rotation>
    </transform>
    
   The rotation element can either contain euler, exisangle or quaternions.


   By default, the Matrix transform style is assumed.  To manually 
   specify either transform style, the "transformstyle" attribute of
   <world> must be specified.  It's value is either 'matrix' for the
   Matrix Transform Style, or 'vector' for the Vector Transform Style

removed - this was very annoying and not needed

As mentioned - the mass was moved to after the Geoms in body.

The code I am about to commit in is 1.0r18 compliant, as is the “boxsphere.xml” example.

The Transform class was renamed to XODETransform and is now fully implemented for both vector and matrix style transforms (both stored internally as matricies).

I apologise for changing the spec - but more changes will be made as I nut out problems with the implementation.

Cheers,

Will.

Thanks to Matteo, Joint support has been added :slight_smile:

The foundation for the parser is now laid, we just need to clean it up and implement the remaining functions.

Will.