#ifndef VB_MODEL_READER #define VB_MODEL_READER #include "modelReader.h" #include "util.h" #include "mesh.h" #include #include #include namespace vb01{ class Model; class Node; class Skeleton; class Driver; class VbModelReader : public ModelReader{ public: VbModelReader(){} VbModelReader(Model*, std::string); ~VbModelReader(); private: void getObjectBounds(std::map&, std::map&, std::map&); void connectNodes(); void setupDrivers(); int findDriverStartLine(std::vector&, int); void createBones(Skeleton*, std::vector&); KeyframeChannel readKeyframeChannel(Animatable*, std::vector&, int&); void readAnimations(Animatable*, std::vector&); Skeleton* readSkeleton(std::vector&); void readVertices(std::vector&, std::vector&, std::vector&, std::vector&, int); void readFaces(std::vector&, std::vector&, std::vector&, std::vector&, std::vector&, int, Mesh::Vertex*, u32*); void readVertexGroups(std::string*, std::vector&, int); void readShapeKeys(Mesh::Vertex*, std::vector&, std::vector&, Mesh::ShapeKey*, int, int); void readDrivers(std::vector&, std::string); void buildMesh(std::vector&); Mesh* readMeshes(std::vector&); void readLights(std::vector&); std::vector drivers; std::map relationships; std::vector driverSetups; Skeleton *currentSkeleton = nullptr; Light *currentLight = nullptr; std::vector skeletons; std::vector meshes; std::vector nodes; std::string currentAnim = ""; friend class VbModelReaderTest; }; } #endif