Merge branch 'cleanup_includes' of https://github.com/assimp/assimp into cleanup_includes

pull/1195/head
Kim Kulling 2017-03-08 10:27:57 +01:00
commit b725d7dbf5
40 changed files with 1595 additions and 1412 deletions

View File

@ -185,9 +185,9 @@ if (ASSIMP_COVERALLS)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -g -O0 -fprofile-arcs -ftest-coverage")
endif()
INCLUDE (FindPkgConfig)
INCLUDE_DIRECTORIES( include )
INCLUDE (FindPkgMacros)
INCLUDE (PrecompiledHeader)
# If this is an in-source build (CMAKE_SOURCE_DIR == CMAKE_BINARY_DIR),
@ -255,9 +255,7 @@ ENDIF(NOT ZLIB_FOUND)
INCLUDE_DIRECTORIES(${ZLIB_INCLUDE_DIR})
# Search for unzip
IF (PKG_CONFIG_FOUND)
PKG_CHECK_MODULES(UNZIP minizip)
ENDIF (PKG_CONFIG_FOUND)
use_pkgconfig(UNZIP minizip)
IF ( ASSIMP_NO_EXPORT )
ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT)

View File

@ -92,7 +92,7 @@ Contributed the 'SimpleTexturedOpenGl' sample.
- Matthias Fauconneau
Contributed a fix for the Q3-BSP loader.
- J<EFBFBD>rgen P. Tjern<72>
- Jørgen P. Tjernø
Contributed updated and improved xcode workspaces
- drparallax
@ -137,7 +137,7 @@ GCC/Linux fixes for the SimpleOpenGL sample.
- Brian Miller
Bugfix for a compiler fix for iOS on arm.
- S<EFBFBD>verin Lemaignan
- Séverin Lemaignan
Rewrite of PyAssimp, distutils and Python3 support
- albert-wang

View File

@ -18,6 +18,11 @@ This is the development trunk containing the latest features and bugfixes. For p
The current build status is:
Gitter chat: [![Join the chat at https://gitter.im/assimp/assimp](https://badges.gitter.im/assimp/assimp.svg)](https://gitter.im/assimp/assimp?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)<br>
And we also have an IRC-channel at freenode: #assetimporterlib . You can easily join us via: [KiwiIRC/freenote](https://kiwiirc.com/client/irc.freenode.net), choose your nickname and type
> /join #assetimporterlib
<br>
__[open3mod](https://github.com/acgessler/open3mod) is a powerful 3D model viewer based on Assimp's import and export abilities.__
Please check our Wiki as well: https://github.com/assimp/assimp/wiki

View File

@ -59,10 +59,13 @@ endmacro(clear_if_changed)
# Try to get some hints from pkg-config, if available
macro(use_pkgconfig PREFIX PKGNAME)
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(${PREFIX} ${PKGNAME})
endif ()
# Android does not support PKG_CONFIG so we disable it
IF ( NOT ANDROID )
find_package(PkgConfig)
if (PKG_CONFIG_FOUND)
pkg_check_modules(${PREFIX} ${PKGNAME})
endif ()
ENDIF ( NOT ANDROID )
endmacro (use_pkgconfig)
# Couple a set of release AND debug libraries (or frameworks)

View File

@ -1857,7 +1857,7 @@ void Parser::ParseLV3MeshCFaceListBlock(unsigned int iNumFaces, ASE::Mesh& mesh)
++filePtr;
// Face entry
if (TokenMatch(filePtr,"MESH_CFACE" ,11))
if (TokenMatch(filePtr,"MESH_CFACE" ,10))
{
unsigned int aiValues[3];
unsigned int iIndex = 0;

View File

@ -166,6 +166,7 @@ void BlenderImporter::InternReadFile( const std::string& pFile,
free_it free_it_really(dest);
#endif
FileDatabase file;
std::shared_ptr<IOStream> stream(pIOHandler->Open(pFile,"rb"));
if (!stream) {

View File

@ -44,8 +44,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef ASSIMP_BUILD_NO_BLEND_IMPORTER
#include "BlenderDNA.h"
#include "BlenderScene.h"
#include "BlenderSceneGen.h"
#include "BlenderDNA.h"
using namespace Assimp;
using namespace Assimp::Blender;

View File

@ -187,10 +187,16 @@ IF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
SOURCE_GROUP( C4D FILES ${C4D_SRCS})
ENDIF ( ASSIMP_BUILD_NONFREE_C4D_IMPORTER )
# if this variable is set to TRUE, the user can manually disable importers by setting
# ASSIMP_BUILD_XXX_IMPORTER to FALSE for each importer
# if this variable is set to FALSE, the user can manually enable importers by setting
# ASSIMP_BUILD_XXX_IMPORTER to TRUE for each importer
OPTION(ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT "default value of all ASSIMP_BUILD_XXX_IMPORTER value" TRUE)
# macro to add the CMake Option ADD_ASSIMP_IMPORTER_<name> which enables compile of loader
# this way selective loaders can be compiled (reduces filesize + compile time)
MACRO(ADD_ASSIMP_IMPORTER name)
OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" TRUE)
OPTION(ASSIMP_BUILD_${name}_IMPORTER "build the ${name} importer" ${ASSIMP_BUILD_ALL_IMPORTERS_BY_DEFAULT})
IF(ASSIMP_BUILD_${name}_IMPORTER)
LIST(APPEND ASSIMP_LOADER_SRCS ${ARGN})
SET(ASSIMP_IMPORTERS_ENABLED "${ASSIMP_IMPORTERS_ENABLED} ${name}")

View File

@ -49,7 +49,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "StringComparison.h"
#include "StringUtils.h"
#include <string>
#include <vector>
#include <map>
@ -63,7 +62,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
namespace Assimp {
namespace D3MF {
namespace XmlTag {
static const std::string model = "model";
static const std::string metadata = "metadata";

View File

@ -125,7 +125,7 @@ size_t DefaultIOStream::FileSize() const
if (0 != err)
return 0;
mCachedSize = (size_t) (fileStat.st_size);
#elif defined __GNUC__ || defined __APPLE__ || defined __MACH__
#elif defined __GNUC__ || defined __APPLE__ || defined __MACH__ || defined __FreeBSD__
struct stat fileStat;
int err = stat(mFilename.c_str(), &fileStat );
if (0 != err)

View File

@ -44,6 +44,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef INCLUDED_AI_FBX_COMPILECONFIG_H
#define INCLUDED_AI_FBX_COMPILECONFIG_H
#include <map>
//
#if _MSC_VER > 1500 || (defined __GNUC___)
# define ASSIMP_FBX_USE_UNORDERED_MULTIMAP

View File

@ -55,7 +55,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <memory>
#include <functional>
#include <map>
namespace Assimp {
namespace FBX {

View File

@ -51,7 +51,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# include "../contrib/zlib/zlib.h"
#endif
#include "FBXTokenizer.h"
#include "FBXParser.h"
#include "FBXUtil.h"

View File

@ -46,11 +46,13 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "FBXCompileConfig.h"
#include <memory>
#include <string>
namespace Assimp {
namespace FBX {
class Element;
// Forward declarations
class Element;
/** Represents a dynamic property. Type info added by deriving classes,

View File

@ -47,6 +47,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "FBXCompileConfig.h"
#include <assimp/ai_assert.h>
#include <vector>
#include <string>
namespace Assimp {
namespace FBX {

View File

@ -46,6 +46,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "FBXTokenizer.h"
#include "TinyFormatter.h"
#include <string>
#ifndef ASSIMP_BUILD_NO_FBX_IMPORTER

View File

@ -108,7 +108,7 @@ static const aiImporterDesc desc = {
0,
0,
0,
"ifc ifczip"
"ifc ifczip stp"
};
@ -128,11 +128,9 @@ IFCImporter::~IFCImporter()
bool IFCImporter::CanRead( const std::string& pFile, IOSystem* pIOHandler, bool checkSig) const
{
const std::string& extension = GetExtension(pFile);
if (extension == "ifc" || extension == "ifczip") {
if (extension == "ifc" || extension == "ifczip" || extension == "stp" ) {
return true;
}
else if ((!extension.length() || checkSig) && pIOHandler) {
} else if ((!extension.length() || checkSig) && pIOHandler) {
// note: this is the common identification for STEP-encoded files, so
// it is only unambiguous as long as we don't support any further
// file formats with STEP as their encoding.

View File

@ -46,6 +46,9 @@ directly (unless you are adding new loaders), instead use the
corresponding preprocessor flag to selectively disable formats.
*/
#include <vector>
#include "BaseImporter.h"
// ------------------------------------------------------------------------------------------------
// Importers
// (include_new_importers_here)

View File

@ -90,14 +90,16 @@ namespace
// ------------------------------------------------------------------------------------------------
// Constructor to be privately used by Importer
PLYImporter::PLYImporter()
: mBuffer(),
pcDOM()
{}
: mBuffer()
, pcDOM(){
// empty
}
// ------------------------------------------------------------------------------------------------
// Destructor, private as well
PLYImporter::~PLYImporter()
{}
PLYImporter::~PLYImporter() {
// empty
}
// ------------------------------------------------------------------------------------------------
// Returns whether the class can handle the format of the given file.

View File

@ -206,29 +206,17 @@ PLY::ESemantic PLY::Property::ParseSemantic(const char* pCur,const char** pCurOu
else if (TokenMatch(pCur,"x",1))
{
eOut = PLY::EST_XCoord;
}
else if (TokenMatch(pCur,"y",1))
{
} else if (TokenMatch(pCur,"y",1)) {
eOut = PLY::EST_YCoord;
}
else if (TokenMatch(pCur,"z",1))
{
} else if (TokenMatch(pCur,"z",1)) {
eOut = PLY::EST_ZCoord;
}
else if (TokenMatch(pCur,"nx",2))
{
} else if (TokenMatch(pCur,"nx",2)) {
eOut = PLY::EST_XNormal;
}
else if (TokenMatch(pCur,"ny",2))
{
} else if (TokenMatch(pCur,"ny",2)) {
eOut = PLY::EST_YNormal;
}
else if (TokenMatch(pCur,"nz",2))
{
} else if (TokenMatch(pCur,"nz",2)) {
eOut = PLY::EST_ZNormal;
}
else
{
} else {
DefaultLogger::get()->info("Found unknown property semantic in file. This is ok");
SkipLine(&pCur);
}

View File

@ -290,12 +290,12 @@ private:
throw DeadlyImportError("End of file or stream limit was reached");
}
#ifdef __arm__
///*#ifdef __arm__
T f;
::memcpy (&f, current, sizeof(T));
#else
T f = *((const T*)current);
#endif
//#else*/
// T f = *((const T*)current);
//#endif
Intern :: Getter<SwapEndianess,T,RuntimeSwitch>() (&f,le);
current += sizeof(T);

View File

@ -45,7 +45,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef AI_COLOR4D_H_INC
#define AI_COLOR4D_H_INC
#include "./Compiler/pushpack1.h"
#include "defs.h"
#ifdef __cplusplus
@ -89,7 +88,7 @@ public:
// Red, green, blue and alpha color values
TReal r, g, b, a;
} PACK_STRUCT; // !struct aiColor4D
}; // !struct aiColor4D
typedef aiColor4t<ai_real> aiColor4D;
@ -97,10 +96,8 @@ typedef aiColor4t<ai_real> aiColor4D;
struct aiColor4D {
ai_real r, g, b, a;
} PACK_STRUCT;
};
#endif // __cplusplus
#include "./Compiler/poppack1.h"
#endif // AI_COLOR4D_H_INC

View File

@ -76,12 +76,34 @@ AI_FORCE_INLINE const aiColor4t<TReal>& aiColor4t<TReal>::operator /= (TReal f)
// ------------------------------------------------------------------------------------------------
template <typename TReal>
AI_FORCE_INLINE TReal aiColor4t<TReal>::operator[](unsigned int i) const {
return *(&r + i);
//return *(&r + i);
switch ( i ) {
case 0:
return r;
case 1:
return g;
case 2:
return b;
default:
break;
}
return r;
}
// ------------------------------------------------------------------------------------------------
template <typename TReal>
AI_FORCE_INLINE TReal& aiColor4t<TReal>::operator[](unsigned int i) {
return *(&r + i);
// return *(&r + i);
switch ( i ) {
case 0:
return r;
case 1:
return g;
case 2:
return b;
default:
break;
}
return r;
}
// ------------------------------------------------------------------------------------------------
template <typename TReal>

View File

@ -46,7 +46,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#ifndef AI_MATRIX3X3_H_INC
#define AI_MATRIX3X3_H_INC
#include "./Compiler/pushpack1.h"
#include "defs.h"
#ifdef __cplusplus
@ -153,7 +152,7 @@ public:
/** @brief A function for creating a rotation matrix that rotates a
* vector called "from" into another vector called "to".
* Input : from[3], to[3] which both must be *normalized* non-zero vectors
* Output: mtx[3][3] -- a 3x3 matrix in colum-major form
* Output: mtx[3][3] -- a 3x3 matrix in column-major form
* Authors: Tomas Möller, John Hughes
* "Efficiently Building a Matrix to Rotate One Vector to Another"
* Journal of Graphics Tools, 4(4):1-4, 1999
@ -165,7 +164,7 @@ public:
TReal a1, a2, a3;
TReal b1, b2, b3;
TReal c1, c2, c3;
} PACK_STRUCT;
};
typedef aiMatrix3x3t<ai_real> aiMatrix3x3;
@ -175,10 +174,8 @@ struct aiMatrix3x3 {
ai_real a1, a2, a3;
ai_real b1, b2, b3;
ai_real c1, c2, c3;
} PACK_STRUCT;
};
#endif // __cplusplus
#include "./Compiler/poppack1.h"
#endif // AI_MATRIX3X3_H_INC

View File

@ -101,16 +101,34 @@ inline aiMatrix3x3t<TReal> aiMatrix3x3t<TReal>::operator* (const aiMatrix3x3t<TR
// ------------------------------------------------------------------------------------------------
template <typename TReal>
inline TReal* aiMatrix3x3t<TReal>::operator[] (unsigned int p_iIndex)
{
return &this->a1 + p_iIndex * 3;
inline TReal* aiMatrix3x3t<TReal>::operator[] (unsigned int p_iIndex) {
switch ( p_iIndex ) {
case 0:
return &a1;
case 1:
return &b1;
case 2:
return &c1;
default:
break;
}
return &a1;
}
// ------------------------------------------------------------------------------------------------
template <typename TReal>
inline const TReal* aiMatrix3x3t<TReal>::operator[] (unsigned int p_iIndex) const
{
return &this->a1 + p_iIndex * 3;
inline const TReal* aiMatrix3x3t<TReal>::operator[] (unsigned int p_iIndex) const {
switch ( p_iIndex ) {
case 0:
return &a1;
case 1:
return &b1;
case 2:
return &c1;
default:
break;
}
return &a1;
}
// ------------------------------------------------------------------------------------------------

View File

@ -46,7 +46,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#define AI_MATRIX4X4_H_INC
#include "vector3.h"
#include "./Compiler/pushpack1.h"
#include "defs.h"
#ifdef __cplusplus
@ -257,7 +256,7 @@ public:
TReal b1, b2, b3, b4;
TReal c1, c2, c3, c4;
TReal d1, d2, d3, d4;
} PACK_STRUCT;
};
typedef aiMatrix4x4t<ai_real> aiMatrix4x4;
@ -268,11 +267,9 @@ struct aiMatrix4x4 {
ai_real b1, b2, b3, b4;
ai_real c1, c2, c3, c4;
ai_real d1, d2, d3, d4;
} PACK_STRUCT;
};
#endif // __cplusplus
#include "./Compiler/poppack1.h"
#endif // AI_MATRIX4X4_H_INC

View File

@ -243,9 +243,19 @@ inline TReal* aiMatrix4x4t<TReal>::operator[](unsigned int p_iIndex) {
if (p_iIndex > 3) {
return NULL;
}
// XXX this is UB. Has been for years. The fact that it works now does not make it better.
return &this->a1 + p_iIndex * 4;
switch ( p_iIndex ) {
case 0:
return &a1;
case 1:
return &b1;
case 2:
return &c1;
case 3:
return &d1;
default:
break;
}
return &a1;
}
// ----------------------------------------------------------------------------------------
@ -255,8 +265,19 @@ inline const TReal* aiMatrix4x4t<TReal>::operator[](unsigned int p_iIndex) const
return NULL;
}
// XXX same
return &this->a1 + p_iIndex * 4;
switch ( p_iIndex ) {
case 0:
return &a1;
case 1:
return &b1;
case 2:
return &c1;
case 3:
return &d1;
default:
break;
}
return &a1;
}
// ----------------------------------------------------------------------------------------

View File

@ -51,7 +51,6 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
# include <math.h>
#endif
#include "./Compiler/pushpack1.h"
#include "defs.h"
#ifdef __cplusplus
@ -126,7 +125,7 @@ public:
const aiVector3t SymMul(const aiVector3t& o);
TReal x, y, z;
} PACK_STRUCT;
};
typedef aiVector3t<ai_real> aiVector3D;
@ -135,16 +134,12 @@ typedef aiVector3t<ai_real> aiVector3D;
struct aiVector3D {
ai_real x, y, z;
} PACK_STRUCT;
};
#endif // __cplusplus
#include "./Compiler/poppack1.h"
#ifdef __cplusplus
#endif // __cplusplus
#endif // AI_VECTOR3D_H_INC

View File

@ -141,12 +141,34 @@ AI_FORCE_INLINE aiVector3t<TReal>& aiVector3t<TReal>::operator *= (const aiMatri
// ------------------------------------------------------------------------------------------------
template <typename TReal>
AI_FORCE_INLINE TReal aiVector3t<TReal>::operator[](unsigned int i) const {
return *(&x + i);
// return *(&x + i);
switch (i) {
case 0:
return x;
case 1:
return y;
case 2:
return z;
default:
break;
}
return x;
}
// ------------------------------------------------------------------------------------------------
template <typename TReal>
AI_FORCE_INLINE TReal& aiVector3t<TReal>::operator[](unsigned int i) {
return *(&x + i);
// return *(&x + i);
switch (i) {
case 0:
return x;
case 1:
return y;
case 2:
return z;
default:
break;
}
return x;
}
// ------------------------------------------------------------------------------------------------
template <typename TReal>

View File

@ -46,7 +46,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include <android/api-level.h>
#if __ANDROID__ and __ANDROID_API__ > 9 and defined(AI_CONFIG_ANDROID_JNI_ASSIMP_MANAGER_SUPPORT)
#include <libgen.h>
#include <stdlib.h>
#include <sys/stat.h>
#include <android/log.h>
#include <android/asset_manager.h>
#include <android/asset_manager_jni.h>
@ -100,6 +102,27 @@ void AndroidJNIIOSystem::AndroidActivityInit(ANativeActivity* activity)
mApkAssetManager = activity->assetManager;
}
// ------------------------------------------------------------------------------------------------
// Create the directory for the extracted resource
static int mkpath(std::string path, mode_t mode)
{
if (mkdir(path.c_str(), mode) == -1) {
switch(errno) {
case ENOENT:
if (mkpath(path.substr(0, path.find_last_of('/')), mode) == -1)
return -1;
else
return mkdir(path.c_str(), mode);
case EEXIST:
return 0;
default:
return -1;
}
}
return 0;
}
// ------------------------------------------------------------------------------------------------
// Extracts android asset
bool AndroidJNIIOSystem::AndroidExtractAsset(std::string name)
@ -131,6 +154,15 @@ bool AndroidJNIIOSystem::AndroidExtractAsset(std::string name)
// Close
AAsset_close(asset);
// Prepare directory for output buffer
std::string directoryNewPath = newPath;
directoryNewPath = dirname(&directoryNewPath[0]);
if (mkpath(directoryNewPath, S_IRUSR | S_IWUSR | S_IXUSR) == -1) {
__android_log_print(ANDROID_LOG_ERROR, "assimp",
"Can not create the directory for the output file");
}
// Prepare output buffer
std::ofstream assetExtracted(newPath.c_str(),
std::ios::out | std::ios::binary);

View File

@ -120,6 +120,7 @@ SET( TEST_SRCS
unit/utTypes.cpp
unit/utVertexTriangleAdjacency.cpp
unit/utVersion.cpp
unit/utVector3.cpp
unit/utXImporterExporter.cpp
)

View File

@ -1,5 +1,5 @@
# File produced by Open Asset Import Library (http://www.assimp.sf.net)
# (assimp v3.3.721346005)
# (assimp v3.3.128220959)
mtllib spider.obj.mtl
@ -1780,8 +1780,8 @@ vn -0.7573840022087097 0.2233279943466187 -0.6135900020599365
vn -0.902417004108429 0.4006629884243011 -0.1584679931402206
vn -0.902417004108429 -0.2050659954547882 -0.3789339959621429
# Mesh 'HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01' with 80 faces
g HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01_HLeib01
# Mesh 'HLeib01' with 80 faces
g HLeib01
usemtl HLeibTex
f 1/1/1 2/2/2 3/3/3
f 4/4/4 3/3/3 5/5/5
@ -1864,8 +1864,8 @@ f 25/25/25 27/27/27 42/42/42
f 35/35/35 42/42/42 34/34/34
f 27/27/27 34/34/34 42/42/42
# Mesh 'OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK' with 60 faces
g OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK_OK
# Mesh 'OK' with 60 faces
g OK
usemtl Skin
f 43/43/43 44/44/44 45/45/45
f 46/46/46 45/45/45 47/47/47
@ -1928,8 +1928,8 @@ f 53/53/53 66/63/66 52/52/52
f 78/67/78 52/52/52 66/63/66
f 67/64/67 69/63/69 79/67/79
# Mesh 'Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li' with 98 faces
g Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li_Bein1Li
# Mesh 'Bein1Li' with 98 faces
g Bein1Li
usemtl BeinTex
f 80/68/80 81/68/80 82/68/80
f 83/68/81 84/68/81 85/68/81
@ -2030,8 +2030,8 @@ f 129/114/128 94/122/92 92/121/90
f 130/115/129 125/116/130 94/122/92
f 125/116/130 83/123/94 94/122/92
# Mesh 'Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re' with 98 faces
g Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re_Bein1Re
# Mesh 'Bein1Re' with 98 faces
g Bein1Re
usemtl BeinTex
f 131/68/131 132/68/131 133/68/131
f 134/68/132 135/68/132 136/68/132
@ -2132,8 +2132,8 @@ f 143/121/141 146/122/144 180/114/179
f 146/122/144 176/116/181 181/115/180
f 146/122/144 136/123/145 176/116/181
# Mesh 'Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li' with 98 faces
g Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li_Bein2Li
# Mesh 'Bein2Li' with 98 faces
g Bein2Li
usemtl BeinTex
f 182/68/182 183/68/182 184/68/182
f 185/68/183 186/68/183 187/68/183
@ -2234,8 +2234,8 @@ f 231/114/230 196/122/194 194/121/192
f 232/115/231 227/116/232 196/122/194
f 227/116/232 185/123/196 196/122/194
# Mesh 'Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re' with 98 faces
g Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re_Bein2Re
# Mesh 'Bein2Re' with 98 faces
g Bein2Re
usemtl BeinTex
f 233/68/233 234/68/233 235/68/233
f 236/68/234 237/68/234 238/68/234
@ -2336,8 +2336,8 @@ f 245/121/243 248/122/246 282/114/281
f 248/122/246 278/116/283 283/115/282
f 248/122/246 238/123/247 278/116/283
# Mesh 'Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re' with 98 faces
g Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re_Bein3Re
# Mesh 'Bein3Re' with 98 faces
g Bein3Re
usemtl BeinTex
f 284/68/284 285/68/284 286/68/284
f 287/68/285 288/68/285 289/68/285
@ -2438,8 +2438,8 @@ f 296/121/294 299/122/297 333/114/332
f 299/122/297 329/116/334 334/115/333
f 299/122/297 289/123/298 329/116/334
# Mesh 'Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li' with 98 faces
g Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li_Bein3Li
# Mesh 'Bein3Li' with 98 faces
g Bein3Li
usemtl BeinTex
f 335/68/335 336/68/335 337/68/335
f 338/68/336 339/68/336 340/68/336
@ -2540,8 +2540,8 @@ f 384/114/383 349/122/347 347/121/345
f 385/115/384 380/116/385 349/122/347
f 380/116/385 338/123/349 349/122/347
# Mesh 'Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re' with 98 faces
g Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re_Bein4Re
# Mesh 'Bein4Re' with 98 faces
g Bein4Re
usemtl BeinTex
f 386/68/386 387/68/386 388/68/386
f 389/68/387 390/68/387 391/68/387
@ -2642,8 +2642,8 @@ f 398/121/396 401/122/399 435/114/434
f 401/122/399 431/116/436 436/115/435
f 401/122/399 391/123/400 431/116/436
# Mesh 'Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li' with 98 faces
g Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li_Bein4Li
# Mesh 'Bein4Li' with 98 faces
g Bein4Li
usemtl BeinTex
f 437/68/437 438/68/437 439/68/437
f 440/68/438 441/68/438 442/68/438
@ -2744,8 +2744,8 @@ f 486/114/485 451/122/449 449/121/447
f 487/115/486 482/116/487 451/122/449
f 482/116/487 440/123/451 451/122/449
# Mesh 'Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn' with 42 faces
g Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn_Zahn
# Mesh 'Zahn' with 42 faces
g Zahn
usemtl BeinTex
f 488/124/488 488/124/488 488/124/488
f 489/125/489 490/126/489 491/127/489
@ -2790,8 +2790,8 @@ f 488/124/505 492/128/491 488/124/490
f 503/139/506 502/138/507 492/128/491
f 502/138/507 489/125/493 492/128/491
# Mesh 'klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn' with 42 faces
g klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn_klZahn
# Mesh 'klZahn' with 42 faces
g klZahn
usemtl BeinTex
f 504/140/488 504/140/488 504/140/488
f 505/141/508 506/142/508 507/143/508
@ -2836,8 +2836,8 @@ f 504/140/524 508/144/510 504/140/509
f 519/155/525 518/154/526 508/144/510
f 518/154/526 505/141/512 508/144/510
# Mesh 'Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf' with 90 faces
g Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf_Kopf
# Mesh 'Kopf' with 90 faces
g Kopf
usemtl Skin
f 520/68/527 521/156/528 522/157/529
f 520/68/527 523/158/530 521/156/528
@ -2930,8 +2930,8 @@ f 564/197/571 562/195/569 545/178/552
f 545/178/552 552/185/559 566/199/573
f 564/197/571 566/199/573 545/178/552
# Mesh 'Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust' with 20 faces
g Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust_Brust
# Mesh 'Brust' with 20 faces
g Brust
usemtl Skin
f 70/210/584 71/211/585 577/212/586
f 60/120/587 577/212/586 64/213/588
@ -2954,8 +2954,8 @@ f 70/210/584 580/217/592 69/223/599
f 77/75/593 79/224/600 580/217/592
f 69/223/599 580/217/592 79/224/600
# Mesh 'Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2' with 90 faces
g Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2_Kopf2
# Mesh 'Kopf2' with 90 faces
g Kopf2
usemtl Skin
f 582/225/601 583/226/602 584/123/603
f 583/226/602 585/227/604 584/123/603
@ -3048,8 +3048,8 @@ f 607/245/626 624/262/643 625/263/644
f 627/265/646 614/252/633 607/245/626
f 607/245/626 627/265/646 625/263/644
# Mesh 'Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2' with 42 faces
g Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2_Zahn2
# Mesh 'Zahn2' with 42 faces
g Zahn2
usemtl BeinTex
f 639/124/488 639/124/488 639/124/488
f 640/127/658 641/126/658 642/125/658
@ -3094,8 +3094,8 @@ f 639/124/661 644/128/660 639/124/674
f 644/128/660 653/138/676 654/139/675
f 644/128/660 642/125/662 653/138/676
# Mesh 'klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2' with 42 faces
g klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2_klZahn2
# Mesh 'klZahn2' with 42 faces
g klZahn2
usemtl BeinTex
f 655/140/488 655/140/488 655/140/488
f 656/143/677 657/142/677 658/141/677
@ -3140,8 +3140,8 @@ f 655/140/680 660/144/679 655/140/693
f 660/144/679 669/154/695 670/155/694
f 660/144/679 658/141/681 669/154/695
# Mesh 'Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge' with 38 faces
g Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge_Auge
# Mesh 'Auge' with 38 faces
g Auge
usemtl Augentex
f 671/277/696 672/278/697 673/279/698
f 671/277/696 673/279/698 674/280/699
@ -3182,8 +3182,8 @@ f 681/287/706 684/290/709 696/302/721
f 689/295/714 696/302/721 688/294/713
f 684/290/709 688/294/713 696/302/721
# Mesh 'Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05' with 38 faces
g Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05_Duplicate05
# Mesh 'Duplicate05' with 38 faces
g Duplicate05
usemtl Augentex
f 697/279/722 698/278/723 699/277/724
f 700/280/725 697/279/722 699/277/724
@ -3223,4 +3223,3 @@ f 710/290/735 713/294/738 712/291/737
f 722/302/747 710/290/735 708/287/733
f 713/294/738 722/302/747 716/295/741
f 722/302/747 713/294/738 710/290/735

View File

@ -45,7 +45,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
using namespace ::Assimp;
class utMatrix3x3Test : public ::testing::Test {
// empty
};
TEST_F( utMatrix3x3Test, FromToMatrixTest ) {

View File

@ -57,3 +57,8 @@ public:
TEST_F( utPLYImportExport, importTest ) {
EXPECT_TRUE( importerTest() );
}
TEST_F( utPLYImportExport, vertexColorTest ) {
Assimp::Importer importer;
const aiScene *scene = importer.ReadFile( ASSIMP_TEST_MODELS_DIR "/PLY/float-color.ply", 0 );
}

View File

@ -0,0 +1,69 @@
/*-------------------------------------------------------------------------
Open Asset Import Library (assimp)
---------------------------------------------------------------------------
Copyright (c) 2006-2017, 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.
-------------------------------------------------------------------------*/
#include "UnitTestPCH.h"
#include <assimp/vector3.h>
using namespace ::Assimp;
class utVector3 : public ::testing::Test {
// empty
};
TEST_F(utVector3, CreationTest) {
aiVector3D v0;
aiVector3D v1( 1.0f, 2.0f, 3.0f );
EXPECT_FLOAT_EQ (1.0f, v1[ 0 ] );
EXPECT_FLOAT_EQ( 2.0f, v1[ 1 ] );
EXPECT_FLOAT_EQ( 3.0f, v1[ 2 ] );
aiVector3D v2( 1 );
EXPECT_FLOAT_EQ( 1.0f, v2[ 0 ] );
EXPECT_FLOAT_EQ( 1.0f, v2[ 1 ] );
EXPECT_FLOAT_EQ( 1.0f, v2[ 2 ] );
aiVector3D v3( v1 );
EXPECT_FLOAT_EQ( v1[ 0 ], v3[ 0 ] );
EXPECT_FLOAT_EQ( v1[ 1 ], v3[ 1 ] );
EXPECT_FLOAT_EQ( v1[ 2 ], v3[ 2 ] );
}
TEST_F( utVector3, BracketOpTest ) {
aiVector3D v(1.0f, 2.0f, 3.0f);
EXPECT_FLOAT_EQ( 1.0f, v[ 0 ] );
EXPECT_FLOAT_EQ( 2.0f, v[ 1 ] );
EXPECT_FLOAT_EQ( 3.0f, v[ 2 ] );
}