Merge branch 'master' into bug-3177-dae-geo-id
commit
2571b47a28
100
INSTALL
100
INSTALL
|
@ -1,50 +1,50 @@
|
||||||
|
|
||||||
========================================================================
|
========================================================================
|
||||||
Open Asset Import Library (assimp) INSTALL
|
Open Asset Import Library (assimp) INSTALL
|
||||||
========================================================================
|
========================================================================
|
||||||
|
|
||||||
------------------------------
|
------------------------------
|
||||||
Getting the documentation
|
Getting the documentation
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
A regularly-updated copy is available at
|
A regularly-updated copy is available at
|
||||||
http://assimp.sourceforge.net/lib_html/index.html
|
http://assimp.sourceforge.net/lib_html/index.html
|
||||||
|
|
||||||
A CHM file is included in the SVN repos: ./doc/AssimpDoc_Html/AssimpDoc.chm.
|
A CHM file is included in the SVN repos: ./doc/AssimpDoc_Html/AssimpDoc.chm.
|
||||||
To build the doxygen documentation on your own, follow these steps:
|
To build the doxygen documentation on your own, follow these steps:
|
||||||
|
|
||||||
a) download & install latest doxygen
|
a) download & install latest doxygen
|
||||||
b) make sure doxygen is in the executable search path
|
b) make sure doxygen is in the executable search path
|
||||||
c) navigate to ./doc
|
c) navigate to ./doc
|
||||||
d) and run 'doxygen'
|
d) and run 'doxygen'
|
||||||
|
|
||||||
Open the generated HTML (AssimpDoc_Html/index.html) in the browser of your choice.
|
Open the generated HTML (AssimpDoc_Html/index.html) in the browser of your choice.
|
||||||
Windows only: To generate the CHM doc, install 'Microsoft HTML Workshop'
|
Windows only: To generate the CHM doc, install 'Microsoft HTML Workshop'
|
||||||
and configure the path to it in the DOXYFILE first.
|
and configure the path to it in the DOXYFILE first.
|
||||||
|
|
||||||
------------------------------
|
------------------------------
|
||||||
Building Assimp
|
Building Assimp
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
||||||
More detailed build instructions can be found in the documentation,
|
More detailed build instructions can be found in the documentation,
|
||||||
this section is just for the inpatient among you.
|
this section is just for the inpatient among you.
|
||||||
|
|
||||||
CMake is the preferred build system for Assimp. The minimum required version
|
CMake is the preferred build system for Assimp. The minimum required version
|
||||||
is 2.6. If you don't have it yet, downloads for CMake can be found on
|
is 2.6. If you don't have it yet, downloads for CMake can be found on
|
||||||
http://www.cmake.org/.
|
http://www.cmake.org/.
|
||||||
|
|
||||||
For Unix:
|
For Unix:
|
||||||
|
|
||||||
1. mkdir build && cd build
|
1. mkdir build && cd build
|
||||||
2. cmake .. -G 'Unix Makefiles'
|
2. cmake .. -G 'Unix Makefiles'
|
||||||
3. make -j4
|
3. make -j4
|
||||||
|
|
||||||
For Windows:
|
For Windows:
|
||||||
1. Open a command prompt
|
1. Open a command prompt
|
||||||
2. mkdir build
|
2. mkdir build
|
||||||
3. cd build
|
3. cd build
|
||||||
4. cmake ..
|
4. cmake ..
|
||||||
5. cmake --build .
|
5. cmake --build .
|
||||||
|
|
||||||
For iOS:
|
For iOS:
|
||||||
Just check the following project, which deploys a compiler toolchain for different iOS-versions: https://github.com/assimp/assimp/tree/master/port/iOS
|
Just check the following project, which deploys a compiler toolchain for different iOS-versions: https://github.com/assimp/assimp/tree/master/port/iOS
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
|
@ -3315,6 +3315,7 @@ void FBXConverter::InterpolateKeys(aiQuatKey *valOut, const KeyTimeList &keys, c
|
||||||
// http://www.3dkingdoms.com/weekly/weekly.php?a=36
|
// http://www.3dkingdoms.com/weekly/weekly.php?a=36
|
||||||
if (quat.x * lastq.x + quat.y * lastq.y + quat.z * lastq.z + quat.w * lastq.w < 0) {
|
if (quat.x * lastq.x + quat.y * lastq.y + quat.z * lastq.z + quat.w * lastq.w < 0) {
|
||||||
quat.Conjugate();
|
quat.Conjugate();
|
||||||
|
quat.w = -quat.w;
|
||||||
}
|
}
|
||||||
lastq = quat;
|
lastq = quat;
|
||||||
|
|
||||||
|
|
|
@ -93,4 +93,4 @@ private:
|
||||||
|
|
||||||
} // Namespace Assimp
|
} // Namespace Assimp
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -1,114 +0,0 @@
|
||||||
/*
|
|
||||||
---------------------------------------------------------------------------
|
|
||||||
Open Asset Import Library (assimp)
|
|
||||||
---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
Copyright (c) 2006-2020, 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.
|
|
||||||
---------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef ASSIMP_BUILD_NO_STEP_IMPORTER
|
|
||||||
|
|
||||||
#include "StepFileImporter.h"
|
|
||||||
#include "../../Importer/STEPParser/STEPFileReader.h"
|
|
||||||
#include <assimp/importerdesc.h>
|
|
||||||
#include <assimp/DefaultIOSystem.h>
|
|
||||||
|
|
||||||
namespace Assimp {
|
|
||||||
namespace StepFile {
|
|
||||||
|
|
||||||
using namespace STEP;
|
|
||||||
|
|
||||||
static const aiImporterDesc desc = { "StepFile Importer",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
"",
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
0,
|
|
||||||
"stp" };
|
|
||||||
|
|
||||||
StepFileImporter::StepFileImporter()
|
|
||||||
: BaseImporter() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
StepFileImporter::~StepFileImporter() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
bool StepFileImporter::CanRead(const std::string& file, IOSystem* pIOHandler, bool checkSig) const {
|
|
||||||
const std::string &extension = GetExtension(file);
|
|
||||||
if ( extension == "stp" || extension == "step" ) {
|
|
||||||
return true;
|
|
||||||
} else if ((!extension.length() || checkSig) && pIOHandler) {
|
|
||||||
const char* tokens[] = { "ISO-10303-21" };
|
|
||||||
const bool found(SearchFileHeaderForToken(pIOHandler, file, tokens, 1));
|
|
||||||
return found;
|
|
||||||
}
|
|
||||||
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
const aiImporterDesc *StepFileImporter::GetInfo() const {
|
|
||||||
return &desc;
|
|
||||||
}
|
|
||||||
|
|
||||||
static const std::string mode = "rb";
|
|
||||||
static const std::string StepFileSchema = "CONFIG_CONTROL_DESIGN";
|
|
||||||
|
|
||||||
void StepFileImporter::InternReadFile(const std::string &file, aiScene*, IOSystem* pIOHandler) {
|
|
||||||
// Read file into memory
|
|
||||||
std::shared_ptr<IOStream> fileStream(pIOHandler->Open(file, mode));
|
|
||||||
if (!fileStream.get()) {
|
|
||||||
throw DeadlyImportError("Failed to open file " + file + ".");
|
|
||||||
}
|
|
||||||
|
|
||||||
std::unique_ptr<STEP::DB> db(STEP::ReadFileHeader(fileStream));
|
|
||||||
const STEP::HeaderInfo& head = static_cast<const STEP::DB&>(*db).GetHeader();
|
|
||||||
if (!head.fileSchema.size() || head.fileSchema != StepFileSchema) {
|
|
||||||
DeadlyImportError("Unrecognized file schema: " + head.fileSchema);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
} // Namespace StepFile
|
|
||||||
} // Namespace Assimp
|
|
||||||
|
|
||||||
#endif // ASSIMP_BUILD_NO_STEP_IMPORTER
|
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -1002,7 +1002,7 @@ inline void Mesh::Read(Value &pJSON_Object, Asset &pAsset_Root) {
|
||||||
// Valid attribute semantics include POSITION, NORMAL, TANGENT
|
// Valid attribute semantics include POSITION, NORMAL, TANGENT
|
||||||
int undPos = 0;
|
int undPos = 0;
|
||||||
Mesh::AccessorList *vec = 0;
|
Mesh::AccessorList *vec = 0;
|
||||||
if (GetAttribTargetVector(prim, i, attr, vec, undPos)) {
|
if (GetAttribTargetVector(prim, j, attr, vec, undPos)) {
|
||||||
size_t idx = (attr[undPos] == '_') ? atoi(attr + undPos + 1) : 0;
|
size_t idx = (attr[undPos] == '_') ? atoi(attr + undPos + 1) : 0;
|
||||||
if ((*vec).size() <= idx) {
|
if ((*vec).size() <= idx) {
|
||||||
(*vec).resize(idx + 1);
|
(*vec).resize(idx + 1);
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
|
@ -45,10 +45,9 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
#include "CInterfaceIOWrapper.h"
|
#include "CInterfaceIOWrapper.h"
|
||||||
|
|
||||||
namespace Assimp {
|
namespace Assimp {
|
||||||
|
|
||||||
CIOStreamWrapper::~CIOStreamWrapper(void)
|
CIOStreamWrapper::~CIOStreamWrapper(void) {
|
||||||
{
|
|
||||||
/* Various places depend on this destructor to close the file */
|
/* Various places depend on this destructor to close the file */
|
||||||
if (mFile) {
|
if (mFile) {
|
||||||
mIO->mFileSystem->CloseProc(mIO->mFileSystem, mFile);
|
mIO->mFileSystem->CloseProc(mIO->mFileSystem, mFile);
|
||||||
|
@ -57,28 +56,25 @@ CIOStreamWrapper::~CIOStreamWrapper(void)
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...................................................................
|
// ...................................................................
|
||||||
size_t CIOStreamWrapper::Read(void* pvBuffer,
|
size_t CIOStreamWrapper::Read(void *pvBuffer,
|
||||||
size_t pSize,
|
size_t pSize,
|
||||||
size_t pCount
|
size_t pCount) {
|
||||||
){
|
|
||||||
// need to typecast here as C has no void*
|
// need to typecast here as C has no void*
|
||||||
return mFile->ReadProc(mFile,(char*)pvBuffer,pSize,pCount);
|
return mFile->ReadProc(mFile, (char *)pvBuffer, pSize, pCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...................................................................
|
// ...................................................................
|
||||||
size_t CIOStreamWrapper::Write(const void* pvBuffer,
|
size_t CIOStreamWrapper::Write(const void *pvBuffer,
|
||||||
size_t pSize,
|
size_t pSize,
|
||||||
size_t pCount
|
size_t pCount) {
|
||||||
){
|
|
||||||
// need to typecast here as C has no void*
|
// need to typecast here as C has no void*
|
||||||
return mFile->WriteProc(mFile,(const char*)pvBuffer,pSize,pCount);
|
return mFile->WriteProc(mFile, (const char *)pvBuffer, pSize, pCount);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...................................................................
|
// ...................................................................
|
||||||
aiReturn CIOStreamWrapper::Seek(size_t pOffset,
|
aiReturn CIOStreamWrapper::Seek(size_t pOffset,
|
||||||
aiOrigin pOrigin
|
aiOrigin pOrigin) {
|
||||||
){
|
return mFile->SeekProc(mFile, pOffset, pOrigin);
|
||||||
return mFile->SeekProc(mFile,pOffset,pOrigin);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...................................................................
|
// ...................................................................
|
||||||
|
@ -92,16 +88,16 @@ size_t CIOStreamWrapper::FileSize() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...................................................................
|
// ...................................................................
|
||||||
void CIOStreamWrapper::Flush () {
|
void CIOStreamWrapper::Flush() {
|
||||||
return mFile->FlushProc(mFile);
|
return mFile->FlushProc(mFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Custom IOStream implementation for the C-API
|
// Custom IOStream implementation for the C-API
|
||||||
bool CIOSystemWrapper::Exists( const char* pFile) const {
|
bool CIOSystemWrapper::Exists(const char *pFile) const {
|
||||||
aiFile* p = mFileSystem->OpenProc(mFileSystem,pFile,"rb");
|
aiFile *p = mFileSystem->OpenProc(mFileSystem, pFile, "rb");
|
||||||
if (p){
|
if (p) {
|
||||||
mFileSystem->CloseProc(mFileSystem,p);
|
mFileSystem->CloseProc(mFileSystem, p);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -117,8 +113,8 @@ char CIOSystemWrapper::getOsSeparator() const {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...................................................................
|
// ...................................................................
|
||||||
IOStream* CIOSystemWrapper::Open(const char* pFile,const char* pMode) {
|
IOStream *CIOSystemWrapper::Open(const char *pFile, const char *pMode) {
|
||||||
aiFile* p = mFileSystem->OpenProc(mFileSystem,pFile,pMode);
|
aiFile *p = mFileSystem->OpenProc(mFileSystem, pFile, pMode);
|
||||||
if (!p) {
|
if (!p) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -126,11 +122,11 @@ IOStream* CIOSystemWrapper::Open(const char* pFile,const char* pMode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// ...................................................................
|
// ...................................................................
|
||||||
void CIOSystemWrapper::Close( IOStream* pFile) {
|
void CIOSystemWrapper::Close(IOStream *pFile) {
|
||||||
if (!pFile) {
|
if (!pFile) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
delete pFile;
|
delete pFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
} // namespace Assimp
|
||||||
|
|
|
@ -5,8 +5,6 @@ Open Asset Import Library (assimp)
|
||||||
|
|
||||||
Copyright (c) 2006-2020, assimp team
|
Copyright (c) 2006-2020, assimp team
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use of this software in source and binary forms,
|
Redistribution and use of this software in source and binary forms,
|
||||||
|
@ -50,50 +48,47 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <assimp/IOStream.hpp>
|
#include <assimp/IOStream.hpp>
|
||||||
#include <assimp/IOSystem.hpp>
|
#include <assimp/IOSystem.hpp>
|
||||||
|
|
||||||
namespace Assimp {
|
namespace Assimp {
|
||||||
|
|
||||||
class CIOSystemWrapper;
|
class CIOSystemWrapper;
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Custom IOStream implementation for the C-API
|
// Custom IOStream implementation for the C-API
|
||||||
class CIOStreamWrapper : public IOStream
|
class CIOStreamWrapper : public IOStream {
|
||||||
{
|
|
||||||
public:
|
public:
|
||||||
explicit CIOStreamWrapper(aiFile* pFile, CIOSystemWrapper* io)
|
explicit CIOStreamWrapper(aiFile *pFile, CIOSystemWrapper *io) :
|
||||||
: mFile(pFile),
|
mFile(pFile),
|
||||||
mIO(io)
|
mIO(io) {}
|
||||||
{}
|
|
||||||
~CIOStreamWrapper(void);
|
~CIOStreamWrapper(void);
|
||||||
|
|
||||||
size_t Read(void* pvBuffer, size_t pSize, size_t pCount);
|
size_t Read(void *pvBuffer, size_t pSize, size_t pCount);
|
||||||
size_t Write(const void* pvBuffer, size_t pSize, size_t pCount);
|
size_t Write(const void *pvBuffer, size_t pSize, size_t pCount);
|
||||||
aiReturn Seek(size_t pOffset, aiOrigin pOrigin);
|
aiReturn Seek(size_t pOffset, aiOrigin pOrigin);
|
||||||
size_t Tell(void) const;
|
size_t Tell(void) const;
|
||||||
size_t FileSize() const;
|
size_t FileSize() const;
|
||||||
void Flush();
|
void Flush();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
aiFile* mFile;
|
aiFile *mFile;
|
||||||
CIOSystemWrapper* mIO;
|
CIOSystemWrapper *mIO;
|
||||||
};
|
};
|
||||||
|
|
||||||
class CIOSystemWrapper : public IOSystem
|
class CIOSystemWrapper : public IOSystem {
|
||||||
{
|
|
||||||
friend class CIOStreamWrapper;
|
friend class CIOStreamWrapper;
|
||||||
public:
|
|
||||||
explicit CIOSystemWrapper(aiFileIO* pFile)
|
|
||||||
: mFileSystem(pFile)
|
|
||||||
{}
|
|
||||||
|
|
||||||
bool Exists( const char* pFile) const;
|
public:
|
||||||
|
explicit CIOSystemWrapper(aiFileIO *pFile) :
|
||||||
|
mFileSystem(pFile) {}
|
||||||
|
|
||||||
|
bool Exists(const char *pFile) const;
|
||||||
char getOsSeparator() const;
|
char getOsSeparator() const;
|
||||||
IOStream* Open(const char* pFile,const char* pMode = "rb");
|
IOStream *Open(const char *pFile, const char *pMode = "rb");
|
||||||
void Close( IOStream* pFile);
|
void Close(IOStream *pFile);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
aiFileIO* mFileSystem;
|
aiFileIO *mFileSystem;
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
} // namespace Assimp
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1233,7 +1233,7 @@ if (APPLE)
|
||||||
# add ./Compiler/*.h to assimp.framework via copy command
|
# add ./Compiler/*.h to assimp.framework via copy command
|
||||||
ADD_CUSTOM_COMMAND(TARGET assimp POST_BUILD
|
ADD_CUSTOM_COMMAND(TARGET assimp POST_BUILD
|
||||||
COMMAND "${CMAKE_COMMAND}" -E copy_directory
|
COMMAND "${CMAKE_COMMAND}" -E copy_directory
|
||||||
"../${HEADER_PATH}/Compiler"
|
"${HEADER_PATH}/Compiler"
|
||||||
assimp.framework/Headers/Compiler
|
assimp.framework/Headers/Compiler
|
||||||
COMMENT "Copying public ./Compiler/ header files to framework bundle's Headers/Compiler/")
|
COMMENT "Copying public ./Compiler/ header files to framework bundle's Headers/Compiler/")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
|
@ -109,4 +109,4 @@ public:
|
||||||
} // Namespace Assimp
|
} // Namespace Assimp
|
||||||
|
|
||||||
|
|
||||||
#endif // SCALE_PROCESS_H_
|
#endif // SCALE_PROCESS_H_
|
||||||
|
|
|
@ -94,4 +94,4 @@ private:
|
||||||
} // Namespace Assimp
|
} // Namespace Assimp
|
||||||
|
|
||||||
|
|
||||||
#endif // SCALE_PROCESS_H_
|
#endif // SCALE_PROCESS_H_
|
||||||
|
|
|
@ -52,6 +52,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <limits>
|
#include <limits>
|
||||||
#include <assimp/TinyFormatter.h>
|
#include <assimp/TinyFormatter.h>
|
||||||
#include <assimp/Exceptional.h>
|
#include <assimp/Exceptional.h>
|
||||||
|
#include <set>
|
||||||
|
|
||||||
using namespace Assimp;
|
using namespace Assimp;
|
||||||
using namespace Assimp::Formatter;
|
using namespace Assimp::Formatter;
|
||||||
|
@ -172,7 +173,15 @@ void SplitByBoneCountProcess::SplitMesh( const aiMesh* pMesh, std::vector<aiMesh
|
||||||
const aiBone* bone = pMesh->mBones[a];
|
const aiBone* bone = pMesh->mBones[a];
|
||||||
for( unsigned int b = 0; b < bone->mNumWeights; ++b)
|
for( unsigned int b = 0; b < bone->mNumWeights; ++b)
|
||||||
{
|
{
|
||||||
vertexBones[ bone->mWeights[b].mVertexId ].push_back( BoneWeight( a, bone->mWeights[b].mWeight));
|
if (bone->mWeights[b].mWeight > 0.0f)
|
||||||
|
{
|
||||||
|
int vertexId = bone->mWeights[b].mVertexId;
|
||||||
|
vertexBones[vertexId].push_back( BoneWeight( a, bone->mWeights[b].mWeight));
|
||||||
|
if (vertexBones[vertexId].size() > mMaxBoneCount)
|
||||||
|
{
|
||||||
|
throw DeadlyImportError("SplitByBoneCountProcess: Single face requires more bones than specified max bone count!");
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -188,9 +197,6 @@ void SplitByBoneCountProcess::SplitMesh( const aiMesh* pMesh, std::vector<aiMesh
|
||||||
subMeshFaces.reserve( pMesh->mNumFaces);
|
subMeshFaces.reserve( pMesh->mNumFaces);
|
||||||
// accumulated vertex count of all the faces in this submesh
|
// accumulated vertex count of all the faces in this submesh
|
||||||
unsigned int numSubMeshVertices = 0;
|
unsigned int numSubMeshVertices = 0;
|
||||||
// a small local array of new bones for the current face. State of all used bones for that face
|
|
||||||
// can only be updated AFTER the face is completely analysed. Thanks to imre for the fix.
|
|
||||||
std::vector<unsigned int> newBonesAtCurrentFace;
|
|
||||||
|
|
||||||
// add faces to the new submesh as long as all bones affecting the faces' vertices fit in the limit
|
// add faces to the new submesh as long as all bones affecting the faces' vertices fit in the limit
|
||||||
for( unsigned int a = 0; a < pMesh->mNumFaces; ++a)
|
for( unsigned int a = 0; a < pMesh->mNumFaces; ++a)
|
||||||
|
@ -200,33 +206,25 @@ void SplitByBoneCountProcess::SplitMesh( const aiMesh* pMesh, std::vector<aiMesh
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
// a small local set of new bones for the current face. State of all used bones for that face
|
||||||
|
// can only be updated AFTER the face is completely analysed. Thanks to imre for the fix.
|
||||||
|
std::set<unsigned int> newBonesAtCurrentFace;
|
||||||
|
|
||||||
const aiFace& face = pMesh->mFaces[a];
|
const aiFace& face = pMesh->mFaces[a];
|
||||||
// check every vertex if its bones would still fit into the current submesh
|
// check every vertex if its bones would still fit into the current submesh
|
||||||
for( unsigned int b = 0; b < face.mNumIndices; ++b )
|
for( unsigned int b = 0; b < face.mNumIndices; ++b )
|
||||||
{
|
{
|
||||||
const std::vector<BoneWeight>& vb = vertexBones[face.mIndices[b]];
|
const std::vector<BoneWeight>& vb = vertexBones[face.mIndices[b]];
|
||||||
for( unsigned int c = 0; c < vb.size(); ++c)
|
for( unsigned int c = 0; c < vb.size(); ++c)
|
||||||
|
{
|
||||||
|
unsigned int boneIndex = vb[c].first;
|
||||||
|
if( !isBoneUsed[boneIndex] )
|
||||||
{
|
{
|
||||||
unsigned int boneIndex = vb[c].first;
|
newBonesAtCurrentFace.insert(boneIndex);
|
||||||
// if the bone is already used in this submesh, it's ok
|
}
|
||||||
if( isBoneUsed[boneIndex] )
|
}
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
// if it's not used, yet, we would need to add it. Store its bone index
|
|
||||||
if( std::find( newBonesAtCurrentFace.begin(), newBonesAtCurrentFace.end(), boneIndex) == newBonesAtCurrentFace.end() )
|
|
||||||
{
|
|
||||||
newBonesAtCurrentFace.push_back( boneIndex);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (newBonesAtCurrentFace.size() > mMaxBoneCount)
|
|
||||||
{
|
|
||||||
throw DeadlyImportError("SplitByBoneCountProcess: Single face requires more bones than specified max bone count!");
|
|
||||||
}
|
|
||||||
// leave out the face if the new bones required for this face don't fit the bone count limit anymore
|
// leave out the face if the new bones required for this face don't fit the bone count limit anymore
|
||||||
if( numBones + newBonesAtCurrentFace.size() > mMaxBoneCount )
|
if( numBones + newBonesAtCurrentFace.size() > mMaxBoneCount )
|
||||||
{
|
{
|
||||||
|
@ -234,17 +232,13 @@ void SplitByBoneCountProcess::SplitMesh( const aiMesh* pMesh, std::vector<aiMesh
|
||||||
}
|
}
|
||||||
|
|
||||||
// mark all new bones as necessary
|
// mark all new bones as necessary
|
||||||
while( !newBonesAtCurrentFace.empty() )
|
for (std::set<unsigned int>::iterator it = newBonesAtCurrentFace.begin(); it != newBonesAtCurrentFace.end(); ++it)
|
||||||
{
|
{
|
||||||
unsigned int newIndex = newBonesAtCurrentFace.back();
|
if (!isBoneUsed[*it])
|
||||||
newBonesAtCurrentFace.pop_back(); // this also avoids the deallocation which comes with a clear()
|
{
|
||||||
if( isBoneUsed[newIndex] )
|
isBoneUsed[*it] = true;
|
||||||
{
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
isBoneUsed[newIndex] = true;
|
|
||||||
numBones++;
|
numBones++;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// store the face index and the vertex count
|
// store the face index and the vertex count
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
Copyright (c) 2013 Khaled Mammou - Advanced Micro Devices, Inc.
|
Copyright (c) 2013 Khaled Mammou - Advanced Micro Devices, Inc.
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
|
|
@ -237,4 +237,4 @@ The _android-cmake_ should correctly handle projects with assembler sources (`*.
|
||||||
|
|
||||||
## Copying
|
## Copying
|
||||||
|
|
||||||
_android-cmake_ is distributed under the terms of [BSD 3-Clause License](http://opensource.org/licenses/BSD-3-Clause)
|
_android-cmake_ is distributed under the terms of [BSD 3-Clause License](http://opensource.org/licenses/BSD-3-Clause)
|
||||||
|
|
|
@ -11,4 +11,4 @@ documentation for that specific version instead.**
|
||||||
To contribute code to Google Test, read:
|
To contribute code to Google Test, read:
|
||||||
|
|
||||||
* [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
|
* [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
|
||||||
* [PumpManual](PumpManual.md) -- how we generate some of Google Test's source files.
|
* [PumpManual](PumpManual.md) -- how we generate some of Google Test's source files.
|
||||||
|
|
|
@ -9,4 +9,4 @@ This page lists all official documentation wiki pages for Google Test **1.5.0**
|
||||||
To contribute code to Google Test, read:
|
To contribute code to Google Test, read:
|
||||||
|
|
||||||
* DevGuide -- read this _before_ writing your first patch.
|
* DevGuide -- read this _before_ writing your first patch.
|
||||||
* [PumpManual](V1_5_PumpManual.md) -- how we generate some of Google Test's source files.
|
* [PumpManual](V1_5_PumpManual.md) -- how we generate some of Google Test's source files.
|
||||||
|
|
|
@ -174,4 +174,4 @@ You can find real-world applications of Pump in [Google Test](http://www.google.
|
||||||
## Tips ##
|
## Tips ##
|
||||||
|
|
||||||
* If a meta variable is followed by a letter or digit, you can separate them using `[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper` generate `Foo1Helper` when `j` is 1.
|
* If a meta variable is followed by a letter or digit, you can separate them using `[[]]`, which inserts an empty string. For example `Foo$j[[]]Helper` generate `Foo1Helper` when `j` is 1.
|
||||||
* To avoid extra-long Pump source lines, you can break a line anywhere you want by inserting `[[]]` followed by a new line. Since any new-line character next to `[[` or `]]` is ignored, the generated code won't contain this new line.
|
* To avoid extra-long Pump source lines, you can break a line anywhere you want by inserting `[[]]` followed by a new line. Since any new-line character next to `[[` or `]]` is ignored, the generated code won't contain this new line.
|
||||||
|
|
|
@ -90,4 +90,4 @@ The Debugger has exited with status 0.
|
||||||
|
|
||||||
# Summary #
|
# Summary #
|
||||||
|
|
||||||
Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
|
Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
|
||||||
|
|
|
@ -11,4 +11,4 @@ documentation for that specific version instead.**
|
||||||
To contribute code to Google Test, read:
|
To contribute code to Google Test, read:
|
||||||
|
|
||||||
* [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
|
* [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
|
||||||
* [PumpManual](V1_6_PumpManual.md) -- how we generate some of Google Test's source files.
|
* [PumpManual](V1_6_PumpManual.md) -- how we generate some of Google Test's source files.
|
||||||
|
|
|
@ -90,4 +90,4 @@ The Debugger has exited with status 0.
|
||||||
|
|
||||||
# Summary #
|
# Summary #
|
||||||
|
|
||||||
Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
|
Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
|
||||||
|
|
|
@ -11,4 +11,4 @@ documentation for that specific version instead.**
|
||||||
To contribute code to Google Test, read:
|
To contribute code to Google Test, read:
|
||||||
|
|
||||||
* [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
|
* [DevGuide](DevGuide.md) -- read this _before_ writing your first patch.
|
||||||
* [PumpManual](V1_7_PumpManual.md) -- how we generate some of Google Test's source files.
|
* [PumpManual](V1_7_PumpManual.md) -- how we generate some of Google Test's source files.
|
||||||
|
|
|
@ -90,4 +90,4 @@ The Debugger has exited with status 0.
|
||||||
|
|
||||||
# Summary #
|
# Summary #
|
||||||
|
|
||||||
Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
|
Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
|
||||||
|
|
|
@ -90,4 +90,4 @@ The Debugger has exited with status 0.
|
||||||
|
|
||||||
# Summary #
|
# Summary #
|
||||||
|
|
||||||
Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
|
Unit testing is a valuable way to ensure your data model stays valid even during rapid development or refactoring. The Google Testing Framework is a great unit testing framework for C and C++ which integrates well with an Xcode development environment.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
==================
|
==================
|
||||||
INSTALLATION GUIDE
|
INSTALLATION GUIDE
|
||||||
==================
|
==================
|
||||||
|
|
||||||
|
@ -48,4 +48,4 @@ Examples:
|
||||||
./p2t nazca_monkey.dat 0 0 9
|
./p2t nazca_monkey.dat 0 0 9
|
||||||
|
|
||||||
./p2t random 10 100 5.0
|
./p2t random 10 100 5.0
|
||||||
./p2t random 1000 20000 0.025
|
./p2t random 1000 20000 0.025
|
||||||
|
|
|
@ -362,4 +362,4 @@ void Triangle::DebugPrint()
|
||||||
cout << points_[2]->x << "," << points_[2]->y << endl;
|
cout << points_[2]->x << "," << points_[2]->y << endl;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -324,4 +324,4 @@ inline void Triangle::IsInterior(bool b)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -35,4 +35,4 @@
|
||||||
#include "common/shapes.h"
|
#include "common/shapes.h"
|
||||||
#include "sweep/cdt.h"
|
#include "sweep/cdt.h"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -105,4 +105,4 @@ AdvancingFront::~AdvancingFront()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -115,4 +115,4 @@ inline void AdvancingFront::set_search(Node* node)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -68,4 +68,4 @@ CDT::~CDT()
|
||||||
delete sweep_;
|
delete sweep_;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,4 +102,4 @@ public:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -282,4 +282,4 @@ private:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -7459,4 +7459,4 @@ AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
||||||
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -15,4 +15,4 @@ else
|
||||||
make -j 8
|
make -j 8
|
||||||
make install
|
make install
|
||||||
ASAN_OPTIONS=detect_leaks=0 LSAN_OPTIONS=verbosity=1:log_threads=1 ctest -V
|
ASAN_OPTIONS=detect_leaks=0 LSAN_OPTIONS=verbosity=1:log_threads=1 ctest -V
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -19,4 +19,4 @@ after_success:
|
||||||
- make
|
- make
|
||||||
- make test
|
- make test
|
||||||
# Uploading report to CodeCov
|
# Uploading report to CodeCov
|
||||||
- bash <(curl -s https://codecov.io/bash)
|
- bash <(curl -s https://codecov.io/bash)
|
||||||
|
|
|
@ -196,10 +196,7 @@ if(MINGW)
|
||||||
set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
|
set(ZLIB_DLL_SRCS ${CMAKE_CURRENT_BINARY_DIR}/zlib1rc.obj)
|
||||||
endif(MINGW)
|
endif(MINGW)
|
||||||
|
|
||||||
add_library(zlib SHARED ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_DLL_SRCS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
|
||||||
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
add_library(zlibstatic STATIC ${ZLIB_SRCS} ${ZLIB_ASMS} ${ZLIB_PUBLIC_HDRS} ${ZLIB_PRIVATE_HDRS})
|
||||||
set_target_properties(zlib PROPERTIES DEFINE_SYMBOL ZLIB_DLL)
|
|
||||||
set_target_properties(zlib PROPERTIES SOVERSION 1)
|
|
||||||
|
|
||||||
INSTALL( TARGETS zlibstatic
|
INSTALL( TARGETS zlibstatic
|
||||||
LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
|
LIBRARY DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
AIAIAIAIAIAIA
|
AIAIAIAIAIAIA
|
||||||
|
|
|
@ -20,4 +20,4 @@ FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
DEALINGS IN THE SOFTWARE.
|
DEALINGS IN THE SOFTWARE.
|
||||||
|
|
|
@ -7,4 +7,4 @@ copy to a directory file from :
|
||||||
- contrib/masmx64
|
- contrib/masmx64
|
||||||
- contrib/vstudio/vc7
|
- contrib/vstudio/vc7
|
||||||
|
|
||||||
and open testzlib8.sln
|
and open testzlib8.sln
|
||||||
|
|
|
@ -8,4 +8,4 @@ This is a heavily modified and shrinked version of zlib 1.2.3
|
||||||
|
|
||||||
Assimp itself does not use the compression part yet, so
|
Assimp itself does not use the compression part yet, so
|
||||||
it needn't be compiled (trees.c, deflate.c, compress.c).
|
it needn't be compiled (trees.c, deflate.c, compress.c).
|
||||||
Currently these units are just used by assimp_cmd.
|
Currently these units are just used by assimp_cmd.
|
||||||
|
|
|
@ -351,4 +351,4 @@ BI8AxOURXedNEuG6jMiRPHKQsuuS4BGAuDzS0NCQlZV18JFlRI7qkRRdlwSPAHzCIynKaa5LgkcA
|
||||||
ETwCgEfwCAAewSMAeASP4BEAPIJHAPAIHgFItrEBsYNHAD7BK4gZPAKAR/AIAB7BIwCQBvwfU/j0
|
ETwCgEfwCAAewSMAeASP4BEAPIJHAPAIHgFItrEBsYNHAD7BK4gZPAKAR/AIAB7BIwCQBvwfU/j0
|
||||||
jy2hMWgAAAAASUVORK5C" />
|
jy2hMWgAAAAASUVORK5C" />
|
||||||
</BODY>
|
</BODY>
|
||||||
</HTML>
|
</HTML>
|
||||||
|
|
|
@ -645,4 +645,4 @@ tQ2gtkFtg9oGQG2jtkFtA6C2UduA2gZQ26C2QW0DoLZR26C2AVDbqG1AbQMoKg8CahvUNgBqG7UN
|
||||||
ahsAtY3aBtQ2AGobtQ1qGwC1jdoGtQ2A2kZtA2obALWN2ga1DUA1igr2o7ZBbQPw0/wD+/DsALUN
|
ahsAtY3aBtQ2AGobtQ1qGwC1jdoGtQ2A2kZtA2obALWN2ga1DUA1igr2o7ZBbQPw0/wD+/DsALUN
|
||||||
gNpGbYPaBkBto7ZBbQMAAD/R/wDNluGGIxSgmAAAAABJRU5ErkJg" />
|
gNpGbYPaBkBto7ZBbQMAAD/R/wDNluGGIxSgmAAAAABJRU5ErkJg" />
|
||||||
</BODY>
|
</BODY>
|
||||||
</HTML>
|
</HTML>
|
||||||
|
|
|
@ -104,4 +104,4 @@ tfMWuhaZfgHUw0Q32sDAwIcPH4I/C1fbaJVKRX0GBwft4RA5hXdkNepJqndpKD2R7TlrjeqmxkKh
|
||||||
oLOf5O8VrfC7XlrtOvYCO77PYocddthhhx122GGHHXbYYYcddthhhx122GGHHXbYYYdd29q1c83s
|
oLOf5O8VrfC7XlrtOvYCO77PYocddthhhx122GGHHXbYYYcddthhhx122GGHHXbYYYdd29q1c83s
|
||||||
I9m5B21Yuxg77FJtRzQV/wEjVLA5JUDyfgAAAABJRU5ErkJg" />
|
I9m5B21Yuxg77FJtRzQV/wEjVLA5JUDyfgAAAABJRU5ErkJg" />
|
||||||
</BODY>
|
</BODY>
|
||||||
</HTML>
|
</HTML>
|
||||||
|
|
|
@ -872,4 +872,4 @@ DYMQQgghNAxCCCGEEBoGIYQQQmgYhBBCCKFhEEIIIYTQMAghhBBCwyCEEEIIDYMQQgghNAxCCCGE
|
||||||
EBoGIYQQQmgYhBBCCKFhEEIIIYTQMAghhBBCwyCEEEJI/PP/A0zci3P89Qf2AAAAAElFTkSuQmCC
|
EBoGIYQQQmgYhBBCCKFhEEIIIYTQMAghhBBCwyCEEEJI/PP/A0zci3P89Qf2AAAAAElFTkSuQmCC
|
||||||
" />
|
" />
|
||||||
</BODY>
|
</BODY>
|
||||||
</HTML>
|
</HTML>
|
||||||
|
|
|
@ -334,4 +334,4 @@ CQCsyZpgTQCsyZpgTQCsyZpgTQCsyZpgTQCsCdZkTQBgTdZkTQBgTdZkTQBgTdYEawJgTdYEawJg
|
||||||
TdYEawJgTbAmawIAa7ImawIAa7ImawIAa7ImWBMAa7ImWBMAa7ImWBPAvDIByoc1WRMA/uU3lI1q
|
TdYEawJgTbAmawIAa7ImawIAa7ImawIAa7ImWBMAa7ImWBMAa7ImWBPAvDIByoc1WRMA/uU3lI1q
|
||||||
YU0ArAnWZE0AYE3WZE0AABY4/wVVY1WTrOVxIAAAAABJRU5ErkJg" />
|
YU0ArAnWZE0AYE3WZE0AABY4/wVVY1WTrOVxIAAAAABJRU5ErkJg" />
|
||||||
</BODY>
|
</BODY>
|
||||||
</HTML>
|
</HTML>
|
||||||
|
|
|
@ -5,8 +5,6 @@ Open Asset Import Library (assimp)
|
||||||
|
|
||||||
Copyright (c) 2006-2020, assimp team
|
Copyright (c) 2006-2020, assimp team
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Redistribution and use of this software in source and binary forms,
|
Redistribution and use of this software in source and binary forms,
|
||||||
|
@ -40,30 +38,19 @@ THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
#include <assimp/cimport.h>
|
||||||
|
#include <assimp/scene.h>
|
||||||
|
#include <assimp/postprocess.h>
|
||||||
|
|
||||||
#pragma once
|
extern "C" int LLVMFuzzerTestOneInput(const uint8_t *data, size_t dataSize) {
|
||||||
|
aiLogStream stream = aiGetPredefinedLogStream(aiDefaultLogStream_STDOUT,NULL);
|
||||||
|
aiAttachLogStream(&stream);
|
||||||
|
|
||||||
#ifndef ASSIMP_BUILD_NO_STEP_IMPORTER
|
Importer importer;
|
||||||
|
const aiScene *sc = importer.ReadFileFromMemory(data, dataSize,
|
||||||
|
aiProcessPreset_TargetRealtime_Quality, nullptr );
|
||||||
|
|
||||||
#include <assimp/BaseImporter.h>
|
aiDetachLogStream(&stream);
|
||||||
|
|
||||||
namespace Assimp {
|
return 0;
|
||||||
namespace StepFile {
|
}
|
||||||
|
|
||||||
class StepFileImporter : public BaseImporter {
|
|
||||||
public:
|
|
||||||
StepFileImporter();
|
|
||||||
~StepFileImporter();
|
|
||||||
bool CanRead(const std::string& pFile, IOSystem* pIOHandler, bool checkSig) const override;
|
|
||||||
const aiImporterDesc* GetInfo() const override;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
void InternReadFile( const std::string& pFile, aiScene* pScene, IOSystem* pIOHandler ) override;
|
|
||||||
|
|
||||||
private:
|
|
||||||
};
|
|
||||||
|
|
||||||
} // Namespace StepFile
|
|
||||||
} // Namespace Assimp
|
|
||||||
|
|
||||||
#endif // ASSIMP_BUILD_NO_STEP_IMPORTER
|
|
|
@ -1,4 +1,4 @@
|
||||||
/*
|
/*
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (assimp)
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
|
|
||||||
Project home page:
|
Project home page:
|
||||||
http://assimp.sourceforge.net
|
http://assimp.sourceforge.net
|
||||||
|
|
||||||
Sourceforge.net project page:
|
Sourceforge.net project page:
|
||||||
http://www.sourceforge.net/projects/assimp
|
http://www.sourceforge.net/projects/assimp
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -29,4 +29,4 @@ Reinstall Microsoft Visual C++ 2005 SP1 Redistributable (x86 or x64, depending o
|
||||||
Add it to PATH. That's not a bug, the installer does not alter the PATH.
|
Add it to PATH. That's not a bug, the installer does not alter the PATH.
|
||||||
|
|
||||||
4. Crashes immediately
|
4. Crashes immediately
|
||||||
You CPU lacks SSE2 support. Build Assimp from scratch to suit your CPU, sorry.
|
You CPU lacks SSE2 support. Build Assimp from scratch to suit your CPU, sorry.
|
||||||
|
|
|
@ -26,4 +26,4 @@ Install the latest DirectX runtime or grab the file from somewhere (that's evil
|
||||||
(Re)install Microsoft Visual C++ 2005 SP1 Redistributable (x86 or x64, depending on your system)
|
(Re)install Microsoft Visual C++ 2005 SP1 Redistributable (x86 or x64, depending on your system)
|
||||||
|
|
||||||
3. Crashes immediately
|
3. Crashes immediately
|
||||||
You CPU lacks SSE2 support. Build Assimp from scratch to suit your CPU, sorry.
|
You CPU lacks SSE2 support. Build Assimp from scratch to suit your CPU, sorry.
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
#-*- coding: UTF-8 -*-
|
#-*- coding: UTF-8 -*-
|
||||||
|
|
||||||
"""
|
"""
|
||||||
All possible errors.
|
All possible errors.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
class AssimpError(BaseException):
|
class AssimpError(BaseException):
|
||||||
"""
|
"""
|
||||||
If an internal error occurs.
|
If an internal error occurs.
|
||||||
"""
|
"""
|
||||||
pass
|
pass
|
||||||
|
|
|
@ -172,4 +172,4 @@ public final class AiAnimation {
|
||||||
public List<AiMeshAnim> getMeshChannels() {
|
public List<AiMeshAnim> getMeshChannels() {
|
||||||
throw new UnsupportedOperationException("not implemented yet");
|
throw new UnsupportedOperationException("not implemented yet");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -114,4 +114,4 @@ public enum AiBlendMode {
|
||||||
* The mapped c/c++ integer enum value.
|
* The mapped c/c++ integer enum value.
|
||||||
*/
|
*/
|
||||||
private final int m_rawValue;
|
private final int m_rawValue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -300,4 +300,4 @@ public final class AiCamera {
|
||||||
* Aspect ratio.
|
* Aspect ratio.
|
||||||
*/
|
*/
|
||||||
private final float m_aspect;
|
private final float m_aspect;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,4 +43,4 @@ package jassimp;
|
||||||
public interface AiProgressHandler
|
public interface AiProgressHandler
|
||||||
{
|
{
|
||||||
boolean update(float percentage);
|
boolean update(float percentage);
|
||||||
}
|
}
|
||||||
|
|
|
@ -162,4 +162,4 @@ public final class AiQuaternion {
|
||||||
return "[" + getX() + ", " + getY() + ", " + getZ() + ", " +
|
return "[" + getX() + ", " + getY() + ", " + getZ() + ", " +
|
||||||
getW() + "]";
|
getW() + "]";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -209,4 +209,4 @@ public enum AiTextureType {
|
||||||
* The mapped c/c++ integer enum value.
|
* The mapped c/c++ integer enum value.
|
||||||
*/
|
*/
|
||||||
private final int m_rawValue;
|
private final int m_rawValue;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
The interface files are by no means complete yet and only work with the not-yet-released D SWIG backend, although adding support for other languages should not be too much of problem via #ifdefs.
|
The interface files are by no means complete yet and only work with the not-yet-released D SWIG backend, although adding support for other languages should not be too much of problem via #ifdefs.
|
||||||
|
|
|
@ -19,4 +19,4 @@ Troubleshooting:
|
||||||
- OSX workspaces are not updated too frequently, so same files may be missing.
|
- OSX workspaces are not updated too frequently, so same files may be missing.
|
||||||
|
|
||||||
If you have any problems which you can't solve on your own,
|
If you have any problems which you can't solve on your own,
|
||||||
please report them on the thread above.
|
please report them on the thread above.
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// Simple Assimp Directx11 Sample
|
// Simple Assimp Directx11 Sample
|
||||||
// This is a very basic sample and only reads diffuse texture
|
// This is a very basic sample and only reads diffuse texture
|
||||||
// but this can load both embedded textures in fbx and non-embedded textures
|
// but this can load both embedded textures in fbx and non-embedded textures
|
||||||
|
|
|
@ -12,4 +12,4 @@ http://xu1productions.com/3dstudio/index.html - 3D Game Resources
|
||||||
|
|
||||||
http://www.psionicdesign.com - My Main 2D/3D Digital Art site
|
http://www.psionicdesign.com - My Main 2D/3D Digital Art site
|
||||||
|
|
||||||
Psionic 2002
|
Psionic 2002
|
||||||
|
|
|
@ -9,4 +9,4 @@ http://www.elektrobar.com/lux/
|
||||||
or mail to:
|
or mail to:
|
||||||
lux@elektrobar.com
|
lux@elektrobar.com
|
||||||
|
|
||||||
have fun.....VIRLUX
|
have fun.....VIRLUX
|
||||||
|
|
|
@ -22,4 +22,4 @@ tutorials.
|
||||||
INFO
|
INFO
|
||||||
====
|
====
|
||||||
|
|
||||||
CONVERTED FROM 3DS TO ASE WITH AC3D
|
CONVERTED FROM 3DS TO ASE WITH AC3D
|
||||||
|
|
|
@ -21,4 +21,4 @@ tutorials.
|
||||||
INFO
|
INFO
|
||||||
====
|
====
|
||||||
|
|
||||||
CONVERTED FROM 3DS TO ASE WITH AC3D
|
CONVERTED FROM 3DS TO ASE WITH AC3D
|
||||||
|
|
|
@ -8,4 +8,4 @@ RESTRICTIONS:
|
||||||
This model pack is available for use in freeware, shareware, commercial games/software with the following restrictions:-
|
This model pack is available for use in freeware, shareware, commercial games/software with the following restrictions:-
|
||||||
|
|
||||||
**You may not sell/re-sell this model pack or claim it as your own.
|
**You may not sell/re-sell this model pack or claim it as your own.
|
||||||
***You may not redistribute this pack in some other model pack through a website or on a compilation CD of any kind, without my written consent.
|
***You may not redistribute this pack in some other model pack through a website or on a compilation CD of any kind, without my written consent.
|
||||||
|
|
|
@ -20,4 +20,4 @@ tutorials.
|
||||||
INFO
|
INFO
|
||||||
====
|
====
|
||||||
|
|
||||||
COnverted from 3ds to DXF with Ac3D
|
COnverted from 3ds to DXF with Ac3D
|
||||||
|
|
|
@ -12,4 +12,4 @@ http://xu1productions.com/3dstudio/index.html - 3D Game Resources
|
||||||
|
|
||||||
http://www.psionicdesign.com - My Main 2D/3D Digital Art site
|
http://www.psionicdesign.com - My Main 2D/3D Digital Art site
|
||||||
|
|
||||||
Psionic 2002
|
Psionic 2002
|
||||||
|
|
|
@ -9,4 +9,4 @@ http://www.elektrobar.com/lux/
|
||||||
or mail to:
|
or mail to:
|
||||||
lux@elektrobar.com
|
lux@elektrobar.com
|
||||||
|
|
||||||
have fun.....VIRLUX
|
have fun.....VIRLUX
|
||||||
|
|
|
@ -12,4 +12,4 @@ http://xu1productions.com/3dstudio/index.html - 3D Game Resources
|
||||||
|
|
||||||
http://www.psionicdesign.com - My Main 2D/3D Digital Art site
|
http://www.psionicdesign.com - My Main 2D/3D Digital Art site
|
||||||
|
|
||||||
Psionic 2002
|
Psionic 2002
|
||||||
|
|
|
@ -9,4 +9,4 @@ http://www.elektrobar.com/lux/
|
||||||
or mail to:
|
or mail to:
|
||||||
lux@elektrobar.com
|
lux@elektrobar.com
|
||||||
|
|
||||||
have fun.....VIRLUX
|
have fun.....VIRLUX
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Good IFC test cases
|
Good IFC test cases
|
||||||
===================
|
===================
|
||||||
|
|
||||||
http://www.iai.fzk.de/www-extern/index.php?id=1135
|
http://www.iai.fzk.de/www-extern/index.php?id=1135
|
||||||
|
|
|
@ -28,4 +28,4 @@ INFO
|
||||||
|
|
||||||
|
|
||||||
These files belong to the QuickDraw model in the LWS folder - they are referenced
|
These files belong to the QuickDraw model in the LWS folder - they are referenced
|
||||||
and loaded into the LWS scene.
|
and loaded into the LWS scene.
|
||||||
|
|
|
@ -21,4 +21,4 @@ tutorials.
|
||||||
INFO
|
INFO
|
||||||
====
|
====
|
||||||
|
|
||||||
CONVERTED FROM 3DS TO LWO2 WITH AC3D
|
CONVERTED FROM 3DS TO LWO2 WITH AC3D
|
||||||
|
|
|
@ -12,4 +12,4 @@ In the future more 3d formats will be added and some other sections such as wall
|
||||||
|
|
||||||
|
|
||||||
CHANGES:
|
CHANGES:
|
||||||
Paths have been modified
|
Paths have been modified
|
||||||
|
|
|
@ -23,4 +23,4 @@ ID software, eskimo roll, EMSIPE, QkenneyQ
|
||||||
DISTRIBUTION
|
DISTRIBUTION
|
||||||
as long as this readme is included...!
|
as long as this readme is included...!
|
||||||
|
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
|
@ -23,4 +23,4 @@ ID software, eskimo roll, EMSIPE, QkenneyQ
|
||||||
DISTRIBUTION
|
DISTRIBUTION
|
||||||
as long as this readme is included...!
|
as long as this readme is included...!
|
||||||
|
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
|
@ -46,4 +46,4 @@ version 4
|
||||||
◯ クレジット
|
◯ クレジット
|
||||||
企画: 株式会社ドワンゴ
|
企画: 株式会社ドワンゴ
|
||||||
キャラクターデザイン: 黒星紅白
|
キャラクターデザイン: 黒星紅白
|
||||||
モデリング: 雨刻
|
モデリング: 雨刻
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
teapot.nff, home4.nff - http://www.martinreddy.net/ukvrsig/wtk.html
|
teapot.nff, home4.nff - http://www.martinreddy.net/ukvrsig/wtk.html
|
||||||
|
|
||||||
cokecan.nff -www.vrupl.evl.uic.edu/Eng591_Pages/cokecan.nff
|
cokecan.nff -www.vrupl.evl.uic.edu/Eng591_Pages/cokecan.nff
|
||||||
TODO: License status to be confirmed
|
TODO: License status to be confirmed
|
||||||
|
|
|
@ -24,4 +24,4 @@ tutorials.
|
||||||
INFO
|
INFO
|
||||||
====
|
====
|
||||||
|
|
||||||
Converted from 3DS to OBJ with AC3D
|
Converted from 3DS to OBJ with AC3D
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
Obj exported from Blender
|
Obj exported from Blender
|
||||||
|
|
||||||
http://toychest.in.tum.de/wiki/projects:kuka_lwr
|
http://toychest.in.tum.de/wiki/projects:kuka_lwr
|
||||||
License: Creative-Commons-by-Attribution-3.0
|
License: Creative-Commons-by-Attribution-3.0
|
||||||
|
|
|
@ -18,4 +18,4 @@ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
THE SOFTWARE.
|
THE SOFTWARE.
|
||||||
|
|
|
@ -7,4 +7,4 @@ This asset set is used to test the full functionality of both binary and XML Ass
|
||||||
* Material file was created by copying the relevant material parts from the sample sources. See the file for further information.
|
* Material file was created by copying the relevant material parts from the sample sources. See the file for further information.
|
||||||
* Some textures were converted from .png to .jpg to reduce the file size.
|
* Some textures were converted from .png to .jpg to reduce the file size.
|
||||||
|
|
||||||
See the LICENSE file in this folder for further copyright information about these assets.
|
See the LICENSE file in this folder for further copyright information about these assets.
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
These models are not generally redistributable under the terms of Assimp's BSD license. Usually, an additional requirement on the use of the data is imposed (i.e. no commercial use, need credits, some creative commons variants, ...).
|
These models are not generally redistributable under the terms of Assimp's BSD license. Usually, an additional requirement on the use of the data is imposed (i.e. no commercial use, need credits, some creative commons variants, ...).
|
||||||
|
|
||||||
So, if you re-package Assimp for use in a 'clean' OSS package, consider removing this directory.
|
So, if you re-package Assimp for use in a 'clean' OSS package, consider removing this directory.
|
||||||
|
|
|
@ -8,4 +8,4 @@ In other words: TO DO, but only if someone REALLY needs it.
|
||||||
|
|
||||||
To see how it should look like - test/ReferenceImages
|
To see how it should look like - test/ReferenceImages
|
||||||
Note that the viewer has no 'decal' texture mapping mode, so
|
Note that the viewer has no 'decal' texture mapping mode, so
|
||||||
the usual clamping is used.
|
the usual clamping is used.
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
All textures are from cgtextures.com and are free for commercial use
|
All textures are from cgtextures.com and are free for commercial use
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
"MotionCaptureROM.ase" - Free for any purpose.
|
"MotionCaptureROM.ase" - Free for any purpose.
|
||||||
|
|
||||||
NOTE: The errors in the middle of the animation are caused by problems during recording, it's not an importer issue.
|
NOTE: The errors in the middle of the animation are caused by problems during recording, it's not an importer issue.
|
||||||
|
|
|
@ -1,3 +1,3 @@
|
||||||
HUMAN.blend (c) 2010, Tobias Rittig
|
HUMAN.blend (c) 2010, Tobias Rittig
|
||||||
|
|
||||||
Redistribution and reuse allowed for any purpose, credits appreciated.
|
Redistribution and reuse allowed for any purpose, credits appreciated.
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue