luyen
1
Hello huys,
I’m using FCollada from FeelingSoftware to manipulate colldata files.
http://www.feelingsoftware.com/en_US/3D … llada.html
Does any one know how to use FCollada? I’m trying to create a mesh, this is my code (but it does not work, the format of output is incorrect)
FCollada::Initialize();
FUObjectRef<FCDocument> merged_document2 = FCollada::NewTopDocument();
FCDSceneNode* merged_top2 = merged_document2->AddVisualScene();
FCDGeometry* newgeometry = new FCDGeometry(merged_document2);
FCDGeometryMesh* m1 = newgeometry->CreateMesh();
// adding source
FloatList flist;
FillFList(flist);
FCDGeometrySource *s1 = m1->AddSource(FUDaeGeometryInput::POSITION);
s1->SetName(L"PositionSource");
s1->SetStride(3);
s1->SetSourceType(FUDaeGeometryInput::POSITION);
s1->SetData(flist, geometry->GetMesh()->GetPositionSource()->GetStride(), 0, 0);
m1->AddVertexSource(s1);
// invalid format from here
//adding triangles
FCDGeometryPolygons *p1 = m1->AddPolygons();
p1->SetPrimitiveType(temp_geometry->GetMesh()->GetPolygons(0)->GetPrimitiveType());
FCDGeometryPolygonsInput *p1_input = p1->AddInput(s1, 0);
p1_input->AddIndices(indices_list);
p1->AddFace(indices_count);
merged_document2->GetGeometryLibrary()->AddEntity(newgeometry);
FCDEntity* merged_entity2 = (FCDEntity*)merged_document2->GetGeometryLibrary()->GetEntity(0);
FCDSceneNode* merged_second = merged_top2->AddChildNode();
merged_second->AddInstance(merged_entity2);
FCollada::SaveDocument(merged_document2, "./test.dae");
delete newgeometry;
FCollada::Release();
luyen
2
This is one of my result:
<?xml version=“1.0” encoding=“utf-8”?>
<COLLADA xmlns=“COLLADA 1.4 Schema” version=“1.4.1”>
<asset>
<created>2009-09-04T15:30:20Z</created>
<modified>2009-09-04T15:30:20Z</modified>
</asset>
<library_geometries>
<geometry id=“Geometry”>
<mesh>
<source id=“GeometrySource” name=“PositionSource”>
<float_array id=“GeometrySource-array” count=“62”>-685.86 -688.151 -688.151 -685.86 -688.151 -686.658 -686.658 -688.151 -686.658 -688.252 -688.252 -686.658 -688.252 -686.36 -686.36 -688.252 -686.36 -686.161 -686.161 -686.36 -686.161 -682.676 -682.676 -686.161 -682.676 -679.589 -679.589 -682.676 -679.589 -678.195 -678.195 -679.589 -678.195 -676.601 -676.601 -678.195 -676.601 -674.012 -674.012 -676.601 -674.012 -672.022 -672.022 -674.012 -672.022 -685.378 -685.378 -672.022 -685.378 -685.122 -685.122 -685.378 -685.122 -685.86 -685.86 -685.122 -685.122 -685.378 -672.022 -685.122 -672.022 -671.82</float_array>
<technique_common>
<accessor source=“#GeometrySource-array” count=“20” stride=“3”>
<param name=“X” type=“float”/>
<param name=“Y” type=“float”/>
<param name=“Z” type=“float”/>
</accessor>
</technique_common>
</source>
<vertices id=“Geometry-vertices”>
<input semantic=“POSITION” source=“#GeometrySource”/>
</vertices>
<polylist count=“1”>
<input semantic=“VERTEX” source=“#Geometry-vertices” offset=“0”/>
<vcount>84</vcount>
0 1 2 0 2 3 4 5 6 4 6 7 8 9 10 8 10 11 12 13 14 12 14 15 16 17 18 16 18 19 20 21 22 20 22 23 24 25 26 24 26 27 28 29 30 28 30 31 32 33 34 32 34 35 36 37 38 36 38 39 40 41 42 40 42 43 44 45 46 44 46 47 48 49 50 48 50 51 52 53 54 52 54 55</p>
</polylist>
<polylist count=“1”>
<input semantic=“VERTEX” source=“#Geometry-vertices” offset=“0”/>
<vcount>6</vcount>
159836104 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 84 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 85 159830568 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 86 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 87 76502800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 88 76502800 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 89</p>
</polylist>
</mesh>
</geometry>
</library_geometries>
<library_visual_scenes>
<visual_scene id=“VisualSceneNode”>
<node id=“VisualSceneNode1” type=“NODE”/>
</visual_scene>
</library_visual_scenes>
<scene>
<instance_visual_scene url=“#VisualSceneNode”/>
</scene>
</COLLADA>
luyen
3
I found the problem, it’s in input offset :shock: