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;