Results 1 to 3 of 3

Thread: Finding a material from a domTriangles in a Collada DOM

  1. #1
    Junior Member
    Join Date
    Oct 2008
    Posts
    3

    Finding a material from a domTriangles in a Collada DOM

    I am working on loading a collada dae file from sketchup into a program, and I've figured out most of how the Collada Dom works, but there are a couple of details I can't seem to find in the documentation.

    My dae file looks something like this:
    Code :
    ...
       <library_materials>
          <material id="material0ID" name="material0">
             <instance_effect url="#material0-effect"/>
          </material>
          <material id="material1ID" name="material1">
             <instance_effect url="#material1-effect"/>
          </material>
       </library_materials>
    ...
                <triangles material="material0" count="6">
                   <input semantic="VERTEX" source="#mesh1-geometry-vertex" offset="0"/>
                   <input semantic="NORMAL" source="#mesh1-geometry-normal" offset="1"/>
                   <input semantic="TEXCOORD" source="#mesh1-geometry-uv" offset="2" set="0"/>
     
     
    ...</p>
                </triangles>
                <triangles material="material1" count="6">
                   <input semantic="VERTEX" source="#mesh1-geometry-vertex" offset="0"/>
                   <input semantic="NORMAL" source="#mesh1-geometry-normal" offset="1"/>
                   <input semantic="TEXCOORD" source="#mesh1-geometry-uv" offset="2" set="0"/>
     
     
    ...</p>
                </triangles>

    So I get down to reading my triangles into my program's object for rendering later and I have two triangle lists part of the same mesh each with a different material. I have the material name there which references the material tag's name attribute. A domTriangles object has a getMaterial() call, but it returns a xsNCName which is basically just a string. I have read you can find a dom or dae element by id, but this is by name.

    How would I go about finding that material tag?
    Or is there a better way to go about it than what I'm doing?

  2. #2
    Junior Member
    Join Date
    Apr 2006
    Posts
    14
    one way is to analyze <library_visual_scenes> element, it might help you. there should be answer for your question.

  3. #3
    Junior Member
    Join Date
    Oct 2008
    Posts
    3
    I ended up solving the issue by creating a STL map<char *, material> collection as I parse the materials and ensuring that I parse the materials before I do any meshes.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •