18 #ifndef COLLADALOADER_HH
19 #define COLLADALOADER_HH
52 public:
virtual Mesh *
Load(
const std::string &_filename);
59 private:
void LoadController(TiXmlElement *_contrXml,
65 private:
void LoadAnimations(TiXmlElement *_xml,
Skeleton *_skel);
70 private:
void LoadAnimationSet(TiXmlElement *_xml,
Skeleton *_skel);
75 private:
SkeletonNode* LoadSkeletonNodes(TiXmlElement *_xml,
81 private:
void SetSkeletonNodeTransform(TiXmlElement *_elem,
88 private:
void LoadGeometry(TiXmlElement *_xml,
95 private: TiXmlElement *GetElementId(TiXmlElement *_parent,
96 const std::string &_name,
97 const std::string &_id);
102 private: TiXmlElement *GetElementId(
const std::string &_name,
103 const std::string &_id);
109 private:
void LoadNode(TiXmlElement *_elem,
Mesh *_mesh,
115 private:
math::Matrix4 LoadNodeTransform(TiXmlElement *_elem);
122 private:
void LoadVertices(
const std::string &_id,
124 std::vector<math::Vector3> &_verts,
125 std::vector<math::Vector3> &_norms);
131 private:
void LoadPositions(
const std::string &_id,
133 std::vector<math::Vector3> &_values);
139 private:
void LoadNormals(
const std::string &_id,
141 std::vector<math::Vector3> &_values);
146 private:
void LoadTexCoords(
const std::string &_id,
147 std::vector<math::Vector2d> &_values);
152 private:
Material *LoadMaterial(
const std::string &_name);
158 private:
void LoadColorOrTexture(TiXmlElement *_elem,
159 const std::string &_type,
166 private:
void LoadTriangles(TiXmlElement *_trianglesXml,
174 private:
void LoadPolylist(TiXmlElement *_polylistXml,
182 private:
void LoadLines(TiXmlElement *_xml,
188 private:
void LoadScene(
Mesh *_mesh);
193 private:
float LoadFloat(TiXmlElement *_elem);
198 private:
void LoadTransparent(TiXmlElement *_elem,
Material *_mat);
201 private:
double meter;
204 private: std::string filename;
207 private: std::map<std::string, std::string> materialMap;
210 private: TiXmlElement *colladaXml;
213 private: std::string path;