get animation data for bone

Hy.
I’still develop a collada animation importer.
This importer read and store only the animation of the collada file.
Then i can add in my collada importer multiple animation for each base structure with meshes and bones(the global importer).
The problem is this:

how i can associate a bone to an animation in the animation importer?
The bones are imported in the base structure and must be filled with the animation , so a bone can not have animation and is not present or so one.
How after i get the animation fill the bones in the structure with the correct animation data ?
In the animation data i can find only kind of name similar to these:


 <animation id="Bone03-node-transform">
      <source id="Bone03-node-transform_Bone03-node_transform-input">
        <float_array id="Bone03-node-transform_Bone03-node_transform-input-array" count="101">0 0.033333 0.066666 0.1 0.133333 0.166667 0.2 0.233333 0.266667 0.3 3.03333 3.06667 3.1 3.13333 3.16667 3.2 3.23333 3.26667 3.3 3.33333</float_array>
        <technique_common>
          <accessor source="#Bone03-node-transform_Bone03-node_transform-input-array" count="101" stride="1">
            <param name="TIME" type="float"/>
          </accessor>
        </technique_common>
        <technique profile="MAYA">
          <pre_infinity>CONSTANT</pre_infinity>
          <post_infinity>CONSTANT</post_infinity>
        </technique>
      </source>

Bone03 is this animation section and bone03 is the name of my bone , then i would associate bone03 with this animation data.
The problem is:
Is correct manipolate the strings in the collada animation for make the animation name equal to the relative bone?
Or there is a safe method?

HOW WORK THE RESOLVEURI of the collada dom?
is possible to navigate the sections document with it?

Thanks

In <animation> -> <channel> you will find attribute “target”.
The value of this attribue is the string for you to resolve the transform of targeted bone.

It should looke something like this


<channel source="#sampler" target="bone03/rotateY.ANGLE">

It is targeting the 4th value of the below rotate element.


<node id="bone03">
   ...
   <rotate sid="rotateY>0 1 0 90</rotate>
   ...
</node>

The resolving scheme is not straight forward, you can read the spec to see how this works.
COLLADA DOM has a class called daeSIDResolver, it will give you resolved daeElement with a given target string.

Herbert

Could you get me an advice how to store animation from Collada? Usually I have to store one bone matrix, but here I must store a sequence of functions (rotation, translation, … ) for each bone. In each frame I must evaluate parameters of this functions (make animation on the example described in previous post) and then for each bone evaluate bone matrix.
I think this is an inconvenient method for programming and very hard for graphics performance.
Could somebody explain or give links me how to use this Collada data in good form?