// // FBXReader.h // interface // // Created by Andrzej Kapolka on 9/18/13. // Copyright (c) 2013 High Fidelity, Inc. All rights reserved. // #ifndef __interface__FBXReader__ #define __interface__FBXReader__ #include #include #include class FBXNode; typedef QList FBXNodeList; /// A node within an FBX document. class FBXNode { public: QByteArray name; QVariantList properties; FBXNodeList children; }; /// A single blendshape extracted from an FBX document. class FBXBlendshape { public: QVector indices; QVector vertices; QVector normals; }; /// A single mesh (with optional blendshapes) extracted from an FBX document. class FBXMesh { public: QVector quadIndices; QVector triangleIndices; QVector vertices; QVector normals; QVector texCoords; glm::vec3 pivot; glm::mat4 transform; bool isEye; glm::vec4 ambientColor; glm::vec4 diffuseColor; glm::vec4 specularColor; float shininess; QByteArray diffuseFilename; QByteArray normalFilename; QVector blendshapes; }; /// A set of meshes extracted from an FBX document. class FBXGeometry { public: QVector meshes; glm::vec3 neckPivot; }; /// Reads FBX geometry from the supplied model and mapping data. /// \exception QString if an error occurs in parsing FBXGeometry readFBX(const QByteArray& model, const QByteArray& mapping); #endif /* defined(__interface__FBXReader__) */