Merge branch 'master' into issue-2339
commit
8dacbf49f9
|
@ -17,6 +17,7 @@ CMakeLists.txt.user
|
||||||
|
|
||||||
# Generated
|
# Generated
|
||||||
assimp.pc
|
assimp.pc
|
||||||
|
assimp.aps
|
||||||
revision.h
|
revision.h
|
||||||
contrib/zlib/zconf.h
|
contrib/zlib/zconf.h
|
||||||
contrib/zlib/zlib.pc
|
contrib/zlib/zlib.pc
|
||||||
|
|
43
Build.md
43
Build.md
|
@ -1,32 +1,32 @@
|
||||||
# Install CMake
|
# Build Instructions
|
||||||
|
## Install CMake
|
||||||
Asset-Importer-Lib can be build for a lot of different platforms. We are using cmake to generate the build environment for these via cmake. So you have to make sure that you have a working cmake-installation on your system. You can download it at https://cmake.org/ or for linux install it via
|
Asset-Importer-Lib can be build for a lot of different platforms. We are using cmake to generate the build environment for these via cmake. So you have to make sure that you have a working cmake-installation on your system. You can download it at https://cmake.org/ or for linux install it via
|
||||||
```
|
```bash
|
||||||
sudo apt-get install cmake
|
sudo apt-get install cmake
|
||||||
```
|
```
|
||||||
|
|
||||||
# Get the source
|
## Get the source
|
||||||
Make sure you have a working git-installation. Open a command prompt and clone the Asset-Importer-Lib via:
|
Make sure you have a working git-installation. Open a command prompt and clone the Asset-Importer-Lib via:
|
||||||
```
|
```bash
|
||||||
git clone https://github.com/assimp/assimp.git
|
git clone https://github.com/assimp/assimp.git
|
||||||
```
|
```
|
||||||
|
|
||||||
# Build instructions for Windows with Visual-Studio
|
## Build instructions for Windows with Visual-Studio
|
||||||
|
|
||||||
First you have to install Visual-Studio on your windows-system. You can get the Community-Version for free here: https://visualstudio.microsoft.com/de/downloads/
|
First you have to install Visual-Studio on your windows-system. You can get the Community-Version for free here: https://visualstudio.microsoft.com/de/downloads/
|
||||||
To generate the build environment for your IDE open a command prompt, navigate to your repo and type:
|
To generate the build environment for your IDE open a command prompt, navigate to your repo and type:
|
||||||
```
|
```bash
|
||||||
> cmake CMakeLists.txt
|
cmake CMakeLists.txt
|
||||||
```
|
```
|
||||||
This will generate the project files for the visual studio. All dependencies used to build Asset-IMporter-Lib shall be part of the repo. If you want to use you own zlib.installation this is possible as well. Check the options for it.
|
This will generate the project files for the visual studio. All dependencies used to build Asset-IMporter-Lib shall be part of the repo. If you want to use you own zlib.installation this is possible as well. Check the options for it.
|
||||||
|
|
||||||
# Build instructions for Windows with UWP
|
## Build instructions for Windows with UWP
|
||||||
See https://stackoverflow.com/questions/40803170/cmake-uwp-using-cmake-to-build-universal-windows-app
|
See <https://stackoverflow.com/questions/40803170/cmake-uwp-using-cmake-to-build-universal-windows-app>
|
||||||
|
|
||||||
|
## Build instructions for Linux / Unix
|
||||||
# Build instrcutions for Linux / Unix
|
|
||||||
Open a terminal and got to your repository. You can generate the makefiles and build the library via:
|
Open a terminal and got to your repository. You can generate the makefiles and build the library via:
|
||||||
|
|
||||||
```
|
```bash
|
||||||
cmake CMakeLists.txt
|
cmake CMakeLists.txt
|
||||||
make -j4
|
make -j4
|
||||||
```
|
```
|
||||||
|
@ -34,7 +34,23 @@ The option -j descripes the number of parallel processes for the build. In this
|
||||||
|
|
||||||
If you want to use a IDE for linux you can try QTCreator for instance.
|
If you want to use a IDE for linux you can try QTCreator for instance.
|
||||||
|
|
||||||
# CMake build options
|
## Build instructions for MinGW
|
||||||
|
Older versions of MinGW's compiler (e.g. 5.1.0) do not support the -mbig_obj flag
|
||||||
|
required to compile some of assimp's files, especially for debug builds.
|
||||||
|
Version 7.3.0 of g++-mingw-w64 & gcc-mingw-w64 appears to work.
|
||||||
|
|
||||||
|
Please see [CMake Cross Compiling](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html#cross-compiling) for general information on CMake Toolchains.
|
||||||
|
|
||||||
|
Some users have had success building assimp using MinGW on Linux using [polly](https://github.com/ruslo/polly/).
|
||||||
|
|
||||||
|
The following toolchain, which is not maintained by assimp, seems to work on Linux: [linux-mingw-w64-gnuxx11.cmake](https://github.com/ruslo/polly/blob/master/linux-mingw-w64-gnuxx11.cmake)
|
||||||
|
|
||||||
|
The following toolchain may or may not be helpful for building assimp using MinGW on Windows (untested):
|
||||||
|
[mingw-cxx17.cmake](https://github.com/ruslo/polly/blob/master/mingw-cxx17.cmake)
|
||||||
|
|
||||||
|
Besides the toolchain, compilation should be the same as for Linux / Unix.
|
||||||
|
|
||||||
|
## CMake build options
|
||||||
The cmake-build-environment provides options to configure the build. The following options can be used:
|
The cmake-build-environment provides options to configure the build. The following options can be used:
|
||||||
- **BUILD_SHARED_LIBS ( default ON )**: Generation of shared libs ( dll for windows, so for Linux ). Set this to OFF to get a static lib.
|
- **BUILD_SHARED_LIBS ( default ON )**: Generation of shared libs ( dll for windows, so for Linux ). Set this to OFF to get a static lib.
|
||||||
- **BUILD_FRAMEWORK ( default OFF, MacOnly)**: Build package as Mac OS X Framework bundle
|
- **BUILD_FRAMEWORK ( default OFF, MacOnly)**: Build package as Mac OS X Framework bundle
|
||||||
|
@ -55,4 +71,3 @@ The cmake-build-environment provides options to configure the build. The followi
|
||||||
- **INJECT_DEBUG_POSTFIX( default ON )**: Inject debug postfix in .a/.so lib names
|
- **INJECT_DEBUG_POSTFIX( default ON )**: Inject debug postfix in .a/.so lib names
|
||||||
- **IGNORE_GIT_HASH ( default OFF )**: Don't call git to get the hash.
|
- **IGNORE_GIT_HASH ( default OFF )**: Don't call git to get the hash.
|
||||||
- **ASSIMP_INSTALL_PDB ( default ON )**: Install MSVC debug files.
|
- **ASSIMP_INSTALL_PDB ( default ON )**: Install MSVC debug files.
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,7 @@ OPTION ( BUILD_DOCS
|
||||||
OFF
|
OFF
|
||||||
)
|
)
|
||||||
OPTION( INJECT_DEBUG_POSTFIX
|
OPTION( INJECT_DEBUG_POSTFIX
|
||||||
"Inject debug postfix in .a/.so lib names"
|
"Inject debug postfix in .a/.so/.dll lib names"
|
||||||
ON
|
ON
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -127,12 +127,15 @@ if (WIN32)
|
||||||
ADD_DEFINITIONS( -DWIN32_LEAN_AND_MEAN )
|
ADD_DEFINITIONS( -DWIN32_LEAN_AND_MEAN )
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
IF(MSVC)
|
IF(MSVC)
|
||||||
OPTION( ASSIMP_INSTALL_PDB
|
OPTION( ASSIMP_INSTALL_PDB
|
||||||
"Install MSVC debug files."
|
"Install MSVC debug files."
|
||||||
ON
|
ON
|
||||||
)
|
)
|
||||||
|
IF(NOT (MSVC_VERSION LESS 1900))
|
||||||
|
# Multibyte character set is deprecated since at least MSVC2015 (possibly earlier)
|
||||||
|
ADD_DEFINITIONS( -DUNICODE -D_UNICODE )
|
||||||
|
ENDIF()
|
||||||
ENDIF(MSVC)
|
ENDIF(MSVC)
|
||||||
|
|
||||||
IF (BUILD_FRAMEWORK)
|
IF (BUILD_FRAMEWORK)
|
||||||
|
@ -234,6 +237,11 @@ ELSEIF ( "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" )
|
||||||
SET(CMAKE_CXX_FLAGS "-g -fvisibility=hidden -fPIC -fno-strict-aliasing -Wall -Wno-long-long -std=c++11 ${CMAKE_CXX_FLAGS}" )
|
SET(CMAKE_CXX_FLAGS "-g -fvisibility=hidden -fPIC -fno-strict-aliasing -Wall -Wno-long-long -std=c++11 ${CMAKE_CXX_FLAGS}" )
|
||||||
SET(CMAKE_C_FLAGS "-fPIC -fno-strict-aliasing ${CMAKE_C_FLAGS}")
|
SET(CMAKE_C_FLAGS "-fPIC -fno-strict-aliasing ${CMAKE_C_FLAGS}")
|
||||||
ELSEIF( CMAKE_COMPILER_IS_MINGW )
|
ELSEIF( CMAKE_COMPILER_IS_MINGW )
|
||||||
|
IF (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)
|
||||||
|
message(FATAL_ERROR "MinGW is too old to be supported. Please update MinGW and try again.")
|
||||||
|
ELSEIF(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.3)
|
||||||
|
message(WARNING "MinGW is old, if you experience errors, update MinGW.")
|
||||||
|
ENDIF()
|
||||||
SET( CMAKE_CXX_FLAGS "-fvisibility=hidden -fno-strict-aliasing -Wall -Wno-long-long -std=c++11 -Wa,-mbig-obj ${CMAKE_CXX_FLAGS}" )
|
SET( CMAKE_CXX_FLAGS "-fvisibility=hidden -fno-strict-aliasing -Wall -Wno-long-long -std=c++11 -Wa,-mbig-obj ${CMAKE_CXX_FLAGS}" )
|
||||||
SET(CMAKE_C_FLAGS "-fPIC -fno-strict-aliasing ${CMAKE_C_FLAGS} ")
|
SET(CMAKE_C_FLAGS "-fPIC -fno-strict-aliasing ${CMAKE_C_FLAGS} ")
|
||||||
ADD_DEFINITIONS( -U__STRICT_ANSI__ )
|
ADD_DEFINITIONS( -U__STRICT_ANSI__ )
|
||||||
|
@ -301,7 +309,9 @@ SET( ASSIMP_INCLUDE_INSTALL_DIR "include" CACHE STRING
|
||||||
SET( ASSIMP_BIN_INSTALL_DIR "bin" CACHE STRING
|
SET( ASSIMP_BIN_INSTALL_DIR "bin" CACHE STRING
|
||||||
"Path the tool executables are installed to." )
|
"Path the tool executables are installed to." )
|
||||||
|
|
||||||
IF (CMAKE_BUILD_TYPE STREQUAL "Debug")
|
get_cmake_property(is_multi_config GENERATOR_IS_MULTI_CONFIG)
|
||||||
|
|
||||||
|
IF (is_multi_config OR (CMAKE_BUILD_TYPE STREQUAL "Debug"))
|
||||||
SET(CMAKE_DEBUG_POSTFIX "d" CACHE STRING "Debug Postfix for lib, samples and tools")
|
SET(CMAKE_DEBUG_POSTFIX "d" CACHE STRING "Debug Postfix for lib, samples and tools")
|
||||||
ELSE()
|
ELSE()
|
||||||
SET(CMAKE_DEBUG_POSTFIX "" CACHE STRING "Debug Postfix for lib, samples and tools")
|
SET(CMAKE_DEBUG_POSTFIX "" CACHE STRING "Debug Postfix for lib, samples and tools")
|
||||||
|
@ -543,18 +553,22 @@ if(WIN32)
|
||||||
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
if (CMAKE_SIZEOF_VOID_P EQUAL 8)
|
||||||
SET(BIN_DIR "${PROJECT_SOURCE_DIR}/bin64/")
|
SET(BIN_DIR "${PROJECT_SOURCE_DIR}/bin64/")
|
||||||
SET(LIB_DIR "${PROJECT_SOURCE_DIR}/lib64/")
|
SET(LIB_DIR "${PROJECT_SOURCE_DIR}/lib64/")
|
||||||
elseif()
|
else()
|
||||||
SET(BIN_DIR "${PROJECT_SOURCE_DIR}/bin32/")
|
SET(BIN_DIR "${PROJECT_SOURCE_DIR}/bin32/")
|
||||||
SET(LIB_DIR "${PROJECT_SOURCE_DIR}/lib32/")
|
SET(LIB_DIR "${PROJECT_SOURCE_DIR}/lib32/")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
IF(MSVC12)
|
IF(MSVC_TOOLSET_VERSION)
|
||||||
SET(ASSIMP_MSVC_VERSION "vc120")
|
set(MSVC_PREFIX "vc${MSVC_TOOLSET_VERSION}")
|
||||||
ELSEIF(MSVC14)
|
ELSE()
|
||||||
SET(ASSIMP_MSVC_VERSION "vc140")
|
IF(MSVC12)
|
||||||
ELSEIF(MSVC15)
|
SET(ASSIMP_MSVC_VERSION "vc120")
|
||||||
SET(ASSIMP_MSVC_VERSION "vc141")
|
ELSEIF(MSVC14)
|
||||||
ENDIF(MSVC12)
|
SET(ASSIMP_MSVC_VERSION "vc140")
|
||||||
|
ELSEIF(MSVC15)
|
||||||
|
SET(ASSIMP_MSVC_VERSION "vc141")
|
||||||
|
ENDIF(MSVC12)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
IF(MSVC12 OR MSVC14 OR MSVC15 )
|
IF(MSVC12 OR MSVC14 OR MSVC15 )
|
||||||
ADD_CUSTOM_TARGET(UpdateAssimpLibsDebugSymbolsAndDLLs COMMENT "Copying Assimp Libraries ..." VERBATIM)
|
ADD_CUSTOM_TARGET(UpdateAssimpLibsDebugSymbolsAndDLLs COMMENT "Copying Assimp Libraries ..." VERBATIM)
|
||||||
|
|
|
@ -17,6 +17,8 @@ A library to import and export various 3d-model-formats including scene-post-pro
|
||||||
|
|
||||||
APIs are provided for C and C++. There are various bindings to other languages (C#, Java, Python, Delphi, D). Assimp also runs on Android and iOS.
|
APIs are provided for C and C++. There are various bindings to other languages (C#, Java, Python, Delphi, D). Assimp also runs on Android and iOS.
|
||||||
|
|
||||||
|
[Check the latest doc](https://assimp-docs.readthedocs.io/en/latest/).
|
||||||
|
|
||||||
Additionally, assimp features various __mesh post processing tools__: normals and tangent space generation, triangulation, vertex cache locality optimization, removal of degenerate primitives and duplicate vertices, sorting by primitive type, merging of redundant materials and many more.
|
Additionally, assimp features various __mesh post processing tools__: normals and tangent space generation, triangulation, vertex cache locality optimization, removal of degenerate primitives and duplicate vertices, sorting by primitive type, merging of redundant materials and many more.
|
||||||
|
|
||||||
This is the development repo containing the latest features and bugfixes. For productive use though, we recommend one of the stable releases available from [Github Assimp Releases](https://github.com/assimp/assimp/releases).
|
This is the development repo containing the latest features and bugfixes. For productive use though, we recommend one of the stable releases available from [Github Assimp Releases](https://github.com/assimp/assimp/releases).
|
||||||
|
|
18
appveyor.yml
18
appveyor.yml
|
@ -15,8 +15,8 @@ matrix:
|
||||||
|
|
||||||
image:
|
image:
|
||||||
- Visual Studio 2013
|
- Visual Studio 2013
|
||||||
- Previous Visual Studio 2015
|
- Visual Studio 2015
|
||||||
- Previous Visual Studio 2017
|
- Visual Studio 2017
|
||||||
|
|
||||||
platform:
|
platform:
|
||||||
- Win32
|
- Win32
|
||||||
|
@ -28,10 +28,10 @@ install:
|
||||||
- set PATH=C:\Ruby24-x64\bin;%PATH%
|
- set PATH=C:\Ruby24-x64\bin;%PATH%
|
||||||
- set CMAKE_DEFINES -DASSIMP_WERROR=ON
|
- set CMAKE_DEFINES -DASSIMP_WERROR=ON
|
||||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2013" set CMAKE_GENERATOR_NAME=Visual Studio 12 2013
|
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2013" set CMAKE_GENERATOR_NAME=Visual Studio 12 2013
|
||||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Previous Visual Studio 2015" set CMAKE_GENERATOR_NAME=Visual Studio 14 2015
|
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2015" set CMAKE_GENERATOR_NAME=Visual Studio 14 2015
|
||||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Previous Visual Studio 2017" set CMAKE_GENERATOR_NAME=Visual Studio 15 2017
|
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" set CMAKE_GENERATOR_NAME=Visual Studio 15 2017
|
||||||
- if "%platform%"=="x64" set CMAKE_GENERATOR_NAME=%CMAKE_GENERATOR_NAME% Win64
|
- if "%platform%"=="x64" set CMAKE_GENERATOR_NAME=%CMAKE_GENERATOR_NAME% Win64
|
||||||
- cmake %CMAKE_DEFINES% -G "%CMAKE_GENERATOR_NAME%"
|
- cmake %CMAKE_DEFINES% -G "%CMAKE_GENERATOR_NAME%" .
|
||||||
- set PATH=%PATH%;"C:\\Program Files (x86)\\Inno Setup 5"
|
- set PATH=%PATH%;"C:\\Program Files (x86)\\Inno Setup 5"
|
||||||
- ps: Invoke-WebRequest -Uri https://download.microsoft.com/download/5/7/b/57b2947c-7221-4f33-b35e-2fc78cb10df4/vc_redist.x64.exe -OutFile .\packaging\windows-innosetup\vc_redist.x64.exe
|
- ps: Invoke-WebRequest -Uri https://download.microsoft.com/download/5/7/b/57b2947c-7221-4f33-b35e-2fc78cb10df4/vc_redist.x64.exe -OutFile .\packaging\windows-innosetup\vc_redist.x64.exe
|
||||||
- ps: Invoke-WebRequest -Uri https://download.microsoft.com/download/1/d/8/1d8137db-b5bb-4925-8c5d-927424a2e4de/vc_redist.x86.exe -OutFile .\packaging\windows-innosetup\vc_redist.x86.exe
|
- ps: Invoke-WebRequest -Uri https://download.microsoft.com/download/1/d/8/1d8137db-b5bb-4925-8c5d-927424a2e4de/vc_redist.x86.exe -OutFile .\packaging\windows-innosetup\vc_redist.x86.exe
|
||||||
|
@ -53,7 +53,13 @@ build:
|
||||||
project: Assimp.sln
|
project: Assimp.sln
|
||||||
|
|
||||||
after_build:
|
after_build:
|
||||||
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" iscc packaging\windows-innosetup\script.iss
|
- if "%APPVEYOR_BUILD_WORKER_IMAGE%"=="Visual Studio 2017" (
|
||||||
|
if "%platform%"=="x64" (
|
||||||
|
iscc packaging\windows-innosetup\script_x64.iss
|
||||||
|
) else (
|
||||||
|
iscc packaging\windows-innosetup\script_x86.iss
|
||||||
|
)
|
||||||
|
)
|
||||||
- 7z a assimp.7z bin\%CONFIGURATION%\* lib\%CONFIGURATION%\*
|
- 7z a assimp.7z bin\%CONFIGURATION%\* lib\%CONFIGURATION%\*
|
||||||
|
|
||||||
test_script:
|
test_script:
|
||||||
|
|
|
@ -68,7 +68,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
using namespace Assimp;
|
using namespace Assimp;
|
||||||
|
|
||||||
static const aiImporterDesc desc = {
|
static const aiImporterDesc desc = {
|
||||||
".assbin Importer",
|
"Assimp Binary Importer",
|
||||||
"Gargaj / Conspiracy",
|
"Gargaj / Conspiracy",
|
||||||
"",
|
"",
|
||||||
"",
|
"",
|
||||||
|
|
|
@ -145,6 +145,10 @@ SET( Core_SRCS
|
||||||
Assimp.cpp
|
Assimp.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
|
IF(MSVC)
|
||||||
|
list(APPEND Core_SRCS "res/assimp.rc")
|
||||||
|
ENDIF(MSVC)
|
||||||
|
|
||||||
SET( Logging_SRCS
|
SET( Logging_SRCS
|
||||||
${HEADER_PATH}/DefaultLogger.hpp
|
${HEADER_PATH}/DefaultLogger.hpp
|
||||||
${HEADER_PATH}/LogStream.hpp
|
${HEADER_PATH}/LogStream.hpp
|
||||||
|
@ -800,6 +804,18 @@ ADD_ASSIMP_IMPORTER( MMD
|
||||||
MMDVmdParser.h
|
MMDVmdParser.h
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Workaround for issue #2406 - force problematic large file to be optimized to prevent string table overflow error
|
||||||
|
# Used -Os instead of -O2 as previous issues had mentioned, since -Os is roughly speaking -O2, excluding any
|
||||||
|
# optimizations that take up extra space. Given that the issue is a string table overflowing, -Os seemed appropriate
|
||||||
|
# Also, I'm not positive if both link & compile flags are needed, but this hopefully ensures that the issue should not
|
||||||
|
# recur for edge cases such as static builds.
|
||||||
|
if ((CMAKE_COMPILER_IS_MINGW) AND (CMAKE_BUILD_TYPE MATCHES Debug))
|
||||||
|
message("-- Applying MinGW StepFileGen1.cpp Debug Workaround")
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(Importer/StepFile/StepFileGen1.cpp PROPERTIES COMPILE_FLAGS -Os )
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(Importer/StepFile/StepFileGen1.cpp PROPERTIES LINK_FLAGS -Os )
|
||||||
|
SET_SOURCE_FILES_PROPERTIES(Importer/StepFile/StepFileGen1.cpp PROPERTIES STATIC_LIBRARY_FLAGS -Os )
|
||||||
|
endif()
|
||||||
|
|
||||||
ADD_ASSIMP_IMPORTER( STEP
|
ADD_ASSIMP_IMPORTER( STEP
|
||||||
STEPFile.h
|
STEPFile.h
|
||||||
Importer/StepFile/StepFileImporter.h
|
Importer/StepFile/StepFileImporter.h
|
||||||
|
@ -1033,6 +1049,10 @@ ENDIF (ASSIMP_BUILD_NONFREE_C4D_IMPORTER)
|
||||||
|
|
||||||
if( MSVC )
|
if( MSVC )
|
||||||
# in order to prevent DLL hell, each of the DLLs have to be suffixed with the major version and msvc prefix
|
# in order to prevent DLL hell, each of the DLLs have to be suffixed with the major version and msvc prefix
|
||||||
|
# CMake 3.12 added a variable for this
|
||||||
|
if(MSVC_TOOLSET_VERSION)
|
||||||
|
set(MSVC_PREFIX "vc${MSVC_TOOLSET_VERSION}")
|
||||||
|
else()
|
||||||
if( MSVC70 OR MSVC71 )
|
if( MSVC70 OR MSVC71 )
|
||||||
set(MSVC_PREFIX "vc70")
|
set(MSVC_PREFIX "vc70")
|
||||||
elseif( MSVC80 )
|
elseif( MSVC80 )
|
||||||
|
@ -1047,9 +1067,12 @@ if( MSVC )
|
||||||
set(MSVC_PREFIX "vc120")
|
set(MSVC_PREFIX "vc120")
|
||||||
elseif( MSVC14 )
|
elseif( MSVC14 )
|
||||||
set(MSVC_PREFIX "vc140")
|
set(MSVC_PREFIX "vc140")
|
||||||
|
elseif( MSVC15 )
|
||||||
|
set(MSVC_PREFIX "vc141")
|
||||||
else()
|
else()
|
||||||
set(MSVC_PREFIX "vc150")
|
set(MSVC_PREFIX "vc150")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
set(LIBRARY_SUFFIX "${ASSIMP_LIBRARY_SUFFIX}-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library")
|
set(LIBRARY_SUFFIX "${ASSIMP_LIBRARY_SUFFIX}-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|
|
@ -238,7 +238,11 @@ void ColladaExporter::WriteHeader()
|
||||||
mOutput << startstr << "<contributor>" << endstr;
|
mOutput << startstr << "<contributor>" << endstr;
|
||||||
PushTag();
|
PushTag();
|
||||||
|
|
||||||
aiMetadata* meta = mScene->mRootNode->mMetaData;
|
// If no Scene metadata, use root node metadata
|
||||||
|
aiMetadata* meta = mScene->mMetaData;
|
||||||
|
if (!meta)
|
||||||
|
meta = mScene->mRootNode->mMetaData;
|
||||||
|
|
||||||
aiString value;
|
aiString value;
|
||||||
if (!meta || !meta->Get("Author", value))
|
if (!meta || !meta->Get("Author", value))
|
||||||
mOutput << startstr << "<author>" << "Assimp" << "</author>" << endstr;
|
mOutput << startstr << "<author>" << "Assimp" << "</author>" << endstr;
|
||||||
|
@ -250,13 +254,39 @@ void ColladaExporter::WriteHeader()
|
||||||
else
|
else
|
||||||
mOutput << startstr << "<authoring_tool>" << XMLEscape(value.C_Str()) << "</authoring_tool>" << endstr;
|
mOutput << startstr << "<authoring_tool>" << XMLEscape(value.C_Str()) << "</authoring_tool>" << endstr;
|
||||||
|
|
||||||
//mOutput << startstr << "<author>" << mScene->author.C_Str() << "</author>" << endstr;
|
if (meta)
|
||||||
//mOutput << startstr << "<authoring_tool>" << mScene->authoringTool.C_Str() << "</authoring_tool>" << endstr;
|
{
|
||||||
|
if (meta->Get("Comments", value))
|
||||||
|
mOutput << startstr << "<comments>" << XMLEscape(value.C_Str()) << "</comments>" << endstr;
|
||||||
|
if (meta->Get("Copyright", value))
|
||||||
|
mOutput << startstr << "<copyright>" << XMLEscape(value.C_Str()) << "</copyright>" << endstr;
|
||||||
|
if (meta->Get("SourceData", value))
|
||||||
|
mOutput << startstr << "<source_data>" << XMLEscape(value.C_Str()) << "</source_data>" << endstr;
|
||||||
|
}
|
||||||
|
|
||||||
PopTag();
|
PopTag();
|
||||||
mOutput << startstr << "</contributor>" << endstr;
|
mOutput << startstr << "</contributor>" << endstr;
|
||||||
mOutput << startstr << "<created>" << date_str << "</created>" << endstr;
|
|
||||||
|
if (!meta || !meta->Get("Created", value))
|
||||||
|
mOutput << startstr << "<created>" << date_str << "</created>" << endstr;
|
||||||
|
else
|
||||||
|
mOutput << startstr << "<created>" << XMLEscape(value.C_Str()) << "</created>" << endstr;
|
||||||
|
|
||||||
|
// Modified date is always the date saved
|
||||||
mOutput << startstr << "<modified>" << date_str << "</modified>" << endstr;
|
mOutput << startstr << "<modified>" << date_str << "</modified>" << endstr;
|
||||||
|
|
||||||
|
if (meta)
|
||||||
|
{
|
||||||
|
if (meta->Get("Keywords", value))
|
||||||
|
mOutput << startstr << "<keywords>" << XMLEscape(value.C_Str()) << "</keywords>" << endstr;
|
||||||
|
if (meta->Get("Revision", value))
|
||||||
|
mOutput << startstr << "<revision>" << XMLEscape(value.C_Str()) << "</revision>" << endstr;
|
||||||
|
if (meta->Get("Subject", value))
|
||||||
|
mOutput << startstr << "<subject>" << XMLEscape(value.C_Str()) << "</subject>" << endstr;
|
||||||
|
if (meta->Get("Title", value))
|
||||||
|
mOutput << startstr << "<title>" << XMLEscape(value.C_Str()) << "</title>" << endstr;
|
||||||
|
}
|
||||||
|
|
||||||
mOutput << startstr << "<unit name=\"meter\" meter=\"" << scale << "\" />" << endstr;
|
mOutput << startstr << "<unit name=\"meter\" meter=\"" << scale << "\" />" << endstr;
|
||||||
mOutput << startstr << "<up_axis>" << up_axis << "</up_axis>" << endstr;
|
mOutput << startstr << "<up_axis>" << up_axis << "</up_axis>" << endstr;
|
||||||
PopTag();
|
PopTag();
|
||||||
|
|
|
@ -207,6 +207,17 @@ void ColladaLoader::InternReadFile( const std::string& pFile, aiScene* pScene, I
|
||||||
0, 0, 0, 1);
|
0, 0, 0, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Store scene metadata
|
||||||
|
if (!parser.mAssetMetaData.empty()) {
|
||||||
|
const size_t numMeta(parser.mAssetMetaData.size());
|
||||||
|
pScene->mMetaData = aiMetadata::Alloc(static_cast<unsigned int>(numMeta));
|
||||||
|
size_t i = 0;
|
||||||
|
for (auto it = parser.mAssetMetaData.cbegin(); it != parser.mAssetMetaData.cend(); ++it, ++i)
|
||||||
|
{
|
||||||
|
pScene->mMetaData->Set(static_cast<unsigned int>(i), (*it).first, (*it).second);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// store all meshes
|
// store all meshes
|
||||||
StoreSceneMeshes( pScene);
|
StoreSceneMeshes( pScene);
|
||||||
|
|
||||||
|
|
|
@ -264,14 +264,19 @@ void ColladaParser::ReadAssetInfo()
|
||||||
|
|
||||||
// check element end
|
// check element end
|
||||||
TestClosing( "up_axis");
|
TestClosing( "up_axis");
|
||||||
} else
|
}
|
||||||
|
else if(IsElement("contributor"))
|
||||||
{
|
{
|
||||||
SkipElement();
|
ReadContributorInfo();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
ReadMetaDataItem(mAssetMetaData);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if( mReader->getNodeType() == irr::io::EXN_ELEMENT_END)
|
else if( mReader->getNodeType() == irr::io::EXN_ELEMENT_END)
|
||||||
{
|
{
|
||||||
if( strcmp( mReader->getNodeName(), "asset") != 0)
|
if (strcmp( mReader->getNodeName(), "asset") != 0)
|
||||||
ThrowException( "Expected end of <asset> element.");
|
ThrowException( "Expected end of <asset> element.");
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
@ -279,6 +284,75 @@ void ColladaParser::ReadAssetInfo()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Reads the contributor info
|
||||||
|
void ColladaParser::ReadContributorInfo()
|
||||||
|
{
|
||||||
|
if (mReader->isEmptyElement())
|
||||||
|
return;
|
||||||
|
|
||||||
|
while (mReader->read())
|
||||||
|
{
|
||||||
|
if (mReader->getNodeType() == irr::io::EXN_ELEMENT)
|
||||||
|
{
|
||||||
|
ReadMetaDataItem(mAssetMetaData);
|
||||||
|
}
|
||||||
|
else if (mReader->getNodeType() == irr::io::EXN_ELEMENT_END)
|
||||||
|
{
|
||||||
|
if (strcmp(mReader->getNodeName(), "contributor") != 0)
|
||||||
|
ThrowException("Expected end of <contributor> element.");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Reads a single string metadata item
|
||||||
|
void ColladaParser::ReadMetaDataItem(StringMetaData &metadata)
|
||||||
|
{
|
||||||
|
// Metadata such as created, keywords, subject etc
|
||||||
|
const char* key_char = mReader->getNodeName();
|
||||||
|
if (key_char != nullptr)
|
||||||
|
{
|
||||||
|
const std::string key_str(key_char);
|
||||||
|
const char* value_char = TestTextContent();
|
||||||
|
if (value_char != nullptr)
|
||||||
|
{
|
||||||
|
std::string camel_key_str = key_str;
|
||||||
|
ToCamelCase(camel_key_str);
|
||||||
|
aiString aistr;
|
||||||
|
aistr.Set(value_char);
|
||||||
|
metadata.emplace(camel_key_str, aistr);
|
||||||
|
TestClosing(key_str.c_str());
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SkipElement();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
SkipElement();
|
||||||
|
}
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
// Convert underscore_seperated to CamelCase: "authoring_tool" becomes "AuthoringTool"
|
||||||
|
void ColladaParser::ToCamelCase(std::string &text)
|
||||||
|
{
|
||||||
|
if (text.empty())
|
||||||
|
return;
|
||||||
|
// Capitalise first character
|
||||||
|
text[0] = ToUpper(text[0]);
|
||||||
|
for (auto it = text.begin(); it != text.end(); /*iterated below*/)
|
||||||
|
{
|
||||||
|
if ((*it) == '_')
|
||||||
|
{
|
||||||
|
it = text.erase(it);
|
||||||
|
if (it != text.end())
|
||||||
|
(*it) = ToUpper(*it);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
++it;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
// Reads the animation clips
|
// Reads the animation clips
|
||||||
void ColladaParser::ReadAnimationClipLibrary()
|
void ColladaParser::ReadAnimationClipLibrary()
|
||||||
|
|
|
@ -66,6 +66,9 @@ namespace Assimp
|
||||||
friend class ColladaLoader;
|
friend class ColladaLoader;
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
/** Map for generic metadata as aiString */
|
||||||
|
typedef std::map<std::string, aiString> StringMetaData;
|
||||||
|
|
||||||
/** Constructor from XML file */
|
/** Constructor from XML file */
|
||||||
ColladaParser( IOSystem* pIOHandler, const std::string& pFile);
|
ColladaParser( IOSystem* pIOHandler, const std::string& pFile);
|
||||||
|
|
||||||
|
@ -81,6 +84,15 @@ namespace Assimp
|
||||||
/** Reads asset information such as coordinate system information and legal blah */
|
/** Reads asset information such as coordinate system information and legal blah */
|
||||||
void ReadAssetInfo();
|
void ReadAssetInfo();
|
||||||
|
|
||||||
|
/** Reads contributor information such as author and legal blah */
|
||||||
|
void ReadContributorInfo();
|
||||||
|
|
||||||
|
/** Reads generic metadata into provided map */
|
||||||
|
void ReadMetaDataItem(StringMetaData &metadata);
|
||||||
|
|
||||||
|
/** Convert underscore_seperated to CamelCase "authoring_tool" becomes "AuthoringTool" */
|
||||||
|
static void ToCamelCase(std::string &text);
|
||||||
|
|
||||||
/** Reads the animation library */
|
/** Reads the animation library */
|
||||||
void ReadAnimationLibrary();
|
void ReadAnimationLibrary();
|
||||||
|
|
||||||
|
@ -343,6 +355,9 @@ namespace Assimp
|
||||||
/** Which is the up vector */
|
/** Which is the up vector */
|
||||||
enum { UP_X, UP_Y, UP_Z } mUpDirection;
|
enum { UP_X, UP_Y, UP_Z } mUpDirection;
|
||||||
|
|
||||||
|
/** Asset metadata (global for scene) */
|
||||||
|
StringMetaData mAssetMetaData;
|
||||||
|
|
||||||
/** Collada file format version */
|
/** Collada file format version */
|
||||||
Collada::FormatVersion mFormat;
|
Collada::FormatVersion mFormat;
|
||||||
};
|
};
|
||||||
|
|
|
@ -288,7 +288,7 @@ void Exporter::SetProgressHandler(ProgressHandler* pHandler) {
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
const aiExportDataBlob* Exporter::ExportToBlob( const aiScene* pScene, const char* pFormatId,
|
const aiExportDataBlob* Exporter::ExportToBlob( const aiScene* pScene, const char* pFormatId,
|
||||||
unsigned int, const ExportProperties* /*pProperties*/ ) {
|
unsigned int pPreprocessing, const ExportProperties* pProperties) {
|
||||||
if (pimpl->blob) {
|
if (pimpl->blob) {
|
||||||
delete pimpl->blob;
|
delete pimpl->blob;
|
||||||
pimpl->blob = nullptr;
|
pimpl->blob = nullptr;
|
||||||
|
@ -298,7 +298,7 @@ const aiExportDataBlob* Exporter::ExportToBlob( const aiScene* pScene, const cha
|
||||||
BlobIOSystem* blobio = new BlobIOSystem();
|
BlobIOSystem* blobio = new BlobIOSystem();
|
||||||
pimpl->mIOSystem = std::shared_ptr<IOSystem>( blobio );
|
pimpl->mIOSystem = std::shared_ptr<IOSystem>( blobio );
|
||||||
|
|
||||||
if (AI_SUCCESS != Export(pScene,pFormatId,blobio->GetMagicFileName())) {
|
if (AI_SUCCESS != Export(pScene,pFormatId,blobio->GetMagicFileName(), pPreprocessing, pProperties)) {
|
||||||
pimpl->mIOSystem = old;
|
pimpl->mIOSystem = old;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,105 +0,0 @@
|
||||||
### USE OF THIS MAKEFILE IS NOT RECOMMENDED.
|
|
||||||
### It is no longer maintained. Use CMAKE instead.
|
|
||||||
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
# Makefile for Open Asset Import Library (MinGW32-make)
|
|
||||||
# aramis_acg@users.sourceforge.net
|
|
||||||
# - just a quick'n'dirty one, could be buggy ...
|
|
||||||
#
|
|
||||||
# Usage: mingw32-make -f makefile.mingw <target> <macros>
|
|
||||||
|
|
||||||
# TARGETS:
|
|
||||||
# all Build a shared so from the whole library
|
|
||||||
# clean Cleanup object files, prepare for rebuild
|
|
||||||
# static Build a static library (*.a)
|
|
||||||
|
|
||||||
# MACROS: (make clean before you change one)
|
|
||||||
# NOBOOST=1 Build against boost workaround
|
|
||||||
# SINGLETHREADED=1 Build single-threaded library
|
|
||||||
# DEBUG=1 Build debug build of library
|
|
||||||
#
|
|
||||||
# ---------------------------------------------------------------------------
|
|
||||||
|
|
||||||
# C++ object files
|
|
||||||
OBJECTS := $(patsubst %.cpp,%.o, $(wildcard *.cpp))
|
|
||||||
OBJECTS += $(patsubst %.cpp,%.o, $(wildcard extra/*.cpp))
|
|
||||||
OBJECTS += $(patsubst %.cpp,%.o, $(wildcard ./../contrib/irrXML/*.cpp))
|
|
||||||
|
|
||||||
# C object files
|
|
||||||
OBJECTSC := $(patsubst %.c,%.oc, $(wildcard ./../contrib/zlib/*.c))
|
|
||||||
OBJECTSC += $(patsubst %.c,%.oc, $(wildcard ./../contrib/ConvertUTF/*.c))
|
|
||||||
OBJECTSC += $(patsubst %.c,%.oc, $(wildcard ./../contrib/unzip/*.c))
|
|
||||||
|
|
||||||
# Include flags for gcc
|
|
||||||
INCLUDEFLAGS =
|
|
||||||
|
|
||||||
# Preprocessor defines for gcc
|
|
||||||
DEFINEFLAGS =
|
|
||||||
|
|
||||||
# Suffix for the output binary, represents build type
|
|
||||||
NAMESUFFIX =
|
|
||||||
|
|
||||||
# Output path for binaries
|
|
||||||
BINPATH = ../bin/mingw/
|
|
||||||
|
|
||||||
# GCC compiler flags
|
|
||||||
CPPFLAGS=-Wall
|
|
||||||
|
|
||||||
# Setup environment for noboost build
|
|
||||||
ifeq ($(NOBOOST),1)
|
|
||||||
SINGLETHREADED = 1
|
|
||||||
INCLUDEFLAGS += -I./BoostWorkaround/
|
|
||||||
DEFINEFLAGS += -DASSIMP_BUILD_BOOST_WORKAROUND
|
|
||||||
# NAMESUFFIX += -noboost
|
|
||||||
else
|
|
||||||
# adjust this manually if your boost is stored elsewhere
|
|
||||||
INCLUDEFLAGS += -I"C:/Program Files/boost/boost_1_38"
|
|
||||||
#INCLUDEFLAGS += -I"$(BOOST_DIR)"
|
|
||||||
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Setup environment for st build
|
|
||||||
ifeq ($(SINGLETHREADED),1)
|
|
||||||
DEFINEFLAGS += -DASSIMP_BUILD_SINGLETHREADED
|
|
||||||
# NAMESUFFIX += -st
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Setup environment for debug build
|
|
||||||
ifeq ($(DEBUG),1)
|
|
||||||
DEFINEFLAGS += -D_DEBUG -DDEBUG
|
|
||||||
CPPFLAGS += -g
|
|
||||||
# NAMESUFFIX += -debug
|
|
||||||
else
|
|
||||||
CPPFLAGS += -O2 -s
|
|
||||||
DEFINEFLAGS += -DNDEBUG -D_NDEBUG
|
|
||||||
endif
|
|
||||||
|
|
||||||
# Output name of shared library
|
|
||||||
SHARED_TARGET = $(BINPATH)/libassimp$(NAMESUFFIX).so
|
|
||||||
|
|
||||||
# Output name of static library
|
|
||||||
STATIC = $(BINPATH)/libassimp$(NAMESUFFIX).a
|
|
||||||
|
|
||||||
# target: all
|
|
||||||
# usage : build a shared library (*.so)
|
|
||||||
all: $(SHARED_TARGET)
|
|
||||||
|
|
||||||
$(SHARED_TARGET): $(OBJECTS) $(OBJECTSC)
|
|
||||||
gcc -o $@ $(OBJECTS) $(OBJECTSC) -shared -lstdc++
|
|
||||||
%.o:%.cpp
|
|
||||||
$(CXX) -c $(CPPFLAGS) $? -o $@ $(INCLUDEFLAGS) $(DEFINEFLAGS)
|
|
||||||
%.oc:%.c
|
|
||||||
$(CXX) -x c -c -ansi $(CPPFLAGS) $? -o $@
|
|
||||||
|
|
||||||
# target: clean
|
|
||||||
# usage : cleanup all object files, prepare for a rebuild
|
|
||||||
.PHONY: clean
|
|
||||||
clean:
|
|
||||||
-del *.o .\..\contrib\irrXML\*.o .\..\contrib\zlib\*.oc .\..\contrib\unzip\*.oc .\..\contrib\ConvertUTF\*.oc
|
|
||||||
|
|
||||||
# target: static
|
|
||||||
# usage : build a static library (*.a)
|
|
||||||
static: $(STATIC)
|
|
||||||
$(STATIC): $(OBJECTS) $(OBJECTSC)
|
|
||||||
ar rcs $@ $(OBJECTS) $(OBJECTSC)
|
|
||||||
|
|
|
@ -31,8 +31,8 @@ LANGUAGE LANG_GERMAN, SUBLANG_GERMAN
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,1,SVNRevision, 0
|
FILEVERSION VER_FILEVERSION
|
||||||
PRODUCTVERSION 1,1,SVNRevision,0
|
PRODUCTVERSION VER_FILEVERSION
|
||||||
FILEFLAGSMASK 0x17L
|
FILEFLAGSMASK 0x17L
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -50,12 +50,12 @@ BEGIN
|
||||||
VALUE "Comments", "Licensed under a 3-clause BSD license"
|
VALUE "Comments", "Licensed under a 3-clause BSD license"
|
||||||
VALUE "CompanyName", "assimp team"
|
VALUE "CompanyName", "assimp team"
|
||||||
VALUE "FileDescription", "Open Asset Import Library"
|
VALUE "FileDescription", "Open Asset Import Library"
|
||||||
VALUE "FileVersion", 1,1,SVNRevision,0
|
VALUE "FileVersion", VER_FILEVERSION
|
||||||
VALUE "InternalName", "assimp "
|
VALUE "InternalName", "assimp "
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2006-2010"
|
VALUE "LegalCopyright", "Copyright (C) 2006-2010"
|
||||||
VALUE "OriginalFilename", "assimpNN.dll"
|
VALUE "OriginalFilename", "assimpNN.dll"
|
||||||
VALUE "ProductName", "Open Asset Import Library"
|
VALUE "ProductName", "Open Asset Import Library"
|
||||||
VALUE "ProductVersion", 1,1,SVNRevision,0
|
VALUE "ProductVersion", VER_FILEVERSION_STR
|
||||||
,0
|
,0
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
|
@ -190,7 +190,7 @@ public:
|
||||||
* @note Use aiCopyScene() to get a modifiable copy of a previously
|
* @note Use aiCopyScene() to get a modifiable copy of a previously
|
||||||
* imported scene. */
|
* imported scene. */
|
||||||
const aiExportDataBlob* ExportToBlob(const aiScene* pScene, const char* pFormatId,
|
const aiExportDataBlob* ExportToBlob(const aiScene* pScene, const char* pFormatId,
|
||||||
unsigned int pPreprocessing = 0u, const ExportProperties* = nullptr);
|
unsigned int pPreprocessing = 0u, const ExportProperties* pProperties = nullptr);
|
||||||
const aiExportDataBlob* ExportToBlob( const aiScene* pScene, const std::string& pFormatId,
|
const aiExportDataBlob* ExportToBlob( const aiScene* pScene, const std::string& pFormatId,
|
||||||
unsigned int pPreprocessing = 0u, const ExportProperties* pProperties = nullptr);
|
unsigned int pPreprocessing = 0u, const ExportProperties* pProperties = nullptr);
|
||||||
|
|
||||||
|
|
|
@ -85,6 +85,8 @@ AI_FORCE_INLINE TReal aiColor4t<TReal>::operator[](unsigned int i) const {
|
||||||
return g;
|
return g;
|
||||||
case 2:
|
case 2:
|
||||||
return b;
|
return b;
|
||||||
|
case 3:
|
||||||
|
return a;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -100,6 +102,8 @@ AI_FORCE_INLINE TReal& aiColor4t<TReal>::operator[](unsigned int i) {
|
||||||
return g;
|
return g;
|
||||||
case 2:
|
case 2:
|
||||||
return b;
|
return b;
|
||||||
|
case 3:
|
||||||
|
return a;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,103 +0,0 @@
|
||||||
; Setup script for use with Inno Setup.
|
|
||||||
|
|
||||||
[Setup]
|
|
||||||
AppName=Open Asset Import Library - SDK
|
|
||||||
AppVerName=Open Asset Import Library - SDK (v4.1.0)
|
|
||||||
DefaultDirName={pf}\Assimp
|
|
||||||
DefaultGroupName=Assimp
|
|
||||||
UninstallDisplayIcon={app}\bin\x86\assimp.exe
|
|
||||||
OutputDir=out
|
|
||||||
AppCopyright=Assimp Development Team
|
|
||||||
SetupIconFile=..\..\tools\shared\assimp_tools_icon.ico
|
|
||||||
WizardImageFile=compiler:WizModernImage-IS.BMP
|
|
||||||
WizardSmallImageFile=compiler:WizModernSmallImage-IS.BMP
|
|
||||||
LicenseFile=License.rtf
|
|
||||||
OutputBaseFileName=assimp-sdk-4.1.0-setup
|
|
||||||
VersionInfoVersion=4.1.0.0
|
|
||||||
VersionInfoTextVersion=4.1.0
|
|
||||||
VersionInfoCompany=Assimp Development Team
|
|
||||||
ArchitecturesInstallIn64BitMode=x64
|
|
||||||
|
|
||||||
[Types]
|
|
||||||
Name: "full"; Description: "Full installation"
|
|
||||||
Name: "compact"; Description: "Compact installation, no test models or language bindings"
|
|
||||||
Name: "custom"; Description: "Custom installation"; Flags: iscustom
|
|
||||||
|
|
||||||
[Components]
|
|
||||||
Name: "main"; Description: "Main Files (32 and 64 Bit)"; Types: full compact custom; Flags: fixed
|
|
||||||
Name: "tools"; Description: "Asset Viewer & Command Line Tools (32 and 64 Bit)"; Types: full compact
|
|
||||||
Name: "help"; Description: "Help Files"; Types: full compact
|
|
||||||
Name: "samples"; Description: "Samples"; Types: full
|
|
||||||
Name: "test"; Description: "Test Models (BSD-licensed)"; Types: full
|
|
||||||
Name: "test_nonbsd"; Description: "Test Models (other (free) licenses)"; Types: full
|
|
||||||
;Name: "pyassimp"; Description: "Python Bindings"; Types: full
|
|
||||||
;Name: "dassimp"; Description: "D Bindings"; Types: full
|
|
||||||
;Name: "assimp_net"; Description: "C#/.NET Bindings"; Types: full
|
|
||||||
|
|
||||||
[Run]
|
|
||||||
;Filename: "{app}\stub\vc_redist.x86.exe"; Parameters: "/qb"; StatusMsg: "Installing VS2017 redistributable package (32 Bit)"; Check: not IsWin64
|
|
||||||
Filename: "{app}\stub\vc_redist.x64.exe"; Parameters: "/qb"; StatusMsg: "Installing VS2017 redistributable package (64 Bit)"; Check: IsWin64
|
|
||||||
|
|
||||||
[Files]
|
|
||||||
Source: "readme_installer.txt"; DestDir: "{app}"; Flags: isreadme
|
|
||||||
|
|
||||||
; Installer stub
|
|
||||||
;Source: "vc_redist.x86.exe"; DestDir: "{app}\stub\"; Check: not IsWin64
|
|
||||||
Source: "vc_redist.x64.exe"; DestDir: "{app}\stub\"; Check: IsWin64
|
|
||||||
|
|
||||||
; Common stuff
|
|
||||||
Source: "..\..\CREDITS"; DestDir: "{app}"
|
|
||||||
Source: "..\..\LICENSE"; DestDir: "{app}"
|
|
||||||
Source: "..\..\README"; DestDir: "{app}"
|
|
||||||
Source: "WEB"; DestDir: "{app}"
|
|
||||||
|
|
||||||
Source: "..\..\scripts\*"; DestDir: "{app}\scripts"; Flags: recursesubdirs
|
|
||||||
|
|
||||||
; x86 binaries
|
|
||||||
;Source: "..\..\bin\release\x86\assimp-vc140-mt.dll"; DestDir: "{app}\bin\x86"
|
|
||||||
;Source: "..\..\bin\release\x86\assimp_viewer.exe"; DestDir: "{app}\bin\x86"; Components: tools
|
|
||||||
;Source: "C:\Windows\SysWOW64\D3DCompiler_42.dll"; DestDir: "{app}\bin\x86"; Components: tools
|
|
||||||
;Source: "C:\Windows\SysWOW64\D3DX9_42.dll"; DestDir: "{app}\bin\x86"; Components: tools
|
|
||||||
;Source: "..\..\bin\release\x86\assimp.exe"; DestDir: "{app}\bin\x86"; Components: tools
|
|
||||||
|
|
||||||
; x64 binaries
|
|
||||||
Source: "..\..\bin\release\assimp-vc140-mt.dll"; DestDir: "{app}\bin\x64"
|
|
||||||
Source: "..\..\bin\release\assimp_viewer.exe"; DestDir: "{app}\bin\x64"; Components: tools
|
|
||||||
Source: "C:\Windows\SysWOW64\D3DCompiler_42.dll"; DestDir: "{app}\bin\x64"; DestName: "D3DCompiler_42.dll"; Components: tools
|
|
||||||
Source: "C:\Windows\SysWOW64\D3DX9_42.dll"; DestDir: "{app}\bin\x64"; DestName: "D3DX9_42.dll"; Components: tools
|
|
||||||
Source: "..\..\bin\release\assimp.exe"; DestDir: "{app}\bin\x64"; Components: tools
|
|
||||||
|
|
||||||
; Documentation
|
|
||||||
;Source: "..\..\doc\AssimpDoc_Html\AssimpDoc.chm"; DestDir: "{app}\doc"; Components: help
|
|
||||||
;Source: "..\..\doc\AssimpCmdDoc_Html\AssimpCmdDoc.chm"; DestDir: "{app}\doc"; Components: help
|
|
||||||
;Source: "..\..\doc\datastructure.xml"; DestDir: "{app}\doc"; Components: help
|
|
||||||
|
|
||||||
; Import libraries
|
|
||||||
;Source: "..\..\lib\release\x86\assimp.lib"; DestDir: "{app}\lib\x86"
|
|
||||||
Source: "..\..\lib\release\assimp-vc140-mt.lib"; DestDir: "{app}\lib\x64"
|
|
||||||
|
|
||||||
; Samples
|
|
||||||
Source: "..\..\samples\*"; DestDir: "{app}\samples"; Flags: recursesubdirs; Components: samples
|
|
||||||
|
|
||||||
; Include files
|
|
||||||
Source: "..\..\include\*"; DestDir: "{app}\include"; Flags: recursesubdirs
|
|
||||||
|
|
||||||
; dAssimp
|
|
||||||
;Source: "..\..\port\dAssimp\*"; DestDir: "{app}\port\D"; Flags: recursesubdirs; Components: dassimp
|
|
||||||
|
|
||||||
; Assimp.NET
|
|
||||||
;Source: "..\..\port\Assimp.NET\*"; DestDir: "{app}\port\C#"; Flags: recursesubdirs; Components: assimp_net
|
|
||||||
|
|
||||||
; PyAssimp
|
|
||||||
;Source: "..\..\port\PyAssimp\*"; DestDir: "{app}\port\Python"; Excludes: "*.pyc,*.dll"; Flags: recursesubdirs; Components: pyassimp
|
|
||||||
|
|
||||||
; Test repository
|
|
||||||
;Source: "..\..\test\models\*"; DestDir: "{app}\test\models"; Flags: recursesubdirs; Components: test
|
|
||||||
;Source: "..\..\test\regression\*"; DestDir: "{app}\test\regression"; Flags: recursesubdirs; Components: test
|
|
||||||
;Source: "..\..\test\models-nonbsd\*"; DestDir: "{app}\test\models-nonbsd"; Flags: recursesubdirs; Components: test_nonbsd
|
|
||||||
|
|
||||||
[Icons]
|
|
||||||
Name: "{group}\Assimp Manual"; Filename: "{app}\doc\AssimpDoc.chm" ; Components: help
|
|
||||||
Name: "{group}\Assimp Command Line Manual"; Filename: "{app}\doc\AssimpCmdDoc.chm"; Components: help
|
|
||||||
Name: "{group}\AssimpView"; Filename: "{app}\bin\x64\assimp_view.exe"; Components: tools; Check: IsWin64
|
|
||||||
Name: "{group}\AssimpView"; Filename: "{app}\bin\x86\assimp_view.exe"; Components: tools; Check: not IsWin64
|
|
|
@ -0,0 +1,71 @@
|
||||||
|
; Setup script for use with Inno Setup.
|
||||||
|
|
||||||
|
[Setup]
|
||||||
|
AppName=Open Asset Import Library - SDK
|
||||||
|
AppVerName=Open Asset Import Library - SDK (v4.1.0)
|
||||||
|
DefaultDirName={pf}\Assimp
|
||||||
|
DefaultGroupName=Assimp
|
||||||
|
UninstallDisplayIcon={app}\bin\x86\assimp.exe
|
||||||
|
OutputDir=out
|
||||||
|
AppCopyright=Assimp Development Team
|
||||||
|
SetupIconFile=..\..\tools\shared\assimp_tools_icon.ico
|
||||||
|
WizardImageFile=compiler:WizModernImage-IS.BMP
|
||||||
|
WizardSmallImageFile=compiler:WizModernSmallImage-IS.BMP
|
||||||
|
LicenseFile=License.rtf
|
||||||
|
OutputBaseFileName=assimp-sdk-4.1.0-setup
|
||||||
|
VersionInfoVersion=4.1.0.0
|
||||||
|
VersionInfoTextVersion=4.1.0
|
||||||
|
VersionInfoCompany=Assimp Development Team
|
||||||
|
ArchitecturesInstallIn64BitMode=x64
|
||||||
|
|
||||||
|
[Types]
|
||||||
|
Name: "full"; Description: "Full installation"
|
||||||
|
Name: "compact"; Description: "Compact installation, no test models or language bindings"
|
||||||
|
Name: "custom"; Description: "Custom installation"; Flags: iscustom
|
||||||
|
|
||||||
|
[Components]
|
||||||
|
Name: "main"; Description: "Main Files ( 64 Bit )"; Types: full compact custom; Flags: fixed
|
||||||
|
Name: "tools"; Description: "Asset Viewer & Command Line Tools (32 and 64 Bit)"; Types: full compact
|
||||||
|
Name: "help"; Description: "Help Files"; Types: full compact
|
||||||
|
Name: "samples"; Description: "Samples"; Types: full
|
||||||
|
Name: "test"; Description: "Test Models (BSD-licensed)"; Types: full
|
||||||
|
Name: "test_nonbsd"; Description: "Test Models (other (free) licenses)"; Types: full
|
||||||
|
|
||||||
|
[Run]
|
||||||
|
Filename: "{app}\stub\vc_redist.x64.exe"; Parameters: "/qb"; StatusMsg: "Installing VS2017 redistributable package (64 Bit)"; Check: IsWin64
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
Source: "readme_installer.txt"; DestDir: "{app}"; Flags: isreadme
|
||||||
|
|
||||||
|
; Installer stub
|
||||||
|
Source: "vc_redist.x64.exe"; DestDir: "{app}\stub\"; Check: IsWin64
|
||||||
|
|
||||||
|
; Common stuff
|
||||||
|
Source: "..\..\CREDITS"; DestDir: "{app}"
|
||||||
|
Source: "..\..\LICENSE"; DestDir: "{app}"
|
||||||
|
Source: "..\..\README"; DestDir: "{app}"
|
||||||
|
Source: "WEB"; DestDir: "{app}"
|
||||||
|
|
||||||
|
Source: "..\..\scripts\*"; DestDir: "{app}\scripts"; Flags: recursesubdirs
|
||||||
|
|
||||||
|
; x64 binaries
|
||||||
|
Source: "..\..\bin\release\assimp-vc141-mt.dll"; DestDir: "{app}\bin\x64"
|
||||||
|
Source: "..\..\bin\release\assimp_viewer.exe"; DestDir: "{app}\bin\x64"; Components: tools
|
||||||
|
Source: "C:\Windows\SysWOW64\D3DCompiler_42.dll"; DestDir: "{app}\bin\x64"; DestName: "D3DCompiler_42.dll"; Components: tools
|
||||||
|
Source: "C:\Windows\SysWOW64\D3DX9_42.dll"; DestDir: "{app}\bin\x64"; DestName: "D3DX9_42.dll"; Components: tools
|
||||||
|
Source: "..\..\bin\release\assimp.exe"; DestDir: "{app}\bin\x64"; Components: tools
|
||||||
|
|
||||||
|
; Import libraries
|
||||||
|
Source: "..\..\lib\release\assimp-vc141-mt.lib"; DestDir: "{app}\lib\x64"
|
||||||
|
|
||||||
|
; Samples
|
||||||
|
Source: "..\..\samples\*"; DestDir: "{app}\samples"; Flags: recursesubdirs; Components: samples
|
||||||
|
|
||||||
|
; Include files
|
||||||
|
Source: "..\..\include\*"; DestDir: "{app}\include"; Flags: recursesubdirs
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
; Name: "{group}\Assimp Manual"; Filename: "{app}\doc\AssimpDoc.chm" ; Components: help
|
||||||
|
; Name: "{group}\Assimp Command Line Manual"; Filename: "{app}\doc\AssimpCmdDoc.chm"; Components: help
|
||||||
|
; Name: "{group}\AssimpView"; Filename: "{app}\bin\x64\assimp_view.exe"; Components: tools; Check: IsWin64
|
||||||
|
; Name: "{group}\AssimpView"; Filename: "{app}\bin\x86\assimp_view.exe"; Components: tools; Check: not IsWin64
|
|
@ -0,0 +1,72 @@
|
||||||
|
; Setup script for use with Inno Setup.
|
||||||
|
|
||||||
|
[Setup]
|
||||||
|
AppName=Open Asset Import Library - SDK
|
||||||
|
AppVerName=Open Asset Import Library - SDK (v4.1.0)
|
||||||
|
DefaultDirName={pf}\Assimp
|
||||||
|
DefaultGroupName=Assimp
|
||||||
|
UninstallDisplayIcon={app}\bin\x86\assimp.exe
|
||||||
|
OutputDir=out
|
||||||
|
AppCopyright=Assimp Development Team
|
||||||
|
SetupIconFile=..\..\tools\shared\assimp_tools_icon.ico
|
||||||
|
WizardImageFile=compiler:WizModernImage-IS.BMP
|
||||||
|
WizardSmallImageFile=compiler:WizModernSmallImage-IS.BMP
|
||||||
|
LicenseFile=License.rtf
|
||||||
|
OutputBaseFileName=assimp-sdk-4.1.0-setup
|
||||||
|
VersionInfoVersion=4.1.0.0
|
||||||
|
VersionInfoTextVersion=4.1.0
|
||||||
|
VersionInfoCompany=Assimp Development Team
|
||||||
|
ArchitecturesInstallIn64BitMode=x64
|
||||||
|
|
||||||
|
[Types]
|
||||||
|
Name: "full"; Description: "Full installation"
|
||||||
|
Name: "compact"; Description: "Compact installation, no test models or language bindings"
|
||||||
|
Name: "custom"; Description: "Custom installation"; Flags: iscustom
|
||||||
|
|
||||||
|
[Components]
|
||||||
|
Name: "main"; Description: "Main Files (32 and 64 Bit)"; Types: full compact custom; Flags: fixed
|
||||||
|
Name: "tools"; Description: "Asset Viewer & Command Line Tools (32 and 64 Bit)"; Types: full compact
|
||||||
|
Name: "help"; Description: "Help Files"; Types: full compact
|
||||||
|
Name: "samples"; Description: "Samples"; Types: full
|
||||||
|
Name: "test"; Description: "Test Models (BSD-licensed)"; Types: full
|
||||||
|
Name: "test_nonbsd"; Description: "Test Models (other (free) licenses)"; Types: full
|
||||||
|
|
||||||
|
[Run]
|
||||||
|
Filename: "{app}\stub\vc_redist.x86.exe"; Parameters: "/qb"; StatusMsg: "Installing VS2017 redistributable package (32 Bit)"; Check: not IsWin64
|
||||||
|
|
||||||
|
[Files]
|
||||||
|
Source: "readme_installer.txt"; DestDir: "{app}"; Flags: isreadme
|
||||||
|
|
||||||
|
; Installer stub
|
||||||
|
Source: "vc_redist.x86.exe"; DestDir: "{app}\stub\"; Check: not IsWin64
|
||||||
|
|
||||||
|
; Common stuff
|
||||||
|
Source: "..\..\CREDITS"; DestDir: "{app}"
|
||||||
|
Source: "..\..\LICENSE"; DestDir: "{app}"
|
||||||
|
Source: "..\..\README"; DestDir: "{app}"
|
||||||
|
Source: "WEB"; DestDir: "{app}"
|
||||||
|
|
||||||
|
Source: "..\..\scripts\*"; DestDir: "{app}\scripts"; Flags: recursesubdirs
|
||||||
|
|
||||||
|
; x86 binaries
|
||||||
|
Source: "..\..\bin\release\assimp-vc141-mt.dll"; DestDir: "{app}\bin\x86"
|
||||||
|
Source: "..\..\bin\release\assimp_viewer.exe"; DestDir: "{app}\bin\x86"; Components: tools
|
||||||
|
Source: "C:\Windows\SysWOW64\D3DCompiler_42.dll"; DestDir: "{app}\bin\x86"; Components: tools
|
||||||
|
Source: "C:\Windows\SysWOW64\D3DX9_42.dll"; DestDir: "{app}\bin\x86"; Components: tools
|
||||||
|
Source: "..\..\bin\release\assimp.exe"; DestDir: "{app}\bin\x86"; Components: tools
|
||||||
|
|
||||||
|
|
||||||
|
; Import libraries
|
||||||
|
Source: "..\..\lib\release\assimp-vc141-mt.lib"; DestDir: "{app}\lib\x86"
|
||||||
|
|
||||||
|
; Samples
|
||||||
|
Source: "..\..\samples\*"; DestDir: "{app}\samples"; Flags: recursesubdirs; Components: samples
|
||||||
|
|
||||||
|
; Include files
|
||||||
|
Source: "..\..\include\*"; DestDir: "{app}\include"; Flags: recursesubdirs
|
||||||
|
|
||||||
|
[Icons]
|
||||||
|
; Name: "{group}\Assimp Manual"; Filename: "{app}\doc\AssimpDoc.chm" ; Components: help
|
||||||
|
; Name: "{group}\Assimp Command Line Manual"; Filename: "{app}\doc\AssimpCmdDoc.chm"; Components: help
|
||||||
|
; Name: "{group}\AssimpView"; Filename: "{app}\bin\x64\assimp_view.exe"; Components: tools; Check: IsWin64
|
||||||
|
; Name: "{group}\AssimpView"; Filename: "{app}\bin\x86\assimp_view.exe"; Components: tools; Check: not IsWin64
|
|
@ -1,6 +1,6 @@
|
||||||
Build Asset Importer Lib for Android
|
Build Asset Importer Lib for Android
|
||||||
====================================
|
====================================
|
||||||
This module provides a fascade for the io-stream-access to files behind the android-asset-management within
|
This module provides a facade for the io-stream-access to files behind the android-asset-management within
|
||||||
an Android-native application.
|
an Android-native application.
|
||||||
- It is built as a static library
|
- It is built as a static library
|
||||||
- It requires Android NDK with android API > 9 support.
|
- It requires Android NDK with android API > 9 support.
|
||||||
|
|
|
@ -4,4 +4,15 @@
|
||||||
#define GitVersion 0x@GIT_COMMIT_HASH@
|
#define GitVersion 0x@GIT_COMMIT_HASH@
|
||||||
#define GitBranch "@GIT_BRANCH@"
|
#define GitBranch "@GIT_BRANCH@"
|
||||||
|
|
||||||
|
#define VER_MAJOR @ASSIMP_VERSION_MAJOR@
|
||||||
|
#define VER_MINOR @ASSIMP_VERSION_MINOR@
|
||||||
|
#define VER_PATCH @ASSIMP_VERSION_PATCH@
|
||||||
|
#define VER_BUILD @ASSIMP_PACKAGE_VERSION@
|
||||||
|
|
||||||
|
#define STR_HELP(x) #x
|
||||||
|
#define STR(x) STR_HELP(x)
|
||||||
|
|
||||||
|
#define VER_FILEVERSION VER_MAJOR,VER_MINOR,VER_PATCH,VER_BUILD
|
||||||
|
#define VER_FILEVERSION_STR STR(VER_MAJOR) "." STR(VER_MINOR) "." STR(VER_PATCH) "." STR(VER_BUILD)
|
||||||
|
|
||||||
#endif // ASSIMP_REVISION_H_INC
|
#endif // ASSIMP_REVISION_H_INC
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
set(PROJECT_VERSION "")
|
set(PROJECT_VERSION "")
|
||||||
project(assimp_qt_viewer)
|
project(assimp_qt_viewer)
|
||||||
|
|
||||||
cmake_minimum_required(VERSION 3.0)
|
# Qt5 requires cmake 3.1 or newer
|
||||||
|
cmake_minimum_required(VERSION 3.1)
|
||||||
|
|
||||||
FIND_PACKAGE(OpenGL QUIET)
|
FIND_PACKAGE(OpenGL QUIET)
|
||||||
|
|
||||||
|
|
|
@ -88,6 +88,8 @@ SET_PROPERTY(TARGET assimp_viewer PROPERTY DEBUG_POSTFIX ${CMAKE_DEBUG_POSTFIX})
|
||||||
IF ( MSVC )
|
IF ( MSVC )
|
||||||
ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
|
ADD_DEFINITIONS( -D_SCL_SECURE_NO_WARNINGS )
|
||||||
ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
|
ADD_DEFINITIONS( -D_CRT_SECURE_NO_WARNINGS )
|
||||||
|
# assimp_viewer is ANSI (MBCS) throughout
|
||||||
|
REMOVE_DEFINITIONS( -DUNICODE -D_UNICODE )
|
||||||
ENDIF ( MSVC )
|
ENDIF ( MSVC )
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue