Merge branch 'master' into master

pull/1683/head
Christian Meurin 2018-01-06 14:48:23 -08:00 committed by GitHub
commit 7b5c543b82
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 21 additions and 28 deletions

1
.gitignore vendored
View File

@ -60,6 +60,7 @@ test/gtest/src/gtest-stamp/Debug/gtest-build
*.lib *.lib
test/gtest/src/gtest-stamp/Debug/ test/gtest/src/gtest-stamp/Debug/
tools/assimp_view/assimp_viewer.vcxproj.user tools/assimp_view/assimp_viewer.vcxproj.user
*.pyc
# Unix editor backups # Unix editor backups
*~ *~

View File

@ -129,30 +129,26 @@ AI_WONT_RETURN void TokenizeError(const std::string& message, unsigned int offse
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
uint32_t Offset(const char* begin, const char* cursor) uint32_t Offset(const char* begin, const char* cursor) {
{
ai_assert(begin <= cursor); ai_assert(begin <= cursor);
return static_cast<unsigned int>(cursor - begin); return static_cast<unsigned int>(cursor - begin);
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void TokenizeError(const std::string& message, const char* begin, const char* cursor) void TokenizeError(const std::string& message, const char* begin, const char* cursor) {
{
TokenizeError(message, Offset(begin, cursor)); TokenizeError(message, Offset(begin, cursor));
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
uint32_t ReadWord(const char* input, const char*& cursor, const char* end) uint32_t ReadWord(const char* input, const char*& cursor, const char* end) {
{
const size_t k_to_read = sizeof( uint32_t ); const size_t k_to_read = sizeof( uint32_t );
if(Offset(cursor, end) < k_to_read ) { if(Offset(cursor, end) < k_to_read ) {
TokenizeError("cannot ReadWord, out of bounds",input, cursor); TokenizeError("cannot ReadWord, out of bounds",input, cursor);
} }
uint32_t word; uint32_t word;
memcpy(&word, cursor, 4); ::memcpy(&word, cursor, 4);
AI_SWAP4(word); AI_SWAP4(word);
cursor += k_to_read; cursor += k_to_read;
@ -167,7 +163,8 @@ uint64_t ReadDoubleWord(const char* input, const char*& cursor, const char* end)
TokenizeError("cannot ReadDoubleWord, out of bounds",input, cursor); TokenizeError("cannot ReadDoubleWord, out of bounds",input, cursor);
} }
uint64_t dword = *reinterpret_cast<const uint64_t*>(cursor); uint64_t dword /*= *reinterpret_cast<const uint64_t*>(cursor)*/;
::memcpy( &dword, cursor, sizeof( uint64_t ) );
AI_SWAP8(dword); AI_SWAP8(dword);
cursor += k_to_read; cursor += k_to_read;
@ -176,24 +173,21 @@ uint64_t ReadDoubleWord(const char* input, const char*& cursor, const char* end)
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
uint8_t ReadByte(const char* input, const char*& cursor, const char* end) uint8_t ReadByte(const char* input, const char*& cursor, const char* end) {
{
if(Offset(cursor, end) < sizeof( uint8_t ) ) { if(Offset(cursor, end) < sizeof( uint8_t ) ) {
TokenizeError("cannot ReadByte, out of bounds",input, cursor); TokenizeError("cannot ReadByte, out of bounds",input, cursor);
} }
uint8_t word = *reinterpret_cast<const uint8_t*>(cursor); uint8_t word;/* = *reinterpret_cast< const uint8_t* >( cursor )*/
::memcpy( &word, cursor, sizeof( uint8_t ) );
++cursor; ++cursor;
return word; return word;
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
unsigned int ReadString(const char*& sbegin_out, const char*& send_out, const char* input, const char*& cursor, const char* end, unsigned int ReadString(const char*& sbegin_out, const char*& send_out, const char* input,
bool long_length = false, const char*& cursor, const char* end, bool long_length = false, bool allow_null = false) {
bool allow_null = false)
{
const uint32_t len_len = long_length ? 4 : 1; const uint32_t len_len = long_length ? 4 : 1;
if(Offset(cursor, end) < len_len) { if(Offset(cursor, end) < len_len) {
TokenizeError("cannot ReadString, out of bounds reading length",input, cursor); TokenizeError("cannot ReadString, out of bounds reading length",input, cursor);
@ -222,8 +216,7 @@ unsigned int ReadString(const char*& sbegin_out, const char*& send_out, const ch
} }
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
void ReadData(const char*& sbegin_out, const char*& send_out, const char* input, const char*& cursor, const char* end) void ReadData(const char*& sbegin_out, const char*& send_out, const char* input, const char*& cursor, const char* end) {
{
if(Offset(cursor, end) < 1) { if(Offset(cursor, end) < 1) {
TokenizeError("cannot ReadData, out of bounds reading length",input, cursor); TokenizeError("cannot ReadData, out of bounds reading length",input, cursor);
} }
@ -422,7 +415,7 @@ bool ReadScope(TokenList& output_tokens, const char* input, const char*& cursor,
return true; return true;
} }
} } // anonymous namespace
// ------------------------------------------------------------------------------------------------ // ------------------------------------------------------------------------------------------------
// TODO: Test FBX Binary files newer than the 7500 version to check if the 64 bits address behaviour is consistent // TODO: Test FBX Binary files newer than the 7500 version to check if the 64 bits address behaviour is consistent

View File

@ -156,7 +156,10 @@ namespace glTF2 {
inline void Write(Value& obj, Buffer& b, AssetWriter& w) inline void Write(Value& obj, Buffer& b, AssetWriter& w)
{ {
obj.AddMember("byteLength", static_cast<uint64_t>(b.byteLength), w.mAl); obj.AddMember("byteLength", static_cast<uint64_t>(b.byteLength), w.mAl);
obj.AddMember("uri", Value(b.GetURI(), w.mAl).Move(), w.mAl);
const auto uri = b.GetURI();
const auto relativeUri = uri.substr(uri.find_last_of("/\\") + 1u);
obj.AddMember("uri", Value(relativeUri, w.mAl).Move(), w.mAl);
} }
inline void Write(Value& obj, BufferView& bv, AssetWriter& w) inline void Write(Value& obj, BufferView& bv, AssetWriter& w)

View File

@ -110,8 +110,7 @@ extern "C" {
/** Maximum dimension for strings, ASSIMP strings are zero terminated. */ /** Maximum dimension for strings, ASSIMP strings are zero terminated. */
#ifdef __cplusplus #ifdef __cplusplus
static static const size_t MAXLEN = 1024;
const size_t MAXLEN = 1024;
#else #else
# define MAXLEN 1024 # define MAXLEN 1024
#endif #endif

View File

@ -51,11 +51,8 @@ if os.name=='posix':
elif os.name=='nt': elif os.name=='nt':
ext_whitelist.append('.dll') ext_whitelist.append('.dll')
path_dirs = os.environ['PATH'].split(';') path_dirs = os.environ['PATH'].split(';')
for dir_candidate in path_dirs: additional_dirs.extend(path_dirs)
if 'assimp' in dir_candidate.lower():
additional_dirs.append(dir_candidate)
#print(additional_dirs)
def vec2tuple(x): def vec2tuple(x):
""" Converts a VECTOR3D to a Tuple """ """ Converts a VECTOR3D to a Tuple """
return (x.x, x.y, x.z) return (x.x, x.y, x.z)