diff options
Diffstat (limited to 'src/mesh/assimp-master/code/AssetLib/X/XFileHelper.h')
-rw-r--r-- | src/mesh/assimp-master/code/AssetLib/X/XFileHelper.h | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/src/mesh/assimp-master/code/AssetLib/X/XFileHelper.h b/src/mesh/assimp-master/code/AssetLib/X/XFileHelper.h deleted file mode 100644 index 3830eb4..0000000 --- a/src/mesh/assimp-master/code/AssetLib/X/XFileHelper.h +++ /dev/null @@ -1,234 +0,0 @@ -/* -Open Asset Import Library (assimp) ----------------------------------------------------------------------- - -Copyright (c) 2006-2022, assimp team - - -All rights reserved. - -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the -following conditions are met: - -* Redistributions of source code must retain the above - copyright notice, this list of conditions and the - following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the - following disclaimer in the documentation and/or other - materials provided with the distribution. - -* Neither the name of the assimp team, nor the names of its - contributors may be used to endorse or promote products - derived from this software without specific prior - written permission of the assimp team. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - ----------------------------------------------------------------------- -*/ - -/** @file Defines the helper data structures for importing XFiles */ -#ifndef AI_XFILEHELPER_H_INC -#define AI_XFILEHELPER_H_INC - -#include <cstdint> -#include <string> -#include <vector> - -#include <assimp/anim.h> -#include <assimp/mesh.h> -#include <assimp/quaternion.h> -#include <assimp/types.h> - -namespace Assimp { -namespace XFile { - -/** Helper structure representing a XFile mesh face */ -struct Face { - std::vector<unsigned int> mIndices; -}; - -/** Helper structure representing a texture filename inside a material and its potential source */ -struct TexEntry { - std::string mName; - bool mIsNormalMap; // true if the texname was specified in a NormalmapFilename tag - - TexEntry() AI_NO_EXCEPT : - mName(), - mIsNormalMap(false) { - // empty - } - TexEntry(const std::string &pName, bool pIsNormalMap = false) : - mName(pName), mIsNormalMap(pIsNormalMap) { - // empty - } -}; - -/** Helper structure representing a XFile material */ -struct Material { - std::string mName; - bool mIsReference; // if true, mName holds a name by which the actual material can be found in the material list - aiColor4D mDiffuse; - ai_real mSpecularExponent; - aiColor3D mSpecular; - aiColor3D mEmissive; - std::vector<TexEntry> mTextures; - size_t sceneIndex; ///< the index under which it was stored in the scene's material list - - Material() AI_NO_EXCEPT : - mIsReference(false), - mSpecularExponent(), - sceneIndex(SIZE_MAX) { - // empty - } -}; - -/** Helper structure to represent a bone weight */ -struct BoneWeight { - unsigned int mVertex; - ai_real mWeight; -}; - -/** Helper structure to represent a bone in a mesh */ -struct Bone { - std::string mName; - std::vector<BoneWeight> mWeights; - aiMatrix4x4 mOffsetMatrix; -}; - -/** Helper structure to represent an XFile mesh */ -struct Mesh { - std::string mName; - std::vector<aiVector3D> mPositions; - std::vector<Face> mPosFaces; - std::vector<aiVector3D> mNormals; - std::vector<Face> mNormFaces; - unsigned int mNumTextures; - std::vector<aiVector2D> mTexCoords[AI_MAX_NUMBER_OF_TEXTURECOORDS]; - unsigned int mNumColorSets; - std::vector<aiColor4D> mColors[AI_MAX_NUMBER_OF_COLOR_SETS]; - - std::vector<unsigned int> mFaceMaterials; - std::vector<Material> mMaterials; - - std::vector<Bone> mBones; - - explicit Mesh(const std::string &pName = std::string()) AI_NO_EXCEPT - : mName(pName), - mPositions(), - mPosFaces(), - mNormals(), - mNormFaces(), - mNumTextures(0), - mTexCoords{}, - mNumColorSets(0), - mColors{}, - mFaceMaterials(), - mMaterials(), - mBones() { - // empty - } -}; - -/** Helper structure to represent a XFile frame */ -struct Node { - std::string mName; - aiMatrix4x4 mTrafoMatrix; - Node *mParent; - std::vector<Node *> mChildren; - std::vector<Mesh *> mMeshes; - - Node() AI_NO_EXCEPT - : mName(), - mTrafoMatrix(), - mParent(nullptr), - mChildren(), - mMeshes() { - // empty - } - explicit Node(Node *pParent) : - mName(), mTrafoMatrix(), mParent(pParent), mChildren(), mMeshes() { - // empty - } - - ~Node() { - for (unsigned int a = 0; a < mChildren.size(); ++a) { - delete mChildren[a]; - } - for (unsigned int a = 0; a < mMeshes.size(); ++a) { - delete mMeshes[a]; - } - } -}; - -struct MatrixKey { - double mTime; - aiMatrix4x4 mMatrix; -}; - -/** Helper structure representing a single animated bone in a XFile */ -struct AnimBone { - std::string mBoneName; - std::vector<aiVectorKey> mPosKeys; // either three separate key sequences for position, rotation, scaling - std::vector<aiQuatKey> mRotKeys; - std::vector<aiVectorKey> mScaleKeys; - std::vector<MatrixKey> mTrafoKeys; // or a combined key sequence of transformation matrices. -}; - -/** Helper structure to represent an animation set in a XFile */ -struct Animation { - std::string mName; - std::vector<AnimBone *> mAnims; - - ~Animation() { - for (unsigned int a = 0; a < mAnims.size(); a++) - delete mAnims[a]; - } -}; - -/** Helper structure analogue to aiScene */ -struct Scene { - Node *mRootNode; - - std::vector<Mesh *> mGlobalMeshes; // global meshes found outside of any frames - std::vector<Material> mGlobalMaterials; // global materials found outside of any meshes. - - std::vector<Animation *> mAnims; - unsigned int mAnimTicksPerSecond; - - Scene() AI_NO_EXCEPT - : mRootNode(nullptr), - mGlobalMeshes(), - mGlobalMaterials(), - mAnimTicksPerSecond(0) { - // empty - } - ~Scene() { - delete mRootNode; - mRootNode = nullptr; - for (unsigned int a = 0; a < mGlobalMeshes.size(); ++a) { - delete mGlobalMeshes[a]; - } - for (unsigned int a = 0; a < mAnims.size(); ++a) { - delete mAnims[a]; - } - } -}; - -} // end of namespace XFile -} // end of namespace Assimp - -#endif // AI_XFILEHELPER_H_INC |