diff options
Diffstat (limited to 'libs/assimp/code/AssetLib/Blender/BlenderLoader.h')
-rw-r--r-- | libs/assimp/code/AssetLib/Blender/BlenderLoader.h | 198 |
1 files changed, 0 insertions, 198 deletions
diff --git a/libs/assimp/code/AssetLib/Blender/BlenderLoader.h b/libs/assimp/code/AssetLib/Blender/BlenderLoader.h deleted file mode 100644 index 0299ae3..0000000 --- a/libs/assimp/code/AssetLib/Blender/BlenderLoader.h +++ /dev/null @@ -1,198 +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 BlenderLoader.h - * @brief Declaration of the Blender 3D (*.blend) importer class. - */ -#pragma once -#ifndef INCLUDED_AI_BLEND_LOADER_H -#define INCLUDED_AI_BLEND_LOADER_H - -#include <assimp/BaseImporter.h> -#include <assimp/LogAux.h> -#include <memory> - -struct aiNode; -struct aiMesh; -struct aiLight; -struct aiCamera; -struct aiMaterial; - -namespace Assimp { - -// TinyFormatter.h -namespace Formatter { - -template <typename T, typename TR, typename A> -class basic_formatter; - -typedef class basic_formatter<char, std::char_traits<char>, std::allocator<char>> format; - -} // namespace Formatter - -// BlenderDNA.h -namespace Blender { -class FileDatabase; -struct ElemBase; -} // namespace Blender - -// BlenderScene.h -namespace Blender { -struct Scene; -struct Object; -struct Collection; -struct Mesh; -struct Camera; -struct Lamp; -struct MTex; -struct Image; -struct Material; -} // namespace Blender - -// BlenderIntermediate.h -namespace Blender { -struct ConversionData; -template <template <typename, typename> class TCLASS, typename T> -struct TempArray; -} // namespace Blender - -// BlenderModifier.h -namespace Blender { -class BlenderModifierShowcase; -class BlenderModifier; -} // namespace Blender - -// ------------------------------------------------------------------------------------------- -/** Load blenders official binary format. The actual file structure (the `DNA` how they - * call it is outsourced to BlenderDNA.cpp/BlenderDNA.h. This class only performs the - * conversion from intermediate format to aiScene. */ -// ------------------------------------------------------------------------------------------- -class BlenderImporter : public BaseImporter, public LogFunctions<BlenderImporter> { -public: - BlenderImporter(); - ~BlenderImporter() override; - bool CanRead(const std::string &pFile, IOSystem *pIOHandler, bool checkSig) const override; - -protected: - const aiImporterDesc *GetInfo() const override; - void SetupProperties(const Importer *pImp) override; - void InternReadFile(const std::string &pFile, aiScene *pScene, IOSystem *pIOHandler) override; - void ParseBlendFile(Blender::FileDatabase &out, std::shared_ptr<IOStream> stream); - void ExtractScene(Blender::Scene &out, const Blender::FileDatabase &file); - void ParseSubCollection(const Blender::Scene &in, aiNode *root, std::shared_ptr<Blender::Collection> collection, Blender::ConversionData &conv_data); - void ConvertBlendFile(aiScene *out, const Blender::Scene &in, const Blender::FileDatabase &file); - -private: - aiNode *ConvertNode(const Blender::Scene &in, - const Blender::Object *obj, - Blender::ConversionData &conv_info, - const aiMatrix4x4 &parentTransform); - - // -------------------- - void ConvertMesh(const Blender::Scene &in, - const Blender::Object *obj, - const Blender::Mesh *mesh, - Blender::ConversionData &conv_data, - Blender::TempArray<std::vector, aiMesh> &temp); - - // -------------------- - aiLight *ConvertLight(const Blender::Scene &in, - const Blender::Object *obj, - const Blender::Lamp *mesh, - Blender::ConversionData &conv_data); - - // -------------------- - aiCamera *ConvertCamera(const Blender::Scene &in, - const Blender::Object *obj, - const Blender::Camera *mesh, - Blender::ConversionData &conv_data); - - // -------------------- - void BuildDefaultMaterial( - Blender::ConversionData &conv_data); - - // -------------------- - void AddBlendParams( - aiMaterial *result, - const Blender::Material *source); - - // -------------------- - void BuildMaterials( - Blender::ConversionData &conv_data); - - // -------------------- - void ResolveTexture( - aiMaterial *out, - const Blender::Material *mat, - const Blender::MTex *tex, - Blender::ConversionData &conv_data); - - // -------------------- - void ResolveImage( - aiMaterial *out, - const Blender::Material *mat, - const Blender::MTex *tex, - const Blender::Image *img, - Blender::ConversionData &conv_data); - - // -------------------- - void AddSentinelTexture( - aiMaterial *out, - const Blender::Material *mat, - const Blender::MTex *tex, - Blender::ConversionData &conv_data); - -private: // static stuff, mostly logging and error reporting. - // -------------------- - static void CheckActualType(const Blender::ElemBase *dt, - const char *check); - - // -------------------- - static void NotSupportedObjectType(const Blender::Object *obj, - const char *type); - -private: - Blender::BlenderModifierShowcase *modifier_cache; - -}; // !class BlenderImporter - -} // end of namespace Assimp -#endif // AI_UNREALIMPORTER_H_INC |