From 3cd55c54dbf66a320438d743fbd223952043cd39 Mon Sep 17 00:00:00 2001 From: Andy Maloney Date: Wed, 7 Dec 2016 19:33:08 -0500 Subject: Update assimp lib to 3.3.1 The currently included assimp lib is v3.0 from 2012. This updates assimp lib to the latest released version (3.3.1). Change-Id: I15a60e3150c0b268422f23137107b34e4c5c4342 Reviewed-by: Sean Harmer --- src/3rdparty/assimp/code/NFFLoader.h | 291 ++++++++++++++++++----------------- 1 file changed, 146 insertions(+), 145 deletions(-) (limited to 'src/3rdparty/assimp/code/NFFLoader.h') diff --git a/src/3rdparty/assimp/code/NFFLoader.h b/src/3rdparty/assimp/code/NFFLoader.h index 7b5d3dcae..2b5232645 100644 --- a/src/3rdparty/assimp/code/NFFLoader.h +++ b/src/3rdparty/assimp/code/NFFLoader.h @@ -2,11 +2,11 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2016, 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 +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 @@ -23,16 +23,16 @@ following conditions are met: 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 +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 +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 +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 +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. ---------------------------------------------------------------------- @@ -45,165 +45,166 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define AI_NFFLOADER_H_INCLUDED #include "BaseImporter.h" +#include +#include #include -#include "../include/assimp/types.h" -namespace Assimp { +namespace Assimp { // ---------------------------------------------------------------------------------- /** NFF (Neutral File Format) Importer class. * * The class implements both Eric Haynes NFF format and Sense8's NFF (NFF2) format. - * Both are quite different and the loading code is somewhat dirty at + * Both are quite different and the loading code is somewhat dirty at * the moment. Sense8 should be moved to a separate loader. */ class NFFImporter : public BaseImporter { public: - NFFImporter(); - ~NFFImporter(); + NFFImporter(); + ~NFFImporter(); public: - // ------------------------------------------------------------------- - /** Returns whether the class can handle the format of the given file. - * See BaseImporter::CanRead() for details. - */ - bool CanRead( const std::string& pFile, IOSystem* pIOHandler, - bool checkSig) const; + // ------------------------------------------------------------------- + /** Returns whether the class can handle the format of the given file. + * See BaseImporter::CanRead() for details. + */ + bool CanRead( const std::string& pFile, IOSystem* pIOHandler, + bool checkSig) const; protected: - // ------------------------------------------------------------------- - /** Return importer meta information. - * See #BaseImporter::GetInfo for the details - */ - const aiImporterDesc* GetInfo () const; + // ------------------------------------------------------------------- + /** Return importer meta information. + * See #BaseImporter::GetInfo for the details + */ + const aiImporterDesc* GetInfo () const; - // ------------------------------------------------------------------- - /** Imports the given file into the given scene structure. - * See BaseImporter::InternReadFile() for details - */ - void InternReadFile( const std::string& pFile, aiScene* pScene, - IOSystem* pIOHandler); + // ------------------------------------------------------------------- + /** Imports the given file into the given scene structure. + * See BaseImporter::InternReadFile() for details + */ + void InternReadFile( const std::string& pFile, aiScene* pScene, + IOSystem* pIOHandler); private: - - // describes face material properties - struct ShadingInfo - { - ShadingInfo() - : color (0.6f,0.6f,0.6f) - , diffuse (1.f,1.f,1.f) - , specular (1.f,1.f,1.f) - , ambient (0.f,0.f,0.f) - , emissive (0.f,0.f,0.f) - , refracti (1.f) - , twoSided (false) // for NFF2 - , shaded (true) // for NFF2 - , opacity (1.f) - , shininess (0.f) - , mapping (aiTextureMapping_UV) - {} - - aiColor3D color,diffuse,specular,ambient,emissive; - float refracti; - - std::string texFile; - - // For NFF2 - bool twoSided; - bool shaded; - float opacity, shininess; - - std::string name; - - // texture mapping to be generated for the mesh - uv is the default - // it means: use UV if there, nothing otherwise. This property is - // used for locked meshes. - aiTextureMapping mapping; - - // shininess is ignored for the moment - bool operator == (const ShadingInfo& other) const - { - return color == other.color && - diffuse == other.diffuse && - specular == other.specular && - ambient == other.ambient && - refracti == other.refracti && - texFile == other.texFile && - twoSided == other.twoSided && - shaded == other.shaded; - - // Some properties from NFF2 aren't compared by this operator. - // Comparing MeshInfo::matIndex should do that. - } - }; - - // describes a NFF light source - struct Light - { - Light() - : intensity (1.f) - , color (1.f,1.f,1.f) - {} - - aiVector3D position; - float intensity; - aiColor3D color; - }; - - enum PatchType - { - PatchType_Simple = 0x0, - PatchType_Normals = 0x1, - PatchType_UVAndNormals = 0x2 - }; - - // describes a NFF mesh - struct MeshInfo - { - MeshInfo(PatchType _pType, bool bL = false) - : pType (_pType) - , bLocked (bL) - , radius (1.f,1.f,1.f) - , dir (0.f,1.f,0.f) - , matIndex (0) - { - name[0] = '\0'; // by default meshes are unnamed - } - - ShadingInfo shader; - PatchType pType; - bool bLocked; - - // for spheres, cones and cylinders: center point of the object - aiVector3D center, radius, dir; - - char name[128]; - - std::vector vertices, normals, uvs; - std::vector faces; - - // for NFF2 - std::vector colors; - unsigned int matIndex; - }; - - - // ------------------------------------------------------------------- - /** Loads the material table for the NFF2 file format from an - * external file. - * - * @param output Receives the list of output meshes - * @param path Path to the file (abs. or rel.) - * @param pIOHandler IOSystem to be used to open the file - */ - void LoadNFF2MaterialTable(std::vector& output, - const std::string& path, IOSystem* pIOHandler); + + // describes face material properties + struct ShadingInfo + { + ShadingInfo() + : color (0.6f,0.6f,0.6f) + , diffuse (1.f,1.f,1.f) + , specular (1.f,1.f,1.f) + , ambient (0.f,0.f,0.f) + , emissive (0.f,0.f,0.f) + , refracti (1.f) + , twoSided (false) // for NFF2 + , shaded (true) // for NFF2 + , opacity (1.f) + , shininess (0.f) + , mapping (aiTextureMapping_UV) + {} + + aiColor3D color,diffuse,specular,ambient,emissive; + float refracti; + + std::string texFile; + + // For NFF2 + bool twoSided; + bool shaded; + float opacity, shininess; + + std::string name; + + // texture mapping to be generated for the mesh - uv is the default + // it means: use UV if there, nothing otherwise. This property is + // used for locked meshes. + aiTextureMapping mapping; + + // shininess is ignored for the moment + bool operator == (const ShadingInfo& other) const + { + return color == other.color && + diffuse == other.diffuse && + specular == other.specular && + ambient == other.ambient && + refracti == other.refracti && + texFile == other.texFile && + twoSided == other.twoSided && + shaded == other.shaded; + + // Some properties from NFF2 aren't compared by this operator. + // Comparing MeshInfo::matIndex should do that. + } + }; + + // describes a NFF light source + struct Light + { + Light() + : intensity (1.f) + , color (1.f,1.f,1.f) + {} + + aiVector3D position; + float intensity; + aiColor3D color; + }; + + enum PatchType + { + PatchType_Simple = 0x0, + PatchType_Normals = 0x1, + PatchType_UVAndNormals = 0x2 + }; + + // describes a NFF mesh + struct MeshInfo + { + MeshInfo(PatchType _pType, bool bL = false) + : pType (_pType) + , bLocked (bL) + , radius (1.f,1.f,1.f) + , dir (0.f,1.f,0.f) + , matIndex (0) + { + name[0] = '\0'; // by default meshes are unnamed + } + + ShadingInfo shader; + PatchType pType; + bool bLocked; + + // for spheres, cones and cylinders: center point of the object + aiVector3D center, radius, dir; + + char name[128]; + + std::vector vertices, normals, uvs; + std::vector faces; + + // for NFF2 + std::vector colors; + unsigned int matIndex; + }; + + + // ------------------------------------------------------------------- + /** Loads the material table for the NFF2 file format from an + * external file. + * + * @param output Receives the list of output meshes + * @param path Path to the file (abs. or rel.) + * @param pIOHandler IOSystem to be used to open the file + */ + void LoadNFF2MaterialTable(std::vector& output, + const std::string& path, IOSystem* pIOHandler); }; -- cgit v1.2.3