ColladaLoader.java 1.3 KB

123456789101112131415161718192021222324252627282930313233
  1. package eu.tankernn.gameEngine.loader.colladaLoader;
  2. import eu.tankernn.gameEngine.loader.xmlLoader.XmlNode;
  3. import eu.tankernn.gameEngine.loader.xmlLoader.XmlParser;
  4. import eu.tankernn.gameEngine.util.InternalFile;
  5. public class ColladaLoader {
  6. public static AnimatedModelData loadColladaModel(InternalFile colladaFile, int maxWeights) {
  7. XmlNode node = XmlParser.loadXmlFile(colladaFile);
  8. SkinLoader skinLoader = new SkinLoader(node.getChild("library_controllers"), maxWeights);
  9. SkinningData skinningData = skinLoader.extractSkinData();
  10. JointsLoader jointsLoader = new JointsLoader(node.getChild("library_visual_scenes"), skinningData.jointOrder);
  11. JointsData jointsData = jointsLoader.extractBoneData();
  12. GeometryLoader g = new GeometryLoader(node.getChild("library_geometries"), skinningData.verticesSkinData);
  13. MeshData meshData = g.extractModelData();
  14. return new AnimatedModelData(meshData, jointsData);
  15. }
  16. public static AnimationData loadColladaAnimation(InternalFile colladaFile) {
  17. XmlNode node = XmlParser.loadXmlFile(colladaFile);
  18. XmlNode animNode = node.getChild("library_animations");
  19. XmlNode jointsNode = node.getChild("library_visual_scenes");
  20. AnimationLoader loader = new AnimationLoader(animNode, jointsNode);
  21. AnimationData animData = loader.extractAnimation();
  22. return animData;
  23. }
  24. }