Merge branch 'master' into updatedminizip
commit
588ed7a32a
|
@ -76,6 +76,53 @@ using namespace Util;
|
||||||
|
|
||||||
#define CONVERT_FBX_TIME(time) static_cast<double>(time) / 46186158000LL
|
#define CONVERT_FBX_TIME(time) static_cast<double>(time) / 46186158000LL
|
||||||
|
|
||||||
|
static void correctRootTransform(const aiScene *scene) {
|
||||||
|
if (scene == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (scene->mMetaData == nullptr) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
int32_t UpAxis = 1, UpAxisSign = 1, FrontAxis = 2, FrontAxisSign = 1, CoordAxis = 0, CoordAxisSign = 1;
|
||||||
|
double UnitScaleFactor = 1.0;
|
||||||
|
for (unsigned MetadataIndex = 0; MetadataIndex < scene->mMetaData->mNumProperties; ++MetadataIndex) {
|
||||||
|
if (strcmp(scene->mMetaData->mKeys[MetadataIndex].C_Str(), "UpAxis") == 0) {
|
||||||
|
scene->mMetaData->Get<int32_t>(MetadataIndex, UpAxis);
|
||||||
|
}
|
||||||
|
if (strcmp(scene->mMetaData->mKeys[MetadataIndex].C_Str(), "UpAxisSign") == 0) {
|
||||||
|
scene->mMetaData->Get<int32_t>(MetadataIndex, UpAxisSign);
|
||||||
|
}
|
||||||
|
if (strcmp(scene->mMetaData->mKeys[MetadataIndex].C_Str(), "FrontAxis") == 0) {
|
||||||
|
scene->mMetaData->Get<int32_t>(MetadataIndex, FrontAxis);
|
||||||
|
}
|
||||||
|
if (strcmp(scene->mMetaData->mKeys[MetadataIndex].C_Str(), "FrontAxisSign") == 0) {
|
||||||
|
scene->mMetaData->Get<int32_t>(MetadataIndex, FrontAxisSign);
|
||||||
|
}
|
||||||
|
if (strcmp(scene->mMetaData->mKeys[MetadataIndex].C_Str(), "CoordAxis") == 0) {
|
||||||
|
scene->mMetaData->Get<int32_t>(MetadataIndex, CoordAxis);
|
||||||
|
}
|
||||||
|
if (strcmp(scene->mMetaData->mKeys[MetadataIndex].C_Str(), "CoordAxisSign") == 0) {
|
||||||
|
scene->mMetaData->Get<int32_t>(MetadataIndex, CoordAxisSign);
|
||||||
|
}
|
||||||
|
if (strcmp(scene->mMetaData->mKeys[MetadataIndex].C_Str(), "UnitScaleFactor") == 0) {
|
||||||
|
scene->mMetaData->Get<double>(MetadataIndex, UnitScaleFactor);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
aiVector3D upVec, forwardVec, rightVec;
|
||||||
|
upVec[UpAxis] = UpAxisSign * static_cast<float>(UnitScaleFactor);
|
||||||
|
forwardVec[FrontAxis] = FrontAxisSign * static_cast<float>(UnitScaleFactor);
|
||||||
|
rightVec[CoordAxis] = CoordAxisSign * (float)UnitScaleFactor;
|
||||||
|
|
||||||
|
aiMatrix4x4 mat(rightVec.x, rightVec.y, rightVec.z, 0.0f,
|
||||||
|
upVec.x, upVec.y, upVec.z, 0.0f,
|
||||||
|
forwardVec.x, forwardVec.y, forwardVec.z, 0.0f,
|
||||||
|
0.0f, 0.0f, 0.0f, 1.0f);
|
||||||
|
scene->mRootNode->mTransformation *= mat;
|
||||||
|
}
|
||||||
|
|
||||||
FBXConverter::FBXConverter(aiScene *out, const Document &doc, bool removeEmptyBones) :
|
FBXConverter::FBXConverter(aiScene *out, const Document &doc, bool removeEmptyBones) :
|
||||||
defaultMaterialIndex(),
|
defaultMaterialIndex(),
|
||||||
mMeshes(),
|
mMeshes(),
|
||||||
|
@ -133,6 +180,8 @@ FBXConverter::FBXConverter(aiScene *out, const Document &doc, bool removeEmptyBo
|
||||||
// need not contain geometry (i.e. camera animations, raw armatures).
|
// need not contain geometry (i.e. camera animations, raw armatures).
|
||||||
if (out->mNumMeshes == 0) {
|
if (out->mNumMeshes == 0) {
|
||||||
out->mFlags |= AI_SCENE_FLAGS_INCOMPLETE;
|
out->mFlags |= AI_SCENE_FLAGS_INCOMPLETE;
|
||||||
|
} else {
|
||||||
|
correctRootTransform(mSceneOut);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,29 +0,0 @@
|
||||||
|
|
||||||
------------------------------------------------------------------------------------
|
|
||||||
Open Asset Import Library (Assimp) Tools/Binaries for Windows
|
|
||||||
Release Notes
|
|
||||||
------------------------------------------------------------------------------------
|
|
||||||
|
|
||||||
|
|
||||||
Known Bugs & Limitations
|
|
||||||
========================
|
|
||||||
|
|
||||||
Viewer
|
|
||||||
|
|
||||||
- For files more than one embedded texture, only the first is loaded.
|
|
||||||
- Normals appear flipped from time to time when either of the normals-related menu items was hit.
|
|
||||||
- Alpha-sorting is implemented, but still causes artifacts when models are moved quickly.
|
|
||||||
- Several important texture file formats (such as GIF) are not supported.
|
|
||||||
- HUD is blurred on the right side. ATI/AMD hardware only.
|
|
||||||
|
|
||||||
Troubleshooting
|
|
||||||
===============
|
|
||||||
|
|
||||||
1. Missing d3dx9_42.dll?
|
|
||||||
Install the latest DirectX runtime or grab the file from somewhere (that's evil but mostly fine).
|
|
||||||
|
|
||||||
2. Application configuration not correct / missing msv*** DLLs?
|
|
||||||
(Re)install Microsoft Visual C++ 2005 SP1 Redistributable (x86 or x64, depending on your system)
|
|
||||||
|
|
||||||
3. Crashes immediately
|
|
||||||
You CPU lacks SSE2 support. Build Assimp from scratch to suit your CPU, sorry.
|
|
|
@ -1,169 +0,0 @@
|
||||||
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
rem Batch file to build zipped redist packages
|
|
||||||
rem Two different packages are built:
|
|
||||||
rem
|
|
||||||
rem assimp--<revision>-bin.zip
|
|
||||||
rem Binaries for x86 and x64
|
|
||||||
rem Command line reference
|
|
||||||
rem
|
|
||||||
rem assimp--<revision>-sdk.zip
|
|
||||||
rem Binaries for x86 and x64, Debug & Release
|
|
||||||
rem Libs for DLL build, x86 & 64, Debug & Release
|
|
||||||
rem Full SVN checkout exluding mkutil & port
|
|
||||||
rem
|
|
||||||
rem
|
|
||||||
rem PREREQUISITES:
|
|
||||||
rem -7za.exe (7zip standalone)
|
|
||||||
rem Download from http://www.7-zip.org/download.html
|
|
||||||
rem
|
|
||||||
rem -svnversion.exe (Subversion revision getter)
|
|
||||||
rem Download any command line SVN package
|
|
||||||
rem
|
|
||||||
rem -doxygen.exe (Doxygen client)
|
|
||||||
rem Download from www.doxygen.com
|
|
||||||
rem
|
|
||||||
rem -svn client
|
|
||||||
rem
|
|
||||||
rem NOTES:
|
|
||||||
rem ./bin must not have any local modifications
|
|
||||||
rem
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
|
|
||||||
@echo off
|
|
||||||
color 4e
|
|
||||||
cls
|
|
||||||
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
rem Setup file revision for build
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
call mkrev.bat
|
|
||||||
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
rem Build output file names
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
|
|
||||||
cd ..\..\bin
|
|
||||||
svnversion > tmpfile.txt
|
|
||||||
SET /p REVISIONBASE= < tmpfile.txt
|
|
||||||
DEL /q tmpfile.txt
|
|
||||||
cd ..\packaging\windows-mkzip
|
|
||||||
|
|
||||||
SET VERSIONBASE=2.0.%REVISIONBASE%
|
|
||||||
|
|
||||||
SET OUT_SDK=assimp--%VERSIONBASE%-sdk
|
|
||||||
SET OUT_BIN=assimp--%VERSIONBASE%-bin
|
|
||||||
|
|
||||||
SET BINCFG_x86=release-dll_win32
|
|
||||||
SET BINCFG_x64=release-dll_x64
|
|
||||||
|
|
||||||
SET BINCFG_x86_DEBUG=debug-dll_win32
|
|
||||||
SET BINCFG_x64_DEBUG=debug-dll_x64
|
|
||||||
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
rem Delete previous output directories
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
RD /S /q final\
|
|
||||||
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
rem Create output directories
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
|
|
||||||
mkdir final\%OUT_BIN%\x86
|
|
||||||
mkdir final\%OUT_BIN%\x64
|
|
||||||
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
rem Copy all executables to 'final-bin'
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
|
|
||||||
copy /Y ..\..\bin\assimpview_%BINCFG_x86%\assimp_view.exe "final\%OUT_BIN%\x86\assimp_view.exe"
|
|
||||||
copy /Y ..\..\bin\assimpview_%BINCFG_x64%\assimp_view.exe "final\%OUT_BIN%\x64\assimp_view.exe"
|
|
||||||
|
|
||||||
copy /Y ..\..\bin\assimpcmd_%BINCFG_x86%\assimp.exe "final\%OUT_BIN%\x86\assimp.exe"
|
|
||||||
copy /Y ..\..\bin\assimpcmd_%BINCFG_x64%\assimp.exe "final\%OUT_BIN%\x64\assimp.exe"
|
|
||||||
|
|
||||||
copy /Y ..\..\bin\assimp_%BINCFG_x86%\Assimp32.dll "final\%OUT_BIN%\x86\Assimp32.dll"
|
|
||||||
copy /Y ..\..\bin\assimp_%BINCFG_x64%\Assimp64.dll "final\%OUT_BIN%\x64\Assimp64.dll"
|
|
||||||
|
|
||||||
copy ..\..\LICENSE final\%OUT_BIN%\LICENSE
|
|
||||||
copy ..\..\CREDITS final\%OUT_BIN%\CREDITS
|
|
||||||
copy bin_readme.txt final\%OUT_BIN%\README
|
|
||||||
copy bin_readme.txt final\%OUT_BIN%\README
|
|
||||||
|
|
||||||
copy ..\..\doc\AssimpCmdDoc_Html\AssimpCmdDoc.chm final\%OUT_BIN%\CommandLine.chm
|
|
||||||
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
rem Do a clean export of the repository and build SDK
|
|
||||||
rem
|
|
||||||
rem We take the current revision and remove some stuff
|
|
||||||
rem that is nto yet ready to be published.
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
|
|
||||||
svn export .\..\..\ .\final\%OUT_SDK%
|
|
||||||
|
|
||||||
mkdir final\%OUT_SDK%\doc\assimp_html
|
|
||||||
mkdir final\%OUT_SDK%\doc\assimpcmd_html
|
|
||||||
copy .\..\..\doc\AssimpDoc_Html\* final\%OUT_SDK%\doc\assimp_html
|
|
||||||
copy .\..\..\doc\AssimpCmdDoc_Html\* final\%OUT_SDK%\doc\assimpcmd_html
|
|
||||||
del final\%OUT_SDK%\doc\assimpcmd_html\AssimpCmdDoc.chm
|
|
||||||
del final\%OUT_SDK%\doc\assimp_html\AssimpDoc.chm
|
|
||||||
|
|
||||||
rem Copy doc to a suitable place
|
|
||||||
move final\%OUT_SDK%\doc\AssimpDoc_Html\AssimpDoc.chm final\%OUT_SDK%\Documentation.chm
|
|
||||||
move final\%OUT_SDK%\doc\AssimpCmdDoc_Html\AssimpCmdDoc.chm final\%OUT_SDK%\CommandLine.chm
|
|
||||||
|
|
||||||
rem Cleanup ./doc folder
|
|
||||||
del /q final\%OUT_SDK%\doc\Preamble.txt
|
|
||||||
RD /s /q final\%OUT_SDK%\doc\AssimpDoc_Html
|
|
||||||
RD /s /q final\%OUT_SDK%\doc\AssimpCmdDoc_Html
|
|
||||||
|
|
||||||
rem Insert 'dummy' files into empty folders
|
|
||||||
echo. > final\%OUT_SDK%\lib\dummy
|
|
||||||
echo. > final\%OUT_SDK%\obj\dummy
|
|
||||||
|
|
||||||
|
|
||||||
RD /s /q final\%OUT_SDK%\port\swig
|
|
||||||
|
|
||||||
rem Also, repackaging is not a must-have feature
|
|
||||||
RD /s /q final\%OUT_SDK%\packaging
|
|
||||||
|
|
||||||
rem Copy prebuilt libs
|
|
||||||
mkdir "final\%OUT_SDK%\lib\assimp_%BINCFG_x86%"
|
|
||||||
mkdir "final\%OUT_SDK%\lib\assimp_%BINCFG_x64%"
|
|
||||||
mkdir "final\%OUT_SDK%\lib\assimp_%BINCFG_x86_DEBUG%"
|
|
||||||
mkdir "final\%OUT_SDK%\lib\assimp_%BINCFG_x64_DEBUG%"
|
|
||||||
|
|
||||||
copy /Y ..\..\lib\assimp_%BINCFG_x86%\assimp.lib "final\%OUT_SDK%\lib\assimp_%BINCFG_x86%"
|
|
||||||
copy /Y ..\..\lib\assimp_%BINCFG_x64%\assimp.lib "final\%OUT_SDK%\lib\assimp_%BINCFG_x64%\"
|
|
||||||
copy /Y ..\..\lib\assimp_%BINCFG_x86_DEBUG%\assimp.lib "final\%OUT_SDK%\lib\assimp_%BINCFG_x86_DEBUG%\"
|
|
||||||
copy /Y ..\..\lib\assimp_%BINCFG_x64_DEBUG%\assimp.lib "final\%OUT_SDK%\lib\assimp_%BINCFG_x64_DEBUG%\"
|
|
||||||
|
|
||||||
rem Copy prebuilt DLLs
|
|
||||||
mkdir "final\%OUT_SDK%\bin\assimp_%BINCFG_x86%"
|
|
||||||
mkdir "final\%OUT_SDK%\bin\assimp_%BINCFG_x64%"
|
|
||||||
mkdir "final\%OUT_SDK%\bin\assimp_%BINCFG_x86_DEBUG%"
|
|
||||||
mkdir "final\%OUT_SDK%\bin\assimp_%BINCFG_x64_DEBUG%"
|
|
||||||
|
|
||||||
|
|
||||||
copy /Y ..\..\bin\assimp_%BINCFG_x86%\Assimp32.dll "final\%OUT_SDK%\bin\assimp_%BINCFG_x86%\"
|
|
||||||
copy /Y ..\..\bin\assimp_%BINCFG_x64%\Assimp64.dll "final\%OUT_SDK%\bin\assimp_%BINCFG_x64%\"
|
|
||||||
copy /Y ..\..\bin\assimp_%BINCFG_x86_DEBUG%\Assimp32d.dll "final\%OUT_SDK%\bin\assimp_%BINCFG_x86_DEBUG%\"
|
|
||||||
copy /Y ..\..\bin\assimp_%BINCFG_x64_DEBUG%\Assimp64d.dll "final\%OUT_SDK%\bin\assimp_%BINCFG_x64_DEBUG%\"
|
|
||||||
|
|
||||||
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
rem Make final-bin.zip and final-sdk.zip
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
|
|
||||||
IF NOT EXIST 7za.exe (
|
|
||||||
cls
|
|
||||||
echo You need to have 7zip standalone installed to
|
|
||||||
echo build ZIP archives. Download: http://www.7-zip.org/download.html
|
|
||||||
pause
|
|
||||||
) else (
|
|
||||||
7za.exe a -tzip "final\%OUT_BIN%.zip" ".\final\%OUT_BIN%"
|
|
||||||
7za.exe a -tzip "final\%OUT_SDK%.zip" ".\final\%OUT_SDK%"
|
|
||||||
)
|
|
||||||
|
|
||||||
rem OK. We should have the release packages now.
|
|
||||||
|
|
|
@ -1,27 +0,0 @@
|
||||||
@echo off
|
|
||||||
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
rem Tiny batch script to build the input file revision.h
|
|
||||||
rem revision.h contains the revision number of the wc.
|
|
||||||
rem It is included by assimp.rc.
|
|
||||||
rem -----------------------------------------------------
|
|
||||||
|
|
||||||
rem This is not very elegant, but it works.
|
|
||||||
rem ./bin shouldn't have any local modifications
|
|
||||||
|
|
||||||
svnversion > tmpfile.txt
|
|
||||||
set /p addtext= < tmpfile.txt
|
|
||||||
del /q tmpfile.txt
|
|
||||||
|
|
||||||
echo #define SVNRevision > tmpfile.txt
|
|
||||||
|
|
||||||
if exist ..\..\revision.h del /q ..\..\revision.h
|
|
||||||
for /f "delims=" %%l in (tmpfile.txt) Do (
|
|
||||||
for /f "delims=M:" %%r in ("%addtext%") Do (
|
|
||||||
echo %%l %%r >> ..\..\revision.h
|
|
||||||
)
|
|
||||||
)
|
|
||||||
del /q tmpfile.txt
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,57 +0,0 @@
|
||||||
@echo off
|
|
||||||
set "initialdir=%cd%"
|
|
||||||
goto:main
|
|
||||||
|
|
||||||
:exitsucc
|
|
||||||
cd /d "%initialdir%"
|
|
||||||
set initialdir=
|
|
||||||
|
|
||||||
set MSBUILD_15="C:\Program Files (x86)\Microsoft Visual Studio\2018\Professional\MSBuild\15.0\Bin\msbuild.exe"
|
|
||||||
set MSBUILD_14="C:\Program Files (x86)\MSBuild\14.0\Bin\msbuild.exe"
|
|
||||||
|
|
||||||
if not "%VS150%"=="" set MSBUILD_15="%VS150%\MSBuild\15.0\Bin\msbuild.exe"
|
|
||||||
|
|
||||||
if /i %VS_VERSION%==2017 (
|
|
||||||
set MS_BUILD_EXE=%MSBUILD_15%
|
|
||||||
set PLATFORM_VER=v141
|
|
||||||
) else (
|
|
||||||
set MS_BUILD_EXE=%MSBUILD_14%
|
|
||||||
set PLATFORM_VER=v140
|
|
||||||
)
|
|
||||||
|
|
||||||
set MSBUILD=%MS_BUILD_EXE%
|
|
||||||
|
|
||||||
exit /b 0
|
|
||||||
|
|
||||||
:main
|
|
||||||
if not defined PLATFORM set "PLATFORM=x64"
|
|
||||||
|
|
||||||
::my work here is done?
|
|
||||||
|
|
||||||
set PATH_VSWHERE=C:\Program Files (x86)\Microsoft Visual Studio\Installer\
|
|
||||||
REM set PATH_STUDIO="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\"
|
|
||||||
|
|
||||||
for /f "usebackq tokens=*" %%i in (`"%PATH_VSWHERE%vswhere" -latest -products * -requires Microsoft.Component.MSBuild -property installationPath`) do (
|
|
||||||
set InstallDir=%%i
|
|
||||||
)
|
|
||||||
|
|
||||||
IF EXIST "%InstallDir%\VC\Auxiliary\Build\vcvarsall.bat" set VS150=%InstallDir%\
|
|
||||||
|
|
||||||
set "CMAKE_GENERATOR=Visual Studio 15 2017 Win64"
|
|
||||||
if not "%VS150%"=="" call "%VS150%\VC\Auxiliary\Build\vcvarsall.bat" %PLATFORM% && echo found VS 2o17 && set PLATFORM_VER=v141 && set VS_VERSION=2017 && goto:exitsucc
|
|
||||||
|
|
||||||
set "CMAKE_GENERATOR=Visual Studio 14 2015 Win64"
|
|
||||||
if defined VS140COMNTOOLS call "%VS140COMNTOOLS%..\..\VC\vcvarsall.bat" %PLATFORM% && echo found VS 2o15 && set PLATFORM_VER=v140 && set VS_VERSION=2015 && goto:exitsucc
|
|
||||||
|
|
||||||
if defined VS130COMNTOOLS echo call ghostbusters... found lost VS version
|
|
||||||
|
|
||||||
set "CMAKE_GENERATOR=Visual Studio 12 2013 Win64"
|
|
||||||
if defined VS120COMNTOOLS call "%VS120COMNTOOLS%..\..\VC\vcvarsall.bat" %PLATFORM% && echo found VS 2o13 && set PLATFORM_VER=v120 && set VS_VERSION=2013 && goto:exitsucc
|
|
||||||
|
|
||||||
set "CMAKE_GENERATOR=Visual Studio 11 2012 Win64"
|
|
||||||
if defined VS110COMNTOOLS call "%VS110COMNTOOLS%..\..\VC\vcvarsall.bat" %PLATFORM% && echo found VS 2o12 && set PLATFORM_VER=v110 && set VS_VERSION=2012 && goto:exitsucc
|
|
||||||
|
|
||||||
set "CMAKE_GENERATOR=Visual Studio 10 2010 Win64"
|
|
||||||
if defined VS100COMNTOOLS call "%VS100COMNTOOLS%..\..\VC\vcvarsall.bat" %PLATFORM% && echo found VS 2o1o && set PLATFORM_VER=v100 && set VS_VERSION=2010 && goto:exitsucc
|
|
||||||
|
|
||||||
goto:exitsucc
|
|
|
@ -1,18 +0,0 @@
|
||||||
rem @echo off
|
|
||||||
setlocal
|
|
||||||
call build_env_win32.bat
|
|
||||||
|
|
||||||
set BUILD_CONFIG=release
|
|
||||||
set PLATFORM_CONFIG=x64
|
|
||||||
set MAX_CPU_CONFIG=4
|
|
||||||
|
|
||||||
set CONFIG_PARAMETER=/p:Configuration="%BUILD_CONFIG%"
|
|
||||||
set PLATFORM_PARAMETER=/p:Platform="%PLATFORM_CONFIG%"
|
|
||||||
set CPU_PARAMETER=/maxcpucount:%MAX_CPU_CONFIG%
|
|
||||||
set PLATFORM_TOOLSET=/p:PlatformToolset=%PLATFORM_VER%
|
|
||||||
|
|
||||||
pushd ..\..\
|
|
||||||
cmake CMakeLists.txt -G "Visual Studio 15 2017 Win64"
|
|
||||||
%MSBUILD% assimp.sln %CONFIG_PARAMETER% %PLATFORM_PARAMETER% %CPU_PARAMETER% %PLATFORM_TOOLSET%
|
|
||||||
popd
|
|
||||||
endlocal
|
|
Loading…
Reference in New Issue