Merge branch 'master' of https://github.com/assimp/assimp
commit
776d8e339b
|
@ -1,11 +1,11 @@
|
||||||
set(PACKAGE_VERSION "@ASSIMP_SOVERSION@")
|
set(ASSIMP_PACKAGE_VERSION "@ASSIMP_SOVERSION@")
|
||||||
|
|
||||||
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
||||||
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
|
if("${ASSIMP_PACKAGE_VERSION}" VERSION_LESS "${ASSIMP_PACKAGE_FIND_VERSION}")
|
||||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
set(ASSIMP_PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||||
else()
|
else()
|
||||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
set(ASSIMP_PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||||
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
|
if ("${ASSIMP_PACKAGE_VERSION}" VERSION_EQUAL "${ASSIMP_PACKAGE_FIND_VERSION}")
|
||||||
set(PACKAGE_VERSION_EXACT TRUE)
|
set(ASSIMP_PACKAGE_VERSION_EXACT TRUE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
32
CHANGES
32
CHANGES
|
@ -3,6 +3,36 @@ CHANGELOG
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
3.0 (2012-07-07)
|
||||||
|
|
||||||
|
FEATURES:
|
||||||
|
- new export interface similar to the import API.
|
||||||
|
- Supported export formats: Collada, OBJ, PLY and STL
|
||||||
|
- added new import formats: XGL/ZGL, M3 (experimental)
|
||||||
|
- new postprocessing steps: Debone
|
||||||
|
- vastly improved IFC (Industry Foundation Classes) support
|
||||||
|
- introduced API to query importer meta information (such as supported
|
||||||
|
format versions, full name, maintainer info).
|
||||||
|
- reworked Ogre XML import
|
||||||
|
- C-API now supports per-import properties
|
||||||
|
|
||||||
|
FIXES/HOUSEKEEPING:
|
||||||
|
|
||||||
|
- hundreds of bugfixes in all parts of the library
|
||||||
|
- unified naming and cleanup of public headers
|
||||||
|
- improved CMake build system
|
||||||
|
- templatized math library
|
||||||
|
- reduce dependency on boost.thread, only remaining spot
|
||||||
|
is synchronization for the C logging API
|
||||||
|
|
||||||
|
API COMPATIBILITY:
|
||||||
|
- renamed headers, export interface, C API properties and meta data
|
||||||
|
prevent compatibility with code written for 2.0, but in
|
||||||
|
most cases these can be easily resolved
|
||||||
|
- Note: 3.0 is not binary compatible with 2.0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
2.0 (2010-11-21)
|
2.0 (2010-11-21)
|
||||||
|
|
||||||
|
@ -44,8 +74,6 @@ API CHANGES:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1.1 (2010-04-17)
|
1.1 (2010-04-17)
|
||||||
This is the list of relevant changes from the 1.0 (r412) release to 1.1 (r700).
|
This is the list of relevant changes from the 1.0 (r412) release to 1.1 (r700).
|
||||||
|
|
||||||
|
|
115
CMakeLists.txt
115
CMakeLists.txt
|
@ -2,20 +2,21 @@ cmake_minimum_required( VERSION 2.6 )
|
||||||
PROJECT( Assimp )
|
PROJECT( Assimp )
|
||||||
|
|
||||||
# Define here the needed parameters
|
# Define here the needed parameters
|
||||||
set (ASSIMP_SV_REVISION 1260)
|
set (ASSIMP_SV_REVISION 1264)
|
||||||
set (ASSIMP_VERSION_MAJOR 2)
|
set (ASSIMP_VERSION_MAJOR 3)
|
||||||
set (ASSIMP_VERSION_MINOR 0)
|
set (ASSIMP_VERSION_MINOR 0)
|
||||||
set (ASSIMP_VERSION_PATCH ${ASSIMP_SV_REVISION}) # subversion revision?
|
set (ASSIMP_VERSION_PATCH ${ASSIMP_SV_REVISION}) # subversion revision?
|
||||||
set (ASSIMP_VERSION ${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}.${ASSIMP_VERSION_PATCH})
|
set (ASSIMP_VERSION ${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}.${ASSIMP_VERSION_PATCH})
|
||||||
set (ASSIMP_SOVERSION 1251)
|
set (ASSIMP_SOVERSION 3)
|
||||||
SET ( PROJECT_VERSION "${ASSIMP_VERSION}" )
|
SET ( PROJECT_VERSION "${ASSIMP_VERSION}" )
|
||||||
|
|
||||||
set(PACKAGE_VERSION "0" CACHE STRING "the package-specific version used for uploading the sources")
|
set(ASSIMP_PACKAGE_VERSION "0" CACHE STRING "the package-specific version used for uploading the sources")
|
||||||
|
|
||||||
option(OPT_BUILD_PACKAGES "Set to ON to generate CPack configuration files and packaging targets" OFF)
|
option(ASSIMP_OPT_BUILD_PACKAGES "Set to ON to generate CPack configuration files and packaging targets" OFF)
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules")
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules")
|
||||||
set(LIBASSIMP_COMPONENT libassimp${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MAJOR}-r${ASSIMP_SV_REVISION})
|
set(LIBASSIMP_COMPONENT libassimp${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}-r${ASSIMP_SV_REVISION})
|
||||||
set(CPACK_COMPONENTS_ALL assimp-bin ${LIBASSIMP_COMPONENT} assimp-dev)
|
set(LIBASSIMP-DEV_COMPONENT libassimp${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}-r${ASSIMP_SV_REVISION}-dev)
|
||||||
|
set(CPACK_COMPONENTS_ALL assimp-bin ${LIBASSIMP_COMPONENT} ${LIBASSIMP-DEV_COMPONENT} assimp-dev)
|
||||||
|
|
||||||
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
|
||||||
add_definitions(-fPIC) # this is a very important switch and some libraries seem now to have it....
|
add_definitions(-fPIC) # this is a very important switch and some libraries seem now to have it....
|
||||||
|
@ -37,45 +38,45 @@ IF ( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR )
|
||||||
ENDIF ( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR )
|
ENDIF ( CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR )
|
||||||
|
|
||||||
# Cache these to allow the user to override them manually.
|
# Cache these to allow the user to override them manually.
|
||||||
SET( LIB_INSTALL_DIR "lib" CACHE PATH
|
SET( ASSIMP_LIB_INSTALL_DIR "lib" CACHE PATH
|
||||||
"Path the built library files are installed to." )
|
"Path the built library files are installed to." )
|
||||||
SET( INCLUDE_INSTALL_DIR "include" CACHE PATH
|
SET( ASSIMP_INCLUDE_INSTALL_DIR "include" CACHE PATH
|
||||||
"Path the header files are installed to." )
|
"Path the header files are installed to." )
|
||||||
SET( BIN_INSTALL_DIR "bin" CACHE PATH
|
SET( ASSIMP_BIN_INSTALL_DIR "bin" CACHE PATH
|
||||||
"Path the tool executables are installed to." )
|
"Path the tool executables are installed to." )
|
||||||
|
|
||||||
SET(DEBUG_POSTFIX "D" CACHE STRING "Debug Postfitx for lib, samples and tools")
|
SET(ASSIMP_DEBUG_POSTFIX "D" CACHE STRING "Debug Postfitx for lib, samples and tools")
|
||||||
|
|
||||||
|
# Allow the user to build a static library
|
||||||
|
SET ( ASSIMP_BUILD_STATIC_LIB OFF CACHE BOOL
|
||||||
|
"Build a static (.a) version of the library"
|
||||||
|
)
|
||||||
|
|
||||||
# Generate a pkg-config .pc for the Assimp library.
|
# Generate a pkg-config .pc for the Assimp library.
|
||||||
CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/assimp.pc.in" "${PROJECT_BINARY_DIR}/assimp.pc" @ONLY )
|
CONFIGURE_FILE( "${PROJECT_SOURCE_DIR}/assimp.pc.in" "${PROJECT_BINARY_DIR}/assimp.pc" @ONLY )
|
||||||
INSTALL( FILES "${PROJECT_BINARY_DIR}/assimp.pc" DESTINATION ${LIB_INSTALL_DIR}/pkgconfig/ COMPONENT assimp-dev)
|
INSTALL( FILES "${PROJECT_BINARY_DIR}/assimp.pc" DESTINATION ${ASSIMP_LIB_INSTALL_DIR}/pkgconfig/ COMPONENT ${LIBASSIMP-DEV_COMPONENT})
|
||||||
|
|
||||||
# cmake configuration files
|
# cmake configuration files
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/assimp-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/assimp-config.cmake" @ONLY IMMEDIATE)
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/assimp-config.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/assimp-config.cmake" @ONLY IMMEDIATE)
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/assimp-config-version.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/assimp-config-version.cmake" @ONLY IMMEDIATE)
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/assimp-config-version.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/assimp-config-version.cmake" @ONLY IMMEDIATE)
|
||||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/assimp-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/assimp-config-version.cmake" DESTINATION "${LIB_INSTALL_DIR}/cmake/assimp-${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}" COMPONENT assimp-dev)
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/assimp-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/assimp-config-version.cmake" DESTINATION "${ASSIMP_LIB_INSTALL_DIR}/cmake/assimp-${ASSIMP_VERSION_MAJOR}.${ASSIMP_VERSION_MINOR}" COMPONENT ${LIBASSIMP-DEV_COMPONENT})
|
||||||
|
|
||||||
# add make uninstall capability
|
# add make uninstall capability
|
||||||
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY)
|
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake-modules/cmake_uninstall.cmake.in" "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" IMMEDIATE @ONLY)
|
||||||
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
|
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake")
|
||||||
|
|
||||||
# Allow the user to build a static library
|
|
||||||
SET ( BUILD_STATIC_LIB OFF CACHE BOOL
|
|
||||||
"Build a static (.a) version of the library"
|
|
||||||
)
|
|
||||||
|
|
||||||
# Globally enbale Boost resp. the Boost workaround – it is also needed by the
|
# Globally enbale Boost resp. the Boost workaround – it is also needed by the
|
||||||
# tools which include the Assimp headers.
|
# tools which include the Assimp headers.
|
||||||
SET ( ENABLE_BOOST_WORKAROUND OFF CACHE BOOL
|
SET ( ASSIMP_ENABLE_BOOST_WORKAROUND OFF CACHE BOOL
|
||||||
"If a simple implementation of the used Boost functions is used. Slightly reduces functionality, but enables builds without Boost available."
|
"If a simple implementation of the used Boost functions is used. Slightly reduces functionality, but enables builds without Boost available."
|
||||||
)
|
)
|
||||||
IF ( ENABLE_BOOST_WORKAROUND )
|
IF ( ASSIMP_ENABLE_BOOST_WORKAROUND )
|
||||||
INCLUDE_DIRECTORIES( code/BoostWorkaround )
|
INCLUDE_DIRECTORIES( code/BoostWorkaround )
|
||||||
ADD_DEFINITIONS( -DASSIMP_BUILD_BOOST_WORKAROUND )
|
ADD_DEFINITIONS( -DASSIMP_BUILD_BOOST_WORKAROUND )
|
||||||
MESSAGE( STATUS "Building a non-boost version of Assimp." )
|
MESSAGE( STATUS "Building a non-boost version of Assimp." )
|
||||||
ELSE ( ENABLE_BOOST_WORKAROUND )
|
ELSE ( ASSIMP_ENABLE_BOOST_WORKAROUND )
|
||||||
SET( Boost_DETAILED_FAILURE_MSG ON )
|
SET( Boost_DETAILED_FAILURE_MSG ON )
|
||||||
SET( Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48.0" "1.48" "1.49" "1.49.0")
|
SET( Boost_ADDITIONAL_VERSIONS "1.47" "1.47.0" "1.48.0" "1.48" "1.49" "1.49.0" "1.50" "1.50.0" "1.51" "1.51.0")
|
||||||
FIND_PACKAGE( Boost )
|
FIND_PACKAGE( Boost )
|
||||||
IF ( NOT Boost_FOUND )
|
IF ( NOT Boost_FOUND )
|
||||||
MESSAGE( FATAL_ERROR
|
MESSAGE( FATAL_ERROR
|
||||||
|
@ -86,10 +87,10 @@ ELSE ( ENABLE_BOOST_WORKAROUND )
|
||||||
ENDIF ( NOT Boost_FOUND )
|
ENDIF ( NOT Boost_FOUND )
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIRS} )
|
INCLUDE_DIRECTORIES( ${Boost_INCLUDE_DIRS} )
|
||||||
ENDIF ( ENABLE_BOOST_WORKAROUND )
|
ENDIF ( ASSIMP_ENABLE_BOOST_WORKAROUND )
|
||||||
|
|
||||||
|
|
||||||
SET ( NO_EXPORT OFF CACHE BOOL
|
SET ( ASSIMP_NO_EXPORT OFF CACHE BOOL
|
||||||
"Disable Assimp's export functionality."
|
"Disable Assimp's export functionality."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -116,12 +117,16 @@ if (PKG_CONFIG_FOUND)
|
||||||
PKG_CHECK_MODULES(UNZIP minizip)
|
PKG_CHECK_MODULES(UNZIP minizip)
|
||||||
endif (PKG_CONFIG_FOUND)
|
endif (PKG_CONFIG_FOUND)
|
||||||
|
|
||||||
IF ( NO_EXPORT )
|
IF ( ASSIMP_NO_EXPORT )
|
||||||
ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT)
|
ADD_DEFINITIONS( -DASSIMP_BUILD_NO_EXPORT)
|
||||||
MESSAGE( STATUS "Build an import-only version of Assimp." )
|
MESSAGE( STATUS "Build an import-only version of Assimp." )
|
||||||
ENDIF( NO_EXPORT )
|
ENDIF( ASSIMP_NO_EXPORT )
|
||||||
|
|
||||||
|
|
||||||
|
# if(CMAKE_CL_64)
|
||||||
|
# set(ASSIMP_BUILD_ARCHITECTURE "amd64")
|
||||||
|
# else(CMAKE_CL_64)
|
||||||
|
# set(ASSIMP_BUILD_ARCHITECTURE "x86")
|
||||||
|
# endif(CMAKE_CL_64)
|
||||||
SET ( ASSIMP_BUILD_ARCHITECTURE "" CACHE STRING
|
SET ( ASSIMP_BUILD_ARCHITECTURE "" CACHE STRING
|
||||||
"describe the current architecture."
|
"describe the current architecture."
|
||||||
)
|
)
|
||||||
|
@ -130,6 +135,7 @@ ELSE ( ASSIMP_BUILD_ARCHITECTURE STREQUAL "")
|
||||||
ADD_DEFINITIONS ( -D'ASSIMP_BUILD_ARCHITECTURE="${ASSIMP_BUILD_ARCHITECTURE}"' )
|
ADD_DEFINITIONS ( -D'ASSIMP_BUILD_ARCHITECTURE="${ASSIMP_BUILD_ARCHITECTURE}"' )
|
||||||
ENDIF ( ASSIMP_BUILD_ARCHITECTURE STREQUAL "")
|
ENDIF ( ASSIMP_BUILD_ARCHITECTURE STREQUAL "")
|
||||||
|
|
||||||
|
# ${CMAKE_GENERATOR}
|
||||||
SET ( ASSIMP_BUILD_COMPILER "" CACHE STRING
|
SET ( ASSIMP_BUILD_COMPILER "" CACHE STRING
|
||||||
"describe the current compiler."
|
"describe the current compiler."
|
||||||
)
|
)
|
||||||
|
@ -142,46 +148,51 @@ MARK_AS_ADVANCED ( ASSIMP_BUILD_ARCHITECTURE ASSIMP_BUILD_COMPILER )
|
||||||
|
|
||||||
|
|
||||||
ADD_SUBDIRECTORY( code/ )
|
ADD_SUBDIRECTORY( code/ )
|
||||||
SET ( BUILD_ASSIMP_TOOLS ON CACHE BOOL
|
SET ( ASSIMP_BUILD_ASSIMP_TOOLS ON CACHE BOOL
|
||||||
"If the supplementary tools for Assimp are built in addition to the library."
|
"If the supplementary tools for Assimp are built in addition to the library."
|
||||||
)
|
)
|
||||||
IF ( BUILD_ASSIMP_TOOLS )
|
IF ( ASSIMP_BUILD_ASSIMP_TOOLS )
|
||||||
IF ( WIN32 )
|
IF ( WIN32 )
|
||||||
ADD_SUBDIRECTORY( tools/assimp_view/ )
|
ADD_SUBDIRECTORY( tools/assimp_view/ )
|
||||||
ENDIF ( WIN32 )
|
ENDIF ( WIN32 )
|
||||||
ADD_SUBDIRECTORY( tools/assimp_cmd/ )
|
ADD_SUBDIRECTORY( tools/assimp_cmd/ )
|
||||||
ENDIF ( BUILD_ASSIMP_TOOLS )
|
ENDIF ( ASSIMP_BUILD_ASSIMP_TOOLS )
|
||||||
|
|
||||||
SET ( BUILD_ASSIMP_SAMPLES ON CACHE BOOL
|
SET ( ASSIMP_BUILD_SAMPLES OFF CACHE BOOL
|
||||||
"If the official samples are built as well (needs Glut)."
|
"If the official samples are built as well (needs Glut)."
|
||||||
)
|
)
|
||||||
|
|
||||||
IF ( BUILD_ASSIMP_SAMPLES)
|
IF ( ASSIMP_BUILD_SAMPLES)
|
||||||
IF ( WIN32 )
|
IF ( WIN32 )
|
||||||
ADD_SUBDIRECTORY( samples/SimpleTexturedOpenGL/ )
|
ADD_SUBDIRECTORY( samples/SimpleTexturedOpenGL/ )
|
||||||
ENDIF ( WIN32 )
|
ENDIF ( WIN32 )
|
||||||
ADD_SUBDIRECTORY( samples/SimpleOpenGL/ )
|
ADD_SUBDIRECTORY( samples/SimpleOpenGL/ )
|
||||||
ENDIF ( BUILD_ASSIMP_SAMPLES )
|
ENDIF ( ASSIMP_BUILD_SAMPLES )
|
||||||
|
|
||||||
SET ( BUILD_TESTS OFF CACHE BOOL
|
IF ( WIN32 )
|
||||||
|
SET ( ASSIMP_BUILD_TESTS OFF CACHE BOOL
|
||||||
"If the test suite for Assimp is built in addition to the library."
|
"If the test suite for Assimp is built in addition to the library."
|
||||||
)
|
)
|
||||||
IF ( BUILD_TESTS )
|
|
||||||
IF ( WIN32 )
|
|
||||||
ADD_SUBDIRECTORY( test/ )
|
|
||||||
ELSE ( WIN32 )
|
|
||||||
MESSAGE( WARNING "The Assimp test suite is currently Windows-only." )
|
|
||||||
ENDIF ( WIN32 )
|
|
||||||
ENDIF ( BUILD_TESTS )
|
|
||||||
|
|
||||||
if(CMAKE_CPACK_COMMAND AND UNIX AND OPT_BUILD_PACKAGES)
|
IF ( ASSIMP_BUILD_TESTS )
|
||||||
|
ADD_SUBDIRECTORY( test/ )
|
||||||
|
ENDIF ( ASSIMP_BUILD_TESTS )
|
||||||
|
ENDIF ( WIN32 )
|
||||||
|
|
||||||
|
IF(MSVC)
|
||||||
|
SET ( ASSIMP_INSTALL_PDB ON CACHE BOOL
|
||||||
|
"Install MSVC debug files."
|
||||||
|
)
|
||||||
|
ENDIF(MSVC)
|
||||||
|
|
||||||
|
if(CMAKE_CPACK_COMMAND AND UNIX AND ASSIMP_OPT_BUILD_PACKAGES)
|
||||||
# Packing information
|
# Packing information
|
||||||
set(CPACK_PACKAGE_NAME assimp{ASSIMP_VERSION_MAJOR})
|
set(CPACK_PACKAGE_NAME assimp{ASSIMP_VERSION_MAJOR})
|
||||||
set(CPACK_PACKAGE_CONTACT "" CACHE STRING "Package maintainer and PGP signer.")
|
set(CPACK_PACKAGE_CONTACT "" CACHE STRING "Package maintainer and PGP signer.")
|
||||||
set(CPACK_PACKAGE_VENDOR "http://assimp.sourceforge.net/")
|
set(CPACK_PACKAGE_VENDOR "http://assimp.sourceforge.net/")
|
||||||
set(CPACK_PACKAGE_DISPLAY_NAME "Assimp ${ASSIMP_VERSION}.${ASSIMP_VERSION_MINOR}")
|
set(CPACK_PACKAGE_DISPLAY_NAME "Assimp ${ASSIMP_VERSION}")
|
||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY " - Open Asset Import Library r1252")
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY " - Open Asset Import Library ${ASSIMP_VERSION}")
|
||||||
set(CPACK_PACKAGE_VERSION ${ASSIMP_VERSION}.${PACKAGE_VERSION})
|
set(CPACK_PACKAGE_VERSION ${ASSIMP_VERSION}.${ASSIMP_PACKAGE_VERSION})
|
||||||
set(CPACK_PACKAGE_VERSION_MAJOR ${ASSIMP_VERSION_MAJOR})
|
set(CPACK_PACKAGE_VERSION_MAJOR ${ASSIMP_VERSION_MAJOR})
|
||||||
set(CPACK_PACKAGE_VERSION_MINOR ${ASSIMP_VERSION_MINOR})
|
set(CPACK_PACKAGE_VERSION_MINOR ${ASSIMP_VERSION_MINOR})
|
||||||
set(CPACK_PACKAGE_VERSION_PATCH ${ASSIMP_VERSION_PATCH})
|
set(CPACK_PACKAGE_VERSION_PATCH ${ASSIMP_VERSION_PATCH})
|
||||||
|
@ -189,20 +200,26 @@ if(CMAKE_CPACK_COMMAND AND UNIX AND OPT_BUILD_PACKAGES)
|
||||||
#set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_CURRENT_SOURCE_DIR}/description)
|
#set(CPACK_PACKAGE_DESCRIPTION_FILE ${CMAKE_CURRENT_SOURCE_DIR}/description)
|
||||||
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
|
set(CPACK_RESOURCE_FILE_LICENSE ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE)
|
||||||
|
|
||||||
|
string(TOUPPER ${LIBASSIMP_COMPONENT} LIBASSIMP_COMPONENT_UPPER)
|
||||||
|
string(TOUPPER ${LIBASSIMP-DEV_COMPONENT} LIBASSIMP-DEV_COMPONENT_UPPER)
|
||||||
|
|
||||||
set(CPACK_COMPONENT_ASSIMP-BIN_DISPLAY_NAME "tools")
|
set(CPACK_COMPONENT_ASSIMP-BIN_DISPLAY_NAME "tools")
|
||||||
set(CPACK_COMPONENT_ASSIMP-DEV_DISPLAY_NAME "common headers and installs")
|
|
||||||
set(CPACK_COMPONENT_${LIBASSIMP_COMPONENT}_DISPLAY_NAME "libraries")
|
|
||||||
set(CPACK_COMPONENT_ASSIMP-BIN_DEPENDS ${LIBASSIMP_COMPONENT})
|
set(CPACK_COMPONENT_ASSIMP-BIN_DEPENDS ${LIBASSIMP_COMPONENT})
|
||||||
set(CPACK_COMPONENT_ASSIMP-DEV_DEPENDS ${LIBASSIMP_COMPONENT})
|
set(CPACK_COMPONENT_${LIBASSIMP_COMPONENT_UPPER}_DISPLAY_NAME "libraries")
|
||||||
|
set(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DISPLAY_NAME "common headers and installs")
|
||||||
|
set(CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT_UPPER}_DEPENDS ${LIBASSIMP_COMPONENT})
|
||||||
|
set(CPACK_COMPONENT_ASSIMP-DEV_DISPLAY_NAME ${CPACK_COMPONENT_${LIBASSIMP-DEV_COMPONENT}_DISPLAY_NAME})
|
||||||
|
set(CPACK_COMPONENT_ASSIMP-DEV_DEPENDS ${LIBASSIMP-DEV_COMPONENT})
|
||||||
set(CPACK_DEBIAN_BUILD_DEPENDS debhelper cmake libboost-dev libboost-thread-dev libboost-math-dev zlib1g-dev pkg-config)
|
set(CPACK_DEBIAN_BUILD_DEPENDS debhelper cmake libboost-dev libboost-thread-dev libboost-math-dev zlib1g-dev pkg-config)
|
||||||
|
|
||||||
# debian
|
# debian
|
||||||
set(CPACK_DEBIAN_PACKAGE_PRIORITY optional)
|
set(CPACK_DEBIAN_PACKAGE_PRIORITY optional)
|
||||||
|
set(CPACK_DEBIAN_CMAKE_OPTIONS "-DBUILD_ASSIMP_SAMPLES:BOOL=${ASSIMP_BUILD_SAMPLES}")
|
||||||
set(CPACK_DEBIAN_PACKAGE_SECTION libs)
|
set(CPACK_DEBIAN_PACKAGE_SECTION libs)
|
||||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_COMPONENTS_ALL})
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS ${CPACK_COMPONENTS_ALL})
|
||||||
set(CPACK_DEBIAN_PACKAGE_SUGGESTS)
|
set(CPACK_DEBIAN_PACKAGE_SUGGESTS)
|
||||||
set(CPACK_DEBIAN_PACKAGE_NAME assimp)
|
set(CPACK_DEBIAN_PACKAGE_NAME assimp)
|
||||||
set(CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES contrib/cppunit-1.12.1 contrib/cppunit_note.txt contrib/zlib workspaces test doc obj )
|
set(CPACK_DEBIAN_PACKAGE_REMOVE_SOURCE_FILES contrib/cppunit-1.12.1 contrib/cppunit_note.txt contrib/zlib workspaces test doc obj samples packaging)
|
||||||
set(CPACK_DEBIAN_PACKAGE_SOURCE_COPY svn export --force)
|
set(CPACK_DEBIAN_PACKAGE_SOURCE_COPY svn export --force)
|
||||||
set(CPACK_DEBIAN_CHANGELOG)
|
set(CPACK_DEBIAN_CHANGELOG)
|
||||||
execute_process(COMMAND lsb_release -is
|
execute_process(COMMAND lsb_release -is
|
||||||
|
|
1
INSTALL
1
INSTALL
|
@ -3,7 +3,6 @@
|
||||||
Open Asset Import Library (assimp) INSTALL
|
Open Asset Import Library (assimp) INSTALL
|
||||||
========================================================================
|
========================================================================
|
||||||
|
|
||||||
|
|
||||||
------------------------------
|
------------------------------
|
||||||
Getting the documentation
|
Getting the documentation
|
||||||
------------------------------
|
------------------------------
|
||||||
|
|
38
LICENSE
38
LICENSE
|
@ -35,6 +35,8 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
******************************************************************************
|
||||||
|
|
||||||
AN EXCEPTION applies to all files in the ./test/models-nonbsd folder.
|
AN EXCEPTION applies to all files in the ./test/models-nonbsd folder.
|
||||||
These are 3d models for testing purposes, from various free sources
|
These are 3d models for testing purposes, from various free sources
|
||||||
on the internet. They are - unless otherwise stated - copyright of
|
on the internet. They are - unless otherwise stated - copyright of
|
||||||
|
@ -44,3 +46,39 @@ on the use of their work. For any of these models, see
|
||||||
are a copyright holder and believe that we credited you inproperly or
|
are a copyright holder and believe that we credited you inproperly or
|
||||||
if you don't want your files to appear in the repository.
|
if you don't want your files to appear in the repository.
|
||||||
|
|
||||||
|
|
||||||
|
******************************************************************************
|
||||||
|
|
||||||
|
Poly2Tri Copyright (c) 2009-2010, Poly2Tri Contributors
|
||||||
|
http://code.google.com/p/poly2tri/
|
||||||
|
|
||||||
|
All rights reserved.
|
||||||
|
Redistribution and use 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 Poly2Tri nor the names of its contributors may be
|
||||||
|
used to endorse or promote products derived from this software without specific
|
||||||
|
prior written permission.
|
||||||
|
|
||||||
|
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.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,12 +1,13 @@
|
||||||
set( PACKAGE_VERSION "@ASSIMP_VERSION@" )
|
set( ASSIMP_PACKAGE_VERSION "@ASSIMP_VERSION@" )
|
||||||
if( "${PACKAGE_FIND_VERSION}" VERSION_EQUAL "@ASSIMP_VERSION@")
|
if( "${ASSIMP_PACKAGE_FIND_VERSION}" VERSION_EQUAL "@ASSIMP_VERSION@")
|
||||||
set(PACKAGE_VERSION_EXACT 1)
|
set(ASSIMP_PACKAGE_VERSION_EXACT 1)
|
||||||
endif()
|
endif()
|
||||||
if( "${PACKAGE_FIND_VERSION_MAJOR}.${PACKAGE_FIND_VERSION_MINOR}" EQUAL "@ASSIMP_SOVERSION@" )
|
if( "${ASSIMP_PACKAGE_FIND_VERSION_MAJOR}.${ASSIMP_PACKAGE_FIND_VERSION_MINOR}" EQUAL "@ASSIMP_SOVERSION@" )
|
||||||
set(PACKAGE_VERSION_COMPATIBLE 1)
|
set(ASSIMP_PACKAGE_VERSION_COMPATIBLE 1)
|
||||||
elseif( "${PACKAGE_FIND_VERSION_MAJOR}" EQUAL "@ASSIMP_VERSION_MAJOR@" )
|
elseif( "${ASSIMP_PACKAGE_FIND_VERSION_MAJOR}" EQUAL "@ASSIMP_VERSION_MAJOR@" )
|
||||||
# for now backward compatible if minor version is less
|
# for now backward compatible if minor version is less
|
||||||
if( ${PACKAGE_FIND_VERSION_MINOR} LESS @ASSIMP_VERSION_MINOR@ )
|
if( ${ASSIMP_PACKAGE_FIND_VERSION_MINOR} LESS @ASSIMP_VERSION_MINOR@ )
|
||||||
set(PACKAGE_VERSION_COMPATIBLE 1)
|
set(ASSIMP_PACKAGE_VERSION_COMPATIBLE 1)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
set( ASSIMP_STATIC_LIB "@ASSIMP_BUILD_STATIC_LIB@")
|
||||||
|
|
|
@ -26,9 +26,9 @@ if( MSVC )
|
||||||
else()
|
else()
|
||||||
set(MSVC_PREFIX "vc100")
|
set(MSVC_PREFIX "vc100")
|
||||||
endif()
|
endif()
|
||||||
set(ASSIMP_LIBRARY_SUFFIX "-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library" FORCE)
|
set(ASSIMP_LIBRARY_SUFFIX "@ASSIMP_LIBRARY_SUFFIX@-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library" FORCE)
|
||||||
else()
|
else()
|
||||||
set(ASSIMP_LIBRARY_SUFFIX )
|
set(ASSIMP_LIBRARY_SUFFIX "@ASSIMP_LIBRARY_SUFFIX@" CACHE STRING "the suffix for the openrave libraries" FORCE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set( ASSIMP_CXX_FLAGS ) # dynamically linked library
|
set( ASSIMP_CXX_FLAGS ) # dynamically linked library
|
||||||
|
@ -39,7 +39,7 @@ endif()
|
||||||
set( ASSIMP_LINK_FLAGS "" )
|
set( ASSIMP_LINK_FLAGS "" )
|
||||||
set( ASSIMP_LIBRARY_DIRS "${ASSIMP_ROOT_DIR}/@LIB_INSTALL_DIR@")
|
set( ASSIMP_LIBRARY_DIRS "${ASSIMP_ROOT_DIR}/@LIB_INSTALL_DIR@")
|
||||||
set( ASSIMP_INCLUDE_DIRS "${ASSIMP_ROOT_DIR}/@INCLUDE_INSTALL_DIR@")
|
set( ASSIMP_INCLUDE_DIRS "${ASSIMP_ROOT_DIR}/@INCLUDE_INSTALL_DIR@")
|
||||||
set( ASSIMP_LIBRARIES assimp)
|
set( ASSIMP_LIBRARIES assimp${ASSIMP_LIBRARY_SUFFIX})
|
||||||
|
|
||||||
# the boost version assimp was compiled with
|
# the boost version assimp was compiled with
|
||||||
set( ASSIMP_Boost_VERSION "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@")
|
set( ASSIMP_Boost_VERSION "@Boost_MAJOR_VERSION@.@Boost_MINOR_VERSION@")
|
||||||
|
|
|
@ -6,5 +6,5 @@ includedir=@CMAKE_INSTALL_PREFIX@/@INCLUDE_INSTALL_DIR@/assimp
|
||||||
Name: @CMAKE_PROJECT_NAME@
|
Name: @CMAKE_PROJECT_NAME@
|
||||||
Description: Import various well-known 3D model formats in an uniform manner.
|
Description: Import various well-known 3D model formats in an uniform manner.
|
||||||
Version: @PROJECT_VERSION@
|
Version: @PROJECT_VERSION@
|
||||||
Libs: -L${libdir} -lassimp
|
Libs: -L${libdir} -lassimp@ASSIMP_LIBRARY_SUFFIX@
|
||||||
Cflags: -I${includedir}
|
Cflags: -I${includedir}
|
||||||
|
|
|
@ -0,0 +1,100 @@
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
# This file is part of the CMake build system for OGRE
|
||||||
|
# (Object-oriented Graphics Rendering Engine)
|
||||||
|
# For the latest info, see http://www.ogre3d.org/
|
||||||
|
#
|
||||||
|
# The contents of this file are placed in the public domain. Feel
|
||||||
|
# free to make use of it in any way you like.
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
# -----------------------------------------------------------------------------
|
||||||
|
# Find DirectX SDK
|
||||||
|
# Define:
|
||||||
|
# DirectX_FOUND
|
||||||
|
# DirectX_INCLUDE_DIR
|
||||||
|
# DirectX_LIBRARY
|
||||||
|
# DirectX_ROOT_DIR
|
||||||
|
|
||||||
|
if(WIN32) # The only platform it makes sense to check for DirectX SDK
|
||||||
|
include(FindPkgMacros)
|
||||||
|
findpkg_begin(DirectX)
|
||||||
|
|
||||||
|
# Get path, convert backslashes as ${ENV_DXSDK_DIR}
|
||||||
|
getenv_path(DXSDK_DIR)
|
||||||
|
getenv_path(DIRECTX_HOME)
|
||||||
|
getenv_path(DIRECTX_ROOT)
|
||||||
|
getenv_path(DIRECTX_BASE)
|
||||||
|
|
||||||
|
# construct search paths
|
||||||
|
set(DirectX_PREFIX_PATH
|
||||||
|
"${DXSDK_DIR}" "${ENV_DXSDK_DIR}"
|
||||||
|
"${DIRECTX_HOME}" "${ENV_DIRECTX_HOME}"
|
||||||
|
"${DIRECTX_ROOT}" "${ENV_DIRECTX_ROOT}"
|
||||||
|
"${DIRECTX_BASE}" "${ENV_DIRECTX_BASE}"
|
||||||
|
"C:/apps_x86/Microsoft DirectX SDK*"
|
||||||
|
"C:/Program Files (x86)/Microsoft DirectX SDK*"
|
||||||
|
"C:/apps/Microsoft DirectX SDK*"
|
||||||
|
"C:/Program Files/Microsoft DirectX SDK*"
|
||||||
|
"$ENV{ProgramFiles}/Microsoft DirectX SDK*"
|
||||||
|
)
|
||||||
|
create_search_paths(DirectX)
|
||||||
|
# redo search if prefix path changed
|
||||||
|
clear_if_changed(DirectX_PREFIX_PATH
|
||||||
|
DirectX_LIBRARY
|
||||||
|
DirectX_INCLUDE_DIR
|
||||||
|
)
|
||||||
|
|
||||||
|
find_path(DirectX_INCLUDE_DIR NAMES d3d9.h HINTS ${DirectX_INC_SEARCH_PATH})
|
||||||
|
# dlls are in DirectX_ROOT_DIR/Developer Runtime/x64|x86
|
||||||
|
# lib files are in DirectX_ROOT_DIR/Lib/x64|x86
|
||||||
|
if(CMAKE_CL_64)
|
||||||
|
set(DirectX_LIBPATH_SUFFIX "x64")
|
||||||
|
else(CMAKE_CL_64)
|
||||||
|
set(DirectX_LIBPATH_SUFFIX "x86")
|
||||||
|
endif(CMAKE_CL_64)
|
||||||
|
find_library(DirectX_LIBRARY NAMES d3d9 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
|
||||||
|
find_library(DirectX_D3DX9_LIBRARY NAMES d3dx9 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
|
||||||
|
find_library(DirectX_DXERR_LIBRARY NAMES DxErr HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
|
||||||
|
find_library(DirectX_DXGUID_LIBRARY NAMES dxguid HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
|
||||||
|
|
||||||
|
|
||||||
|
# look for dxgi (needed by both 10 and 11)
|
||||||
|
find_library(DirectX_DXGI_LIBRARY NAMES dxgi HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
|
||||||
|
|
||||||
|
# look for d3dcompiler (needed by 11)
|
||||||
|
find_library(DirectX_D3DCOMPILER_LIBRARY NAMES d3dcompiler HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
|
||||||
|
|
||||||
|
findpkg_finish(DirectX)
|
||||||
|
set(DirectX_LIBRARIES ${DirectX_LIBRARIES}
|
||||||
|
${DirectX_D3DX9_LIBRARY}
|
||||||
|
${DirectX_DXERR_LIBRARY}
|
||||||
|
${DirectX_DXGUID_LIBRARY}
|
||||||
|
)
|
||||||
|
|
||||||
|
mark_as_advanced(DirectX_D3DX9_LIBRARY DirectX_DXERR_LIBRARY DirectX_DXGUID_LIBRARY
|
||||||
|
DirectX_DXGI_LIBRARY DirectX_D3DCOMPILER_LIBRARY)
|
||||||
|
|
||||||
|
|
||||||
|
# look for D3D11 components
|
||||||
|
if (DirectX_FOUND)
|
||||||
|
find_path(DirectX_D3D11_INCLUDE_DIR NAMES D3D11Shader.h HINTS ${DirectX_INC_SEARCH_PATH})
|
||||||
|
get_filename_component(DirectX_LIBRARY_DIR "${DirectX_LIBRARY}" PATH)
|
||||||
|
message(STATUS "DX lib dir: ${DirectX_LIBRARY_DIR}")
|
||||||
|
find_library(DirectX_D3D11_LIBRARY NAMES d3d11 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
|
||||||
|
find_library(DirectX_D3DX11_LIBRARY NAMES d3dx11 HINTS ${DirectX_LIB_SEARCH_PATH} PATH_SUFFIXES ${DirectX_LIBPATH_SUFFIX})
|
||||||
|
if (DirectX_D3D11_INCLUDE_DIR AND DirectX_D3D11_LIBRARY)
|
||||||
|
set(DirectX_D3D11_FOUND TRUE)
|
||||||
|
set(DirectX_D3D11_INCLUDE_DIR ${DirectX_D3D11_INCLUDE_DIR})
|
||||||
|
set(DirectX_D3D11_LIBRARIES ${DirectX_D3D11_LIBRARIES}
|
||||||
|
${DirectX_D3D11_LIBRARY}
|
||||||
|
${DirectX_D3DX11_LIBRARY}
|
||||||
|
${DirectX_DXGI_LIBRARY}
|
||||||
|
${DirectX_DXERR_LIBRARY}
|
||||||
|
${DirectX_DXGUID_LIBRARY}
|
||||||
|
${DirectX_D3DCOMPILER_LIBRARY}
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
mark_as_advanced(DirectX_D3D11_INCLUDE_DIR DirectX_D3D11_LIBRARY DirectX_D3DX11_LIBRARY)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
endif(WIN32)
|
|
@ -0,0 +1,142 @@
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
# This file is part of the CMake build system for OGRE
|
||||||
|
# (Object-oriented Graphics Rendering Engine)
|
||||||
|
# For the latest info, see http://www.ogre3d.org/
|
||||||
|
#
|
||||||
|
# The contents of this file are placed in the public domain. Feel
|
||||||
|
# free to make use of it in any way you like.
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
##################################################################
|
||||||
|
# Provides some common functionality for the FindPackage modules
|
||||||
|
##################################################################
|
||||||
|
|
||||||
|
# Begin processing of package
|
||||||
|
macro(findpkg_begin PREFIX)
|
||||||
|
if (NOT ${PREFIX}_FIND_QUIETLY)
|
||||||
|
message(STATUS "Looking for ${PREFIX}...")
|
||||||
|
endif ()
|
||||||
|
endmacro(findpkg_begin)
|
||||||
|
|
||||||
|
# Display a status message unless FIND_QUIETLY is set
|
||||||
|
macro(pkg_message PREFIX)
|
||||||
|
if (NOT ${PREFIX}_FIND_QUIETLY)
|
||||||
|
message(STATUS ${ARGN})
|
||||||
|
endif ()
|
||||||
|
endmacro(pkg_message)
|
||||||
|
|
||||||
|
# Get environment variable, define it as ENV_$var and make sure backslashes are converted to forward slashes
|
||||||
|
macro(getenv_path VAR)
|
||||||
|
set(ENV_${VAR} $ENV{${VAR}})
|
||||||
|
# replace won't work if var is blank
|
||||||
|
if (ENV_${VAR})
|
||||||
|
string( REGEX REPLACE "\\\\" "/" ENV_${VAR} ${ENV_${VAR}} )
|
||||||
|
endif ()
|
||||||
|
endmacro(getenv_path)
|
||||||
|
|
||||||
|
# Construct search paths for includes and libraries from a PREFIX_PATH
|
||||||
|
macro(create_search_paths PREFIX)
|
||||||
|
foreach(dir ${${PREFIX}_PREFIX_PATH})
|
||||||
|
set(${PREFIX}_INC_SEARCH_PATH ${${PREFIX}_INC_SEARCH_PATH}
|
||||||
|
${dir}/include ${dir}/include/${PREFIX} ${dir}/Headers)
|
||||||
|
set(${PREFIX}_LIB_SEARCH_PATH ${${PREFIX}_LIB_SEARCH_PATH}
|
||||||
|
${dir}/lib ${dir}/lib/${PREFIX} ${dir}/Libs)
|
||||||
|
endforeach(dir)
|
||||||
|
set(${PREFIX}_FRAMEWORK_SEARCH_PATH ${${PREFIX}_PREFIX_PATH})
|
||||||
|
endmacro(create_search_paths)
|
||||||
|
|
||||||
|
# clear cache variables if a certain variable changed
|
||||||
|
macro(clear_if_changed TESTVAR)
|
||||||
|
# test against internal check variable
|
||||||
|
if (NOT "${${TESTVAR}}" STREQUAL "${${TESTVAR}_INT_CHECK}")
|
||||||
|
message(STATUS "${TESTVAR} changed.")
|
||||||
|
foreach(var ${ARGN})
|
||||||
|
set(${var} "NOTFOUND" CACHE STRING "x" FORCE)
|
||||||
|
endforeach(var)
|
||||||
|
endif ()
|
||||||
|
set(${TESTVAR}_INT_CHECK ${${TESTVAR}} CACHE INTERNAL "x" FORCE)
|
||||||
|
endmacro(clear_if_changed)
|
||||||
|
|
||||||
|
# Try to get some hints from pkg-config, if available
|
||||||
|
macro(use_pkgconfig PREFIX PKGNAME)
|
||||||
|
find_package(PkgConfig)
|
||||||
|
if (PKG_CONFIG_FOUND)
|
||||||
|
pkg_check_modules(${PREFIX} ${PKGNAME})
|
||||||
|
endif ()
|
||||||
|
endmacro (use_pkgconfig)
|
||||||
|
|
||||||
|
# Couple a set of release AND debug libraries (or frameworks)
|
||||||
|
macro(make_library_set PREFIX)
|
||||||
|
if (${PREFIX}_FWK)
|
||||||
|
set(${PREFIX} ${${PREFIX}_FWK})
|
||||||
|
elseif (${PREFIX}_REL AND ${PREFIX}_DBG)
|
||||||
|
set(${PREFIX} optimized ${${PREFIX}_REL} debug ${${PREFIX}_DBG})
|
||||||
|
elseif (${PREFIX}_REL)
|
||||||
|
set(${PREFIX} ${${PREFIX}_REL})
|
||||||
|
elseif (${PREFIX}_DBG)
|
||||||
|
set(${PREFIX} ${${PREFIX}_DBG})
|
||||||
|
endif ()
|
||||||
|
endmacro(make_library_set)
|
||||||
|
|
||||||
|
# Generate debug names from given release names
|
||||||
|
macro(get_debug_names PREFIX)
|
||||||
|
foreach(i ${${PREFIX}})
|
||||||
|
set(${PREFIX}_DBG ${${PREFIX}_DBG} ${i}d ${i}D ${i}_d ${i}_D ${i}_debug ${i})
|
||||||
|
endforeach(i)
|
||||||
|
endmacro(get_debug_names)
|
||||||
|
|
||||||
|
# Add the parent dir from DIR to VAR
|
||||||
|
macro(add_parent_dir VAR DIR)
|
||||||
|
get_filename_component(${DIR}_TEMP "${${DIR}}/.." ABSOLUTE)
|
||||||
|
set(${VAR} ${${VAR}} ${${DIR}_TEMP})
|
||||||
|
endmacro(add_parent_dir)
|
||||||
|
|
||||||
|
# Do the final processing for the package find.
|
||||||
|
macro(findpkg_finish PREFIX)
|
||||||
|
# skip if already processed during this run
|
||||||
|
if (NOT ${PREFIX}_FOUND)
|
||||||
|
if (${PREFIX}_INCLUDE_DIR AND ${PREFIX}_LIBRARY)
|
||||||
|
set(${PREFIX}_FOUND TRUE)
|
||||||
|
set(${PREFIX}_INCLUDE_DIRS ${${PREFIX}_INCLUDE_DIR})
|
||||||
|
set(${PREFIX}_LIBRARIES ${${PREFIX}_LIBRARY})
|
||||||
|
if (NOT ${PREFIX}_FIND_QUIETLY)
|
||||||
|
message(STATUS "Found ${PREFIX}: ${${PREFIX}_LIBRARIES}")
|
||||||
|
endif ()
|
||||||
|
else ()
|
||||||
|
if (NOT ${PREFIX}_FIND_QUIETLY)
|
||||||
|
message(STATUS "Could not locate ${PREFIX}")
|
||||||
|
endif ()
|
||||||
|
if (${PREFIX}_FIND_REQUIRED)
|
||||||
|
message(FATAL_ERROR "Required library ${PREFIX} not found! Install the library (including dev packages) and try again. If the library is already installed, set the missing variables manually in cmake.")
|
||||||
|
endif ()
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
mark_as_advanced(${PREFIX}_INCLUDE_DIR ${PREFIX}_LIBRARY ${PREFIX}_LIBRARY_REL ${PREFIX}_LIBRARY_DBG ${PREFIX}_LIBRARY_FWK)
|
||||||
|
endif ()
|
||||||
|
endmacro(findpkg_finish)
|
||||||
|
|
||||||
|
|
||||||
|
# Slightly customised framework finder
|
||||||
|
MACRO(findpkg_framework fwk)
|
||||||
|
IF(APPLE)
|
||||||
|
SET(${fwk}_FRAMEWORK_PATH
|
||||||
|
${${fwk}_FRAMEWORK_SEARCH_PATH}
|
||||||
|
${CMAKE_FRAMEWORK_PATH}
|
||||||
|
~/Library/Frameworks
|
||||||
|
/Library/Frameworks
|
||||||
|
/System/Library/Frameworks
|
||||||
|
/Network/Library/Frameworks
|
||||||
|
/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS3.0.sdk/System/Library/Frameworks/
|
||||||
|
)
|
||||||
|
FOREACH(dir ${${fwk}_FRAMEWORK_PATH})
|
||||||
|
SET(fwkpath ${dir}/${fwk}.framework)
|
||||||
|
IF(EXISTS ${fwkpath})
|
||||||
|
SET(${fwk}_FRAMEWORK_INCLUDES ${${fwk}_FRAMEWORK_INCLUDES}
|
||||||
|
${fwkpath}/Headers ${fwkpath}/PrivateHeaders)
|
||||||
|
if (NOT ${fwk}_LIBRARY_FWK)
|
||||||
|
SET(${fwk}_LIBRARY_FWK "-framework ${fwk}")
|
||||||
|
endif ()
|
||||||
|
ENDIF(EXISTS ${fwkpath})
|
||||||
|
ENDFOREACH(dir)
|
||||||
|
ENDIF(APPLE)
|
||||||
|
ENDMACRO(findpkg_framework)
|
|
@ -0,0 +1,48 @@
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
# This file is part of the CMake build system for OGRE
|
||||||
|
# (Object-oriented Graphics Rendering Engine)
|
||||||
|
# For the latest info, see http://www.ogre3d.org/
|
||||||
|
#
|
||||||
|
# The contents of this file are placed in the public domain. Feel
|
||||||
|
# free to make use of it in any way you like.
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
# - Try to find ZLIB
|
||||||
|
# Once done, this will define
|
||||||
|
#
|
||||||
|
# ZLIB_FOUND - system has ZLIB
|
||||||
|
# ZLIB_INCLUDE_DIRS - the ZLIB include directories
|
||||||
|
# ZLIB_LIBRARIES - link these to use ZLIB
|
||||||
|
|
||||||
|
include(FindPkgMacros)
|
||||||
|
findpkg_begin(ZLIB)
|
||||||
|
|
||||||
|
# Get path, convert backslashes as ${ENV_${var}}
|
||||||
|
getenv_path(ZLIB_HOME)
|
||||||
|
|
||||||
|
# construct search paths
|
||||||
|
set(ZLIB_PREFIX_PATH ${ZLIB_HOME} ${ENV_ZLIB_HOME})
|
||||||
|
create_search_paths(ZLIB)
|
||||||
|
# redo search if prefix path changed
|
||||||
|
clear_if_changed(ZLIB_PREFIX_PATH
|
||||||
|
ZLIB_LIBRARY_FWK
|
||||||
|
ZLIB_LIBRARY_REL
|
||||||
|
ZLIB_LIBRARY_DBG
|
||||||
|
ZLIB_INCLUDE_DIR
|
||||||
|
)
|
||||||
|
|
||||||
|
set(ZLIB_LIBRARY_NAMES z zlib zdll)
|
||||||
|
get_debug_names(ZLIB_LIBRARY_NAMES)
|
||||||
|
|
||||||
|
use_pkgconfig(ZLIB_PKGC zzip-zlib-config)
|
||||||
|
|
||||||
|
findpkg_framework(ZLIB)
|
||||||
|
|
||||||
|
find_path(ZLIB_INCLUDE_DIR NAMES zlib.h HINTS ${ZLIB_INC_SEARCH_PATH} ${ZLIB_PKGC_INCLUDE_DIRS})
|
||||||
|
find_library(ZLIB_LIBRARY_REL NAMES ${ZLIB_LIBRARY_NAMES} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" release relwithdebinfo minsizerel)
|
||||||
|
find_library(ZLIB_LIBRARY_DBG NAMES ${ZLIB_LIBRARY_NAMES_DBG} HINTS ${ZLIB_LIB_SEARCH_PATH} ${ZLIB_PKGC_LIBRARY_DIRS} PATH_SUFFIXES "" debug)
|
||||||
|
|
||||||
|
make_library_set(ZLIB_LIBRARY)
|
||||||
|
|
||||||
|
findpkg_finish(ZLIB)
|
||||||
|
|
|
@ -360,7 +360,7 @@ void BlenderImporter::ConvertBlendFile(aiScene* out, const Scene& in,const FileD
|
||||||
root->mNumChildren = static_cast<unsigned int>(no_parents.size());
|
root->mNumChildren = static_cast<unsigned int>(no_parents.size());
|
||||||
root->mChildren = new aiNode*[root->mNumChildren]();
|
root->mChildren = new aiNode*[root->mNumChildren]();
|
||||||
for (unsigned int i = 0; i < root->mNumChildren; ++i) {
|
for (unsigned int i = 0; i < root->mNumChildren; ++i) {
|
||||||
root->mChildren[i] = ConvertNode(in, no_parents[i], conv);
|
root->mChildren[i] = ConvertNode(in, no_parents[i], conv, aiMatrix4x4());
|
||||||
root->mChildren[i]->mParent = root;
|
root->mChildren[i]->mParent = root;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -568,6 +568,11 @@ void BlenderImporter::BuildMaterials(ConversionData& conv_data)
|
||||||
// Usually, zero diffuse color means no diffuse color at all in the equation.
|
// Usually, zero diffuse color means no diffuse color at all in the equation.
|
||||||
// So we omit this member to express this intent.
|
// So we omit this member to express this intent.
|
||||||
mout->AddProperty(&col,1,AI_MATKEY_COLOR_DIFFUSE);
|
mout->AddProperty(&col,1,AI_MATKEY_COLOR_DIFFUSE);
|
||||||
|
|
||||||
|
if (mat->emit) {
|
||||||
|
aiColor3D emit_col(mat->emit * mat->r, mat->emit * mat->g, mat->emit * mat->b) ;
|
||||||
|
mout->AddProperty(&emit_col, 1, AI_MATKEY_COLOR_EMISSIVE) ;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
col = aiColor3D(mat->specr,mat->specg,mat->specb);
|
col = aiColor3D(mat->specr,mat->specg,mat->specb);
|
||||||
|
@ -877,7 +882,7 @@ aiLight* BlenderImporter::ConvertLight(const Scene& /*in*/, const Object* /*obj*
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
aiNode* BlenderImporter::ConvertNode(const Scene& in, const Object* obj, ConversionData& conv_data)
|
aiNode* BlenderImporter::ConvertNode(const Scene& in, const Object* obj, ConversionData& conv_data, const aiMatrix4x4& parentTransform)
|
||||||
{
|
{
|
||||||
std::deque<const Object*> children;
|
std::deque<const Object*> children;
|
||||||
for(std::set<const Object*>::iterator it = conv_data.objects.begin(); it != conv_data.objects.end() ;) {
|
for(std::set<const Object*>::iterator it = conv_data.objects.begin(); it != conv_data.objects.end() ;) {
|
||||||
|
@ -961,16 +966,12 @@ aiNode* BlenderImporter::ConvertNode(const Scene& in, const Object* obj, Convers
|
||||||
|
|
||||||
for(unsigned int x = 0; x < 4; ++x) {
|
for(unsigned int x = 0; x < 4; ++x) {
|
||||||
for(unsigned int y = 0; y < 4; ++y) {
|
for(unsigned int y = 0; y < 4; ++y) {
|
||||||
node->mTransformation[y][x] = obj->parentinv[x][y];
|
node->mTransformation[y][x] = obj->obmat[x][y];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
aiMatrix4x4 m;
|
aiMatrix4x4 m = parentTransform;
|
||||||
for(unsigned int x = 0; x < 4; ++x) {
|
m = m.Inverse();
|
||||||
for(unsigned int y = 0; y < 4; ++y) {
|
|
||||||
m[y][x] = obj->obmat[x][y];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
node->mTransformation = m*node->mTransformation;
|
node->mTransformation = m*node->mTransformation;
|
||||||
|
|
||||||
|
@ -978,7 +979,7 @@ aiNode* BlenderImporter::ConvertNode(const Scene& in, const Object* obj, Convers
|
||||||
node->mNumChildren = static_cast<unsigned int>(children.size());
|
node->mNumChildren = static_cast<unsigned int>(children.size());
|
||||||
aiNode** nd = node->mChildren = new aiNode*[node->mNumChildren]();
|
aiNode** nd = node->mChildren = new aiNode*[node->mNumChildren]();
|
||||||
for_each (const Object* nobj,children) {
|
for_each (const Object* nobj,children) {
|
||||||
*nd = ConvertNode(in,nobj,conv_data);
|
*nd = ConvertNode(in,nobj,conv_data,node->mTransformation * parentTransform);
|
||||||
(*nd++)->mParent = node;
|
(*nd++)->mParent = node;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -145,7 +145,8 @@ private:
|
||||||
// --------------------
|
// --------------------
|
||||||
aiNode* ConvertNode(const Blender::Scene& in,
|
aiNode* ConvertNode(const Blender::Scene& in,
|
||||||
const Blender::Object* obj,
|
const Blender::Object* obj,
|
||||||
Blender::ConversionData& conv_info
|
Blender::ConversionData& conv_info,
|
||||||
|
const aiMatrix4x4& parentTransform
|
||||||
);
|
);
|
||||||
|
|
||||||
// --------------------
|
// --------------------
|
||||||
|
|
|
@ -591,17 +591,19 @@ SOURCE_GROUP( unzip FILES ${unzip_SRCS})
|
||||||
|
|
||||||
|
|
||||||
# VC2010 fixes
|
# VC2010 fixes
|
||||||
|
if(MSVC10)
|
||||||
OPTION( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF )
|
OPTION( VC10_STDINT_FIX "Fix for VC10 Compiler regarding pstdint.h redefinition errors" OFF )
|
||||||
if( VC10_STDINT_FIX )
|
if( VC10_STDINT_FIX )
|
||||||
ADD_DEFINITIONS( -D_STDINT )
|
ADD_DEFINITIONS( -D_STDINT )
|
||||||
endif( VC10_STDINT_FIX )
|
endif( VC10_STDINT_FIX )
|
||||||
|
endif(MSVC10)
|
||||||
|
|
||||||
ADD_DEFINITIONS( -DASSIMP_BUILD_DLL_EXPORT )
|
ADD_DEFINITIONS( -DASSIMP_BUILD_DLL_EXPORT )
|
||||||
|
|
||||||
if ( MSVC80 OR MSVC90 OR MSVC10 )
|
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 )
|
||||||
endif ( MSVC80 OR MSVC90 OR MSVC10 )
|
endif ( MSVC )
|
||||||
|
|
||||||
if (UNZIP_FOUND)
|
if (UNZIP_FOUND)
|
||||||
SET (unzip_compile_SRCS "")
|
SET (unzip_compile_SRCS "")
|
||||||
|
@ -670,17 +672,17 @@ SET( assim_src
|
||||||
${PUBLIC_HEADERS}
|
${PUBLIC_HEADERS}
|
||||||
${COMPILER_HEADERS}
|
${COMPILER_HEADERS}
|
||||||
)
|
)
|
||||||
IF ( BUILD_STATIC_LIB )
|
IF ( ASSIMP_BUILD_STATIC_LIB )
|
||||||
ADD_LIBRARY( assimp STATIC
|
ADD_LIBRARY( assimp STATIC
|
||||||
${assim_src}
|
${assim_src}
|
||||||
)
|
)
|
||||||
ELSE ( BUILD_STATIC_LIB )
|
ELSE ( ASSIMP_BUILD_STATIC_LIB )
|
||||||
ADD_LIBRARY( assimp SHARED
|
ADD_LIBRARY( assimp SHARED
|
||||||
${assim_src}
|
${assim_src}
|
||||||
)
|
)
|
||||||
ENDIF ( BUILD_STATIC_LIB )
|
ENDIF ( ASSIMP_BUILD_STATIC_LIB )
|
||||||
|
|
||||||
SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${DEBUG_POSTFIX})
|
SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES})
|
TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES})
|
||||||
SET_TARGET_PROPERTIES( assimp PROPERTIES
|
SET_TARGET_PROPERTIES( assimp PROPERTIES
|
||||||
|
@ -696,6 +698,17 @@ else (UNZIP_FOUND)
|
||||||
INCLUDE_DIRECTORIES("../contrib/unzip")
|
INCLUDE_DIRECTORIES("../contrib/unzip")
|
||||||
endif (UNZIP_FOUND)
|
endif (UNZIP_FOUND)
|
||||||
|
|
||||||
INSTALL( TARGETS assimp DESTINATION ${LIB_INSTALL_DIR} COMPONENT ${LIBASSIMP_COMPONENT})
|
INSTALL( TARGETS assimp DESTINATION ${ASSIMP_LIB_INSTALL_DIR} COMPONENT ${LIBASSIMP_COMPONENT})
|
||||||
INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev)
|
INSTALL( FILES ${PUBLIC_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp COMPONENT assimp-dev)
|
||||||
INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev)
|
INSTALL( FILES ${COMPILER_HEADERS} DESTINATION ${ASSIMP_INCLUDE_INSTALL_DIR}/assimp/Compiler COMPONENT assimp-dev)
|
||||||
|
|
||||||
|
if(MSVC AND ASSIMP_INSTALL_PDB)
|
||||||
|
install(FILES ${Assimp_BINARY_DIR}/code/Debug/assimp${ASSIMP_DEBUG_POSTFIX}.pdb
|
||||||
|
DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
|
||||||
|
CONFIGURATIONS Debug
|
||||||
|
)
|
||||||
|
install(FILES ${Assimp_BINARY_DIR}/code/RelWithDebInfo/assimp.pdb
|
||||||
|
DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
|
||||||
|
CONFIGURATIONS RelWithDebInfo
|
||||||
|
)
|
||||||
|
endif ()
|
||||||
|
|
|
@ -85,14 +85,18 @@ public:
|
||||||
size_t EstimateSampleCount(IfcFloat a, IfcFloat b) const {
|
size_t EstimateSampleCount(IfcFloat a, IfcFloat b) const {
|
||||||
ai_assert(InRange(a) && InRange(b));
|
ai_assert(InRange(a) && InRange(b));
|
||||||
|
|
||||||
a = fmod(a,static_cast<IfcFloat>( 360. ));
|
a *= conv.angle_scale;
|
||||||
b = fmod(b,static_cast<IfcFloat>( 360. ));
|
b *= conv.angle_scale;
|
||||||
return static_cast<size_t>( abs(ceil(( b-a)) / conv.settings.conicSamplingAngle) );
|
|
||||||
|
a = fmod(a,static_cast<IfcFloat>( AI_MATH_TWO_PI ));
|
||||||
|
b = fmod(b,static_cast<IfcFloat>( AI_MATH_TWO_PI ));
|
||||||
|
const IfcFloat setting = static_cast<IfcFloat>( AI_MATH_PI * conv.settings.conicSamplingAngle / 180.0 );
|
||||||
|
return static_cast<size_t>( ceil(abs( b-a)) / setting);
|
||||||
}
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
ParamRange GetParametricRange() const {
|
ParamRange GetParametricRange() const {
|
||||||
return std::make_pair(static_cast<IfcFloat>( 0. ), static_cast<IfcFloat>( 360. ));
|
return std::make_pair(static_cast<IfcFloat>( 0. ), static_cast<IfcFloat>( AI_MATH_TWO_PI / conv.angle_scale ));
|
||||||
}
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -272,7 +276,7 @@ public:
|
||||||
IfcFloat acc = 0;
|
IfcFloat acc = 0;
|
||||||
BOOST_FOREACH(const CurveEntry& entry, curves) {
|
BOOST_FOREACH(const CurveEntry& entry, curves) {
|
||||||
const ParamRange& range = entry.first->GetParametricRange();
|
const ParamRange& range = entry.first->GetParametricRange();
|
||||||
const IfcFloat delta = range.second-range.first;
|
const IfcFloat delta = abs(range.second-range.first);
|
||||||
if (u < acc+delta) {
|
if (u < acc+delta) {
|
||||||
return entry.first->Eval( entry.second ? (u-acc) + range.first : range.second-(u-acc));
|
return entry.first->Eval( entry.second ? (u-acc) + range.first : range.second-(u-acc));
|
||||||
}
|
}
|
||||||
|
@ -291,7 +295,7 @@ public:
|
||||||
IfcFloat acc = 0;
|
IfcFloat acc = 0;
|
||||||
BOOST_FOREACH(const CurveEntry& entry, curves) {
|
BOOST_FOREACH(const CurveEntry& entry, curves) {
|
||||||
const ParamRange& range = entry.first->GetParametricRange();
|
const ParamRange& range = entry.first->GetParametricRange();
|
||||||
const IfcFloat delta = range.second-range.first;
|
const IfcFloat delta = abs(range.second-range.first);
|
||||||
if (a <= acc+delta && b >= acc) {
|
if (a <= acc+delta && b >= acc) {
|
||||||
const IfcFloat at = std::max(static_cast<IfcFloat>( 0. ),a-acc), bt = std::min(delta,b-acc);
|
const IfcFloat at = std::max(static_cast<IfcFloat>( 0. ),a-acc), bt = std::min(delta,b-acc);
|
||||||
cnt += entry.first->EstimateSampleCount( entry.second ? at + range.first : range.second - bt, entry.second ? bt + range.first : range.second - at );
|
cnt += entry.first->EstimateSampleCount( entry.second ? at + range.first : range.second - bt, entry.second ? bt + range.first : range.second - at );
|
||||||
|
@ -424,6 +428,12 @@ public:
|
||||||
return base->EstimateSampleCount(TrimParam(a),TrimParam(b));
|
return base->EstimateSampleCount(TrimParam(a),TrimParam(b));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// --------------------------------------------------
|
||||||
|
void SampleDiscrete(TempMesh& out,IfcFloat a,IfcFloat b) const {
|
||||||
|
ai_assert(InRange(a) && InRange(b));
|
||||||
|
return base->SampleDiscrete(out,TrimParam(a),TrimParam(b));
|
||||||
|
}
|
||||||
|
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
ParamRange GetParametricRange() const {
|
ParamRange GetParametricRange() const {
|
||||||
return std::make_pair(static_cast<IfcFloat>( 0. ),maxval);
|
return std::make_pair(static_cast<IfcFloat>( 0. ),maxval);
|
||||||
|
@ -546,10 +556,12 @@ bool Curve :: InRange(IfcFloat u) const
|
||||||
{
|
{
|
||||||
const ParamRange range = GetParametricRange();
|
const ParamRange range = GetParametricRange();
|
||||||
if (IsClosed()) {
|
if (IsClosed()) {
|
||||||
ai_assert(range.first != std::numeric_limits<IfcFloat>::infinity() && range.second != std::numeric_limits<IfcFloat>::infinity());
|
return true;
|
||||||
u = range.first + fmod(u-range.first,range.second-range.first);
|
//ai_assert(range.first != std::numeric_limits<IfcFloat>::infinity() && range.second != std::numeric_limits<IfcFloat>::infinity());
|
||||||
|
//u = range.first + fmod(u-range.first,range.second-range.first);
|
||||||
}
|
}
|
||||||
return u >= range.first && u <= range.second;
|
const IfcFloat epsilon = 1e-5;
|
||||||
|
return u - range.first > -epsilon && range.second - u > -epsilon;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -557,7 +569,7 @@ bool Curve :: InRange(IfcFloat u) const
|
||||||
IfcFloat Curve :: GetParametricRangeDelta() const
|
IfcFloat Curve :: GetParametricRangeDelta() const
|
||||||
{
|
{
|
||||||
const ParamRange& range = GetParametricRange();
|
const ParamRange& range = GetParametricRange();
|
||||||
return range.second - range.first;
|
return abs(range.second - range.first);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
|
|
@ -451,7 +451,6 @@ void ProcessConnectedFaceSet(const IfcConnectedFaceSet& fset, TempMesh& result,
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
void ProcessRevolvedAreaSolid(const IfcRevolvedAreaSolid& solid, TempMesh& result, ConversionData& conv)
|
void ProcessRevolvedAreaSolid(const IfcRevolvedAreaSolid& solid, TempMesh& result, ConversionData& conv)
|
||||||
{
|
{
|
||||||
|
@ -539,6 +538,112 @@ void ProcessRevolvedAreaSolid(const IfcRevolvedAreaSolid& solid, TempMesh& resul
|
||||||
IFCImporter::LogDebug("generate mesh procedurally by radial extrusion (IfcRevolvedAreaSolid)");
|
IFCImporter::LogDebug("generate mesh procedurally by radial extrusion (IfcRevolvedAreaSolid)");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// ------------------------------------------------------------------------------------------------
|
||||||
|
void ProcessSweptDiskSolid(const IfcSweptDiskSolid solid, TempMesh& result, ConversionData& conv)
|
||||||
|
{
|
||||||
|
const Curve* const curve = Curve::Convert(*solid.Directrix, conv);
|
||||||
|
if(!curve) {
|
||||||
|
IFCImporter::LogError("failed to convert Directrix curve (IfcSweptDiskSolid)");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::vector<IfcVector3>& in = result.verts;
|
||||||
|
const size_t size=in.size();
|
||||||
|
|
||||||
|
const unsigned int cnt_segments = 16;
|
||||||
|
const IfcFloat deltaAngle = AI_MATH_TWO_PI/cnt_segments;
|
||||||
|
|
||||||
|
const size_t samples = curve->EstimateSampleCount(solid.StartParam,solid.EndParam);
|
||||||
|
|
||||||
|
result.verts.reserve(cnt_segments * samples * 4);
|
||||||
|
result.vertcnt.reserve((cnt_segments - 1) * samples);
|
||||||
|
|
||||||
|
std::vector<IfcVector3> points;
|
||||||
|
points.reserve(cnt_segments * samples);
|
||||||
|
|
||||||
|
TempMesh temp;
|
||||||
|
curve->SampleDiscrete(temp,solid.StartParam,solid.EndParam);
|
||||||
|
const std::vector<IfcVector3>& curve_points = temp.verts;
|
||||||
|
|
||||||
|
if(curve_points.empty()) {
|
||||||
|
IFCImporter::LogWarn("curve evaluation yielded no points (IfcSweptDiskSolid)");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
IfcVector3 current = curve_points[0];
|
||||||
|
IfcVector3 previous = current;
|
||||||
|
IfcVector3 next;
|
||||||
|
|
||||||
|
IfcVector3 startvec;
|
||||||
|
startvec.x = 1.0f;
|
||||||
|
startvec.y = 1.0f;
|
||||||
|
startvec.z = 1.0f;
|
||||||
|
|
||||||
|
// generate circles at the sweep positions
|
||||||
|
for(size_t i = 0; i < samples; ++i) {
|
||||||
|
|
||||||
|
if(i != samples - 1) {
|
||||||
|
next = curve_points[i + 1];
|
||||||
|
}
|
||||||
|
|
||||||
|
// get a direction vector reflecting the approximate curvature (i.e. tangent)
|
||||||
|
IfcVector3 d = (current-previous) + (next-previous);
|
||||||
|
|
||||||
|
d.Normalize();
|
||||||
|
|
||||||
|
// figure out an arbitrary point q so that (p-q) * d = 0,
|
||||||
|
// try to maximize ||(p-q)|| * ||(p_last-q_last)||
|
||||||
|
IfcVector3 q;
|
||||||
|
if (abs(d.x) > 1e-6) {
|
||||||
|
q.y = startvec.y;
|
||||||
|
q.z = startvec.z;
|
||||||
|
q.x = -(d.y * q.y + d.z * q.z) / d.x;
|
||||||
|
}
|
||||||
|
else if (abs(d.y) > 1e-6) {
|
||||||
|
q.x = startvec.x;
|
||||||
|
q.z = startvec.z;
|
||||||
|
q.y = -(d.x * q.x + d.z * q.z) / d.y;
|
||||||
|
}
|
||||||
|
else { // if (abs(d.z) > 1e-6)
|
||||||
|
q.y = startvec.y;
|
||||||
|
q.x = startvec.x;
|
||||||
|
q.z = -(d.y * q.y + d.x * q.x) / d.z;
|
||||||
|
}
|
||||||
|
|
||||||
|
startvec = q;
|
||||||
|
q *= solid.Radius / q.Length();
|
||||||
|
|
||||||
|
// generate a rotation matrix to rotate q around d
|
||||||
|
IfcMatrix4 rot;
|
||||||
|
IfcMatrix4::Rotation(deltaAngle,d,rot);
|
||||||
|
|
||||||
|
for (unsigned int seg = 0; seg < cnt_segments; ++seg, q *= rot ) {
|
||||||
|
points.push_back(q + current);
|
||||||
|
}
|
||||||
|
|
||||||
|
previous = current;
|
||||||
|
current = next;
|
||||||
|
}
|
||||||
|
|
||||||
|
// make quads
|
||||||
|
for(size_t i = 0; i < samples - 1; ++i) {
|
||||||
|
|
||||||
|
for (unsigned int seg = 0; seg < cnt_segments - 1; ++seg) {
|
||||||
|
|
||||||
|
result.verts.push_back(points[ i * cnt_segments + seg]);
|
||||||
|
result.verts.push_back(points[ i * cnt_segments + seg + 1]);
|
||||||
|
result.verts.push_back(points[ (i+1) * cnt_segments + seg + 1]);
|
||||||
|
result.verts.push_back(points[ (i+1) * cnt_segments + seg]);
|
||||||
|
|
||||||
|
result.vertcnt.push_back(4);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
IFCImporter::LogDebug("generate mesh procedurally by sweeping a disk along a curve (IfcSweptDiskSolid)");
|
||||||
|
}
|
||||||
|
|
||||||
// ------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------
|
||||||
IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh) {
|
IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh) {
|
||||||
|
|
||||||
|
@ -1723,6 +1828,9 @@ bool ProcessGeometricItem(const IfcRepresentationItem& geo, std::vector<unsigned
|
||||||
else if(const IfcSweptAreaSolid* swept = geo.ToPtr<IfcSweptAreaSolid>()) {
|
else if(const IfcSweptAreaSolid* swept = geo.ToPtr<IfcSweptAreaSolid>()) {
|
||||||
ProcessSweptAreaSolid(*swept,meshtmp,conv);
|
ProcessSweptAreaSolid(*swept,meshtmp,conv);
|
||||||
}
|
}
|
||||||
|
else if(const IfcSweptDiskSolid* disk = geo.ToPtr<IfcSweptDiskSolid>()) {
|
||||||
|
ProcessSweptDiskSolid(*disk,meshtmp,conv);
|
||||||
|
}
|
||||||
else if(const IfcManifoldSolidBrep* brep = geo.ToPtr<IfcManifoldSolidBrep>()) {
|
else if(const IfcManifoldSolidBrep* brep = geo.ToPtr<IfcManifoldSolidBrep>()) {
|
||||||
ProcessConnectedFaceSet(brep->Outer,meshtmp,conv);
|
ProcessConnectedFaceSet(brep->Outer,meshtmp,conv);
|
||||||
}
|
}
|
||||||
|
|
|
@ -48,6 +48,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <iterator>
|
#include <iterator>
|
||||||
#include <boost/tuple/tuple.hpp>
|
#include <boost/tuple/tuple.hpp>
|
||||||
|
|
||||||
|
#include "../contrib/unzip/unzip.h"
|
||||||
|
|
||||||
#include "IFCLoader.h"
|
#include "IFCLoader.h"
|
||||||
#include "STEPFileReader.h"
|
#include "STEPFileReader.h"
|
||||||
|
@ -103,7 +104,7 @@ static const aiImporterDesc desc = {
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
0,
|
0,
|
||||||
"ifc"
|
"ifc ifczip"
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -123,7 +124,7 @@ IFCImporter::~IFCImporter()
|
||||||
bool IFCImporter::CanRead( const std::string& pFile, IOSystem* pIOHandler, bool checkSig) const
|
bool IFCImporter::CanRead( const std::string& pFile, IOSystem* pIOHandler, bool checkSig) const
|
||||||
{
|
{
|
||||||
const std::string& extension = GetExtension(pFile);
|
const std::string& extension = GetExtension(pFile);
|
||||||
if (extension == "ifc") {
|
if (extension == "ifc" || extension == "ifczip") {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -168,6 +169,53 @@ void IFCImporter::InternReadFile( const std::string& pFile,
|
||||||
ThrowException("Could not open file for reading");
|
ThrowException("Could not open file for reading");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// if this is a ifczip file, decompress its contents first
|
||||||
|
if(GetExtension(pFile) == "ifczip") {
|
||||||
|
unzFile zip = unzOpen( pFile.c_str() );
|
||||||
|
if(zip == NULL) {
|
||||||
|
ThrowException("Could not open ifczip file for reading, unzip failed");
|
||||||
|
}
|
||||||
|
|
||||||
|
// chop 'zip' postfix
|
||||||
|
std::string fileName = pFile.substr(0,pFile.length() - 3);
|
||||||
|
|
||||||
|
std::string::size_type s = pFile.find_last_of('\\');
|
||||||
|
if(s == std::string::npos) {
|
||||||
|
s = pFile.find_last_of('/');
|
||||||
|
}
|
||||||
|
if(s != std::string::npos) {
|
||||||
|
fileName = fileName.substr(s+1);
|
||||||
|
}
|
||||||
|
|
||||||
|
// search file (same name as the IFCZIP except for the file extension) and place file pointer there
|
||||||
|
if ( unzLocateFile( zip, fileName.c_str(), 0 ) == UNZ_OK )
|
||||||
|
{
|
||||||
|
// get file size, etc.
|
||||||
|
unz_file_info fileInfo;
|
||||||
|
unzGetCurrentFileInfo( zip , &fileInfo, 0, 0, 0, 0, 0, 0 );
|
||||||
|
|
||||||
|
uint8_t* buff = new uint8_t[fileInfo.uncompressed_size];
|
||||||
|
|
||||||
|
LogInfo("Decompressing IFCZIP file");
|
||||||
|
|
||||||
|
unzOpenCurrentFile( zip );
|
||||||
|
const int ret = unzReadCurrentFile( zip, buff, fileInfo.uncompressed_size);
|
||||||
|
size_t filesize = fileInfo.uncompressed_size;
|
||||||
|
if ( ret < 0 || size_t(ret) != filesize )
|
||||||
|
{
|
||||||
|
delete[] buff;
|
||||||
|
ThrowException("Failed to decompress IFC ZIP file");
|
||||||
|
}
|
||||||
|
unzCloseCurrentFile( zip );
|
||||||
|
stream.reset(new MemoryIOStream(buff,fileInfo.uncompressed_size,true));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ThrowException("Found no IFC file member in IFCZIP file");
|
||||||
|
}
|
||||||
|
|
||||||
|
unzClose(zip);
|
||||||
|
}
|
||||||
|
|
||||||
boost::scoped_ptr<STEP::DB> db(STEP::ReadFileHeader(stream));
|
boost::scoped_ptr<STEP::DB> db(STEP::ReadFileHeader(stream));
|
||||||
const STEP::HeaderInfo& head = static_cast<const STEP::DB&>(*db).GetHeader();
|
const STEP::HeaderInfo& head = static_cast<const STEP::DB&>(*db).GetHeader();
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (ASSIMP)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2012, assimp team
|
Copyright (c) 2006-2010, ASSIMP Development 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,
|
||||||
|
@ -18,10 +18,10 @@ following conditions are met:
|
||||||
following disclaimer in the documentation and/or other
|
following disclaimer in the documentation and/or other
|
||||||
materials provided with the distribution.
|
materials provided with the distribution.
|
||||||
|
|
||||||
* Neither the name of the assimp team, nor the names of its
|
* Neither the name of the ASSIMP team, nor the names of its
|
||||||
contributors may be used to endorse or promote products
|
contributors may be used to endorse or promote products
|
||||||
derived from this software without specific prior
|
derived from this software without specific prior
|
||||||
written permission of the assimp team.
|
written permission of the ASSIMP Development Team.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
@ -96,7 +96,6 @@ namespace {
|
||||||
, SchemaEntry("ifcobjecttypeenum",NULL )
|
, SchemaEntry("ifcobjecttypeenum",NULL )
|
||||||
, SchemaEntry("ifcthermalloadtypeenum",NULL )
|
, SchemaEntry("ifcthermalloadtypeenum",NULL )
|
||||||
, SchemaEntry("ifcionconcentrationmeasure",NULL )
|
, SchemaEntry("ifcionconcentrationmeasure",NULL )
|
||||||
, SchemaEntry("ifcobjectreferenceselect",NULL )
|
|
||||||
, SchemaEntry("ifcclassificationnotationselect",NULL )
|
, SchemaEntry("ifcclassificationnotationselect",NULL )
|
||||||
, SchemaEntry("ifcbsplinecurveform",NULL )
|
, SchemaEntry("ifcbsplinecurveform",NULL )
|
||||||
, SchemaEntry("ifcelementcompositionenum",NULL )
|
, SchemaEntry("ifcelementcompositionenum",NULL )
|
||||||
|
@ -158,6 +157,7 @@ namespace {
|
||||||
, SchemaEntry("ifcidentifier",NULL )
|
, SchemaEntry("ifcidentifier",NULL )
|
||||||
, SchemaEntry("ifcradioactivitymeasure",NULL )
|
, SchemaEntry("ifcradioactivitymeasure",NULL )
|
||||||
, SchemaEntry("ifcsymbolstyleselect",NULL )
|
, SchemaEntry("ifcsymbolstyleselect",NULL )
|
||||||
|
, SchemaEntry("ifcobjectreferenceselect",NULL )
|
||||||
, SchemaEntry("ifcrooftypeenum",NULL )
|
, SchemaEntry("ifcrooftypeenum",NULL )
|
||||||
, SchemaEntry("ifcreal",NULL )
|
, SchemaEntry("ifcreal",NULL )
|
||||||
, SchemaEntry("ifcroleenum",NULL )
|
, SchemaEntry("ifcroleenum",NULL )
|
||||||
|
@ -168,6 +168,7 @@ namespace {
|
||||||
, SchemaEntry("ifcfiltertypeenum",NULL )
|
, SchemaEntry("ifcfiltertypeenum",NULL )
|
||||||
, SchemaEntry("ifctransformertypeenum",NULL )
|
, SchemaEntry("ifctransformertypeenum",NULL )
|
||||||
, SchemaEntry("ifcsurfaceside",NULL )
|
, SchemaEntry("ifcsurfaceside",NULL )
|
||||||
|
, SchemaEntry("ifcspaceheatertypeenum",NULL )
|
||||||
, SchemaEntry("ifcthermaltransmittancemeasure",NULL )
|
, SchemaEntry("ifcthermaltransmittancemeasure",NULL )
|
||||||
, SchemaEntry("ifctubebundletypeenum",NULL )
|
, SchemaEntry("ifctubebundletypeenum",NULL )
|
||||||
, SchemaEntry("ifclightfixturetypeenum",NULL )
|
, SchemaEntry("ifclightfixturetypeenum",NULL )
|
||||||
|
@ -239,7 +240,6 @@ namespace {
|
||||||
, SchemaEntry("ifcvolumemeasure",NULL )
|
, SchemaEntry("ifcvolumemeasure",NULL )
|
||||||
, SchemaEntry("ifcbeamtypeenum",NULL )
|
, SchemaEntry("ifcbeamtypeenum",NULL )
|
||||||
, SchemaEntry("ifcstateenum",NULL )
|
, SchemaEntry("ifcstateenum",NULL )
|
||||||
, SchemaEntry("ifcspaceheatertypeenum",NULL )
|
|
||||||
, SchemaEntry("ifcsectiontypeenum",NULL )
|
, SchemaEntry("ifcsectiontypeenum",NULL )
|
||||||
, SchemaEntry("ifcfootingtypeenum",NULL )
|
, SchemaEntry("ifcfootingtypeenum",NULL )
|
||||||
, SchemaEntry("ifcmonetarymeasure",NULL )
|
, SchemaEntry("ifcmonetarymeasure",NULL )
|
||||||
|
@ -379,6 +379,9 @@ namespace {
|
||||||
, SchemaEntry("ifcpermeablecoveringoperationenum",NULL )
|
, SchemaEntry("ifcpermeablecoveringoperationenum",NULL )
|
||||||
, SchemaEntry("ifcmagneticfluxdensitymeasure",NULL )
|
, SchemaEntry("ifcmagneticfluxdensitymeasure",NULL )
|
||||||
, SchemaEntry("ifcmoisturediffusivitymeasure",NULL )
|
, SchemaEntry("ifcmoisturediffusivitymeasure",NULL )
|
||||||
|
, SchemaEntry("ifcprofiledef",&STEP::ObjectHelper<IfcProfileDef,2>::Construct )
|
||||||
|
, SchemaEntry("ifcparameterizedprofiledef",&STEP::ObjectHelper<IfcParameterizedProfileDef,1>::Construct )
|
||||||
|
, SchemaEntry("ifczshapeprofiledef",&STEP::ObjectHelper<IfcZShapeProfileDef,6>::Construct )
|
||||||
, SchemaEntry("ifcroot",&STEP::ObjectHelper<IfcRoot,4>::Construct )
|
, SchemaEntry("ifcroot",&STEP::ObjectHelper<IfcRoot,4>::Construct )
|
||||||
, SchemaEntry("ifcobjectdefinition",&STEP::ObjectHelper<IfcObjectDefinition,0>::Construct )
|
, SchemaEntry("ifcobjectdefinition",&STEP::ObjectHelper<IfcObjectDefinition,0>::Construct )
|
||||||
, SchemaEntry("ifctypeobject",&STEP::ObjectHelper<IfcTypeObject,2>::Construct )
|
, SchemaEntry("ifctypeobject",&STEP::ObjectHelper<IfcTypeObject,2>::Construct )
|
||||||
|
@ -463,7 +466,6 @@ namespace {
|
||||||
, SchemaEntry("ifcpredefineditem",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
, SchemaEntry("ifcpredefineditem",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
||||||
, SchemaEntry("ifcpredefinedcolour",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
, SchemaEntry("ifcpredefinedcolour",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
||||||
, SchemaEntry("ifcdraughtingpredefinedcolour",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
, SchemaEntry("ifcdraughtingpredefinedcolour",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
||||||
, SchemaEntry("ifcprofiledef",&STEP::ObjectHelper<IfcProfileDef,2>::Construct )
|
|
||||||
, SchemaEntry("ifcarbitraryclosedprofiledef",&STEP::ObjectHelper<IfcArbitraryClosedProfileDef,1>::Construct )
|
, SchemaEntry("ifcarbitraryclosedprofiledef",&STEP::ObjectHelper<IfcArbitraryClosedProfileDef,1>::Construct )
|
||||||
, SchemaEntry("ifccurve",&STEP::ObjectHelper<IfcCurve,0>::Construct )
|
, SchemaEntry("ifccurve",&STEP::ObjectHelper<IfcCurve,0>::Construct )
|
||||||
, SchemaEntry("ifcconic",&STEP::ObjectHelper<IfcConic,1>::Construct )
|
, SchemaEntry("ifcconic",&STEP::ObjectHelper<IfcConic,1>::Construct )
|
||||||
|
@ -550,6 +552,7 @@ namespace {
|
||||||
, SchemaEntry("ifcaxis1placement",&STEP::ObjectHelper<IfcAxis1Placement,1>::Construct )
|
, SchemaEntry("ifcaxis1placement",&STEP::ObjectHelper<IfcAxis1Placement,1>::Construct )
|
||||||
, SchemaEntry("ifclightintensitydistribution",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
, SchemaEntry("ifclightintensitydistribution",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
||||||
, SchemaEntry("ifcpredefinedsymbol",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
, SchemaEntry("ifcpredefinedsymbol",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
||||||
|
, SchemaEntry("ifccolourspecification",&STEP::ObjectHelper<IfcColourSpecification,1>::Construct )
|
||||||
, SchemaEntry("ifcstructuralpointaction",&STEP::ObjectHelper<IfcStructuralPointAction,0>::Construct )
|
, SchemaEntry("ifcstructuralpointaction",&STEP::ObjectHelper<IfcStructuralPointAction,0>::Construct )
|
||||||
, SchemaEntry("ifcspatialstructureelement",&STEP::ObjectHelper<IfcSpatialStructureElement,2>::Construct )
|
, SchemaEntry("ifcspatialstructureelement",&STEP::ObjectHelper<IfcSpatialStructureElement,2>::Construct )
|
||||||
, SchemaEntry("ifcspace",&STEP::ObjectHelper<IfcSpace,2>::Construct )
|
, SchemaEntry("ifcspace",&STEP::ObjectHelper<IfcSpace,2>::Construct )
|
||||||
|
@ -583,7 +586,6 @@ namespace {
|
||||||
, SchemaEntry("ifcvertex",&STEP::ObjectHelper<IfcVertex,0>::Construct )
|
, SchemaEntry("ifcvertex",&STEP::ObjectHelper<IfcVertex,0>::Construct )
|
||||||
, SchemaEntry("ifcvertexpoint",&STEP::ObjectHelper<IfcVertexPoint,1>::Construct )
|
, SchemaEntry("ifcvertexpoint",&STEP::ObjectHelper<IfcVertexPoint,1>::Construct )
|
||||||
, SchemaEntry("ifcflowinstrumenttype",&STEP::ObjectHelper<IfcFlowInstrumentType,1>::Construct )
|
, SchemaEntry("ifcflowinstrumenttype",&STEP::ObjectHelper<IfcFlowInstrumentType,1>::Construct )
|
||||||
, SchemaEntry("ifcparameterizedprofiledef",&STEP::ObjectHelper<IfcParameterizedProfileDef,1>::Construct )
|
|
||||||
, SchemaEntry("ifcushapeprofiledef",&STEP::ObjectHelper<IfcUShapeProfileDef,8>::Construct )
|
, SchemaEntry("ifcushapeprofiledef",&STEP::ObjectHelper<IfcUShapeProfileDef,8>::Construct )
|
||||||
, SchemaEntry("ifcramp",&STEP::ObjectHelper<IfcRamp,1>::Construct )
|
, SchemaEntry("ifcramp",&STEP::ObjectHelper<IfcRamp,1>::Construct )
|
||||||
, SchemaEntry("ifcfillareastyle",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
, SchemaEntry("ifcfillareastyle",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
||||||
|
@ -869,7 +871,6 @@ namespace {
|
||||||
, SchemaEntry("ifcrelaggregates",&STEP::ObjectHelper<IfcRelAggregates,0>::Construct )
|
, SchemaEntry("ifcrelaggregates",&STEP::ObjectHelper<IfcRelAggregates,0>::Construct )
|
||||||
, SchemaEntry("ifcboilertype",&STEP::ObjectHelper<IfcBoilerType,1>::Construct )
|
, SchemaEntry("ifcboilertype",&STEP::ObjectHelper<IfcBoilerType,1>::Construct )
|
||||||
, SchemaEntry("ifcrelprojectselement",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
, SchemaEntry("ifcrelprojectselement",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
||||||
, SchemaEntry("ifccolourspecification",&STEP::ObjectHelper<IfcColourSpecification,1>::Construct )
|
|
||||||
, SchemaEntry("ifccolourrgb",&STEP::ObjectHelper<IfcColourRgb,3>::Construct )
|
, SchemaEntry("ifccolourrgb",&STEP::ObjectHelper<IfcColourRgb,3>::Construct )
|
||||||
, SchemaEntry("ifcrelconnectsstructuralactivity",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
, SchemaEntry("ifcrelconnectsstructuralactivity",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
||||||
, SchemaEntry("ifcdoorstyle",&STEP::ObjectHelper<IfcDoorStyle,4>::Construct )
|
, SchemaEntry("ifcdoorstyle",&STEP::ObjectHelper<IfcDoorStyle,4>::Construct )
|
||||||
|
@ -881,7 +882,6 @@ namespace {
|
||||||
, SchemaEntry("ifcsensortype",&STEP::ObjectHelper<IfcSensorType,1>::Construct )
|
, SchemaEntry("ifcsensortype",&STEP::ObjectHelper<IfcSensorType,1>::Construct )
|
||||||
, SchemaEntry("ifcairterminalboxtype",&STEP::ObjectHelper<IfcAirTerminalBoxType,1>::Construct )
|
, SchemaEntry("ifcairterminalboxtype",&STEP::ObjectHelper<IfcAirTerminalBoxType,1>::Construct )
|
||||||
, SchemaEntry("ifcannotationsurfaceoccurrence",&STEP::ObjectHelper<IfcAnnotationSurfaceOccurrence,0>::Construct )
|
, SchemaEntry("ifcannotationsurfaceoccurrence",&STEP::ObjectHelper<IfcAnnotationSurfaceOccurrence,0>::Construct )
|
||||||
, SchemaEntry("ifczshapeprofiledef",&STEP::ObjectHelper<IfcZShapeProfileDef,6>::Construct )
|
|
||||||
, SchemaEntry("ifcclassificationnotation",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
, SchemaEntry("ifcclassificationnotation",&STEP::ObjectHelper<NotImplemented,0>::Construct )
|
||||||
, SchemaEntry("ifcrationalbeziercurve",&STEP::ObjectHelper<IfcRationalBezierCurve,1>::Construct )
|
, SchemaEntry("ifcrationalbeziercurve",&STEP::ObjectHelper<IfcRationalBezierCurve,1>::Construct )
|
||||||
, SchemaEntry("ifccartesiantransformationoperator2d",&STEP::ObjectHelper<IfcCartesianTransformationOperator2D,0>::Construct )
|
, SchemaEntry("ifccartesiantransformationoperator2d",&STEP::ObjectHelper<IfcCartesianTransformationOperator2D,0>::Construct )
|
||||||
|
@ -1052,6 +1052,44 @@ template <> size_t GenericFill<NotImplemented>(const STEP::DB& db, const LIST& p
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
|
template <> size_t GenericFill<IfcProfileDef>(const DB& db, const LIST& params, IfcProfileDef* in)
|
||||||
|
{
|
||||||
|
size_t base = 0;
|
||||||
|
if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcProfileDef"); } do { // convert the 'ProfileType' argument
|
||||||
|
boost::shared_ptr<const DataType> arg = params[base++];
|
||||||
|
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcProfileDef,2>::aux_is_derived[0]=true; break; }
|
||||||
|
try { GenericConvert( in->ProfileType, arg, db ); break; }
|
||||||
|
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProfileDef to be a `IfcProfileTypeEnum`")); }
|
||||||
|
} while(0);
|
||||||
|
do { // convert the 'ProfileName' argument
|
||||||
|
boost::shared_ptr<const DataType> arg = params[base++];
|
||||||
|
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcProfileDef,2>::aux_is_derived[1]=true; break; }
|
||||||
|
if (dynamic_cast<const UNSET*>(&*arg)) break;
|
||||||
|
try { GenericConvert( in->ProfileName, arg, db ); break; }
|
||||||
|
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProfileDef to be a `IfcLabel`")); }
|
||||||
|
} while(0);
|
||||||
|
return base;
|
||||||
|
}
|
||||||
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
|
template <> size_t GenericFill<IfcParameterizedProfileDef>(const DB& db, const LIST& params, IfcParameterizedProfileDef* in)
|
||||||
|
{
|
||||||
|
size_t base = GenericFill(db,params,static_cast<IfcProfileDef*>(in));
|
||||||
|
if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcParameterizedProfileDef"); } do { // convert the 'Position' argument
|
||||||
|
boost::shared_ptr<const DataType> arg = params[base++];
|
||||||
|
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcParameterizedProfileDef,1>::aux_is_derived[0]=true; break; }
|
||||||
|
try { GenericConvert( in->Position, arg, db ); break; }
|
||||||
|
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcParameterizedProfileDef to be a `IfcAxis2Placement2D`")); }
|
||||||
|
} while(0);
|
||||||
|
return base;
|
||||||
|
}
|
||||||
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
|
template <> size_t GenericFill<IfcZShapeProfileDef>(const DB& db, const LIST& params, IfcZShapeProfileDef* in)
|
||||||
|
{
|
||||||
|
size_t base = GenericFill(db,params,static_cast<IfcParameterizedProfileDef*>(in));
|
||||||
|
// this data structure is not used yet, so there is no code generated to fill its members
|
||||||
|
return base;
|
||||||
|
}
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
template <> size_t GenericFill<IfcRoot>(const DB& db, const LIST& params, IfcRoot* in)
|
template <> size_t GenericFill<IfcRoot>(const DB& db, const LIST& params, IfcRoot* in)
|
||||||
{
|
{
|
||||||
|
@ -1519,25 +1557,6 @@ template <> size_t GenericFill<IfcPlacement>(const DB& db, const LIST& params, I
|
||||||
return base;
|
return base;
|
||||||
}
|
}
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
template <> size_t GenericFill<IfcProfileDef>(const DB& db, const LIST& params, IfcProfileDef* in)
|
|
||||||
{
|
|
||||||
size_t base = 0;
|
|
||||||
if (params.GetSize() < 2) { throw STEP::TypeError("expected 2 arguments to IfcProfileDef"); } do { // convert the 'ProfileType' argument
|
|
||||||
boost::shared_ptr<const DataType> arg = params[base++];
|
|
||||||
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcProfileDef,2>::aux_is_derived[0]=true; break; }
|
|
||||||
try { GenericConvert( in->ProfileType, arg, db ); break; }
|
|
||||||
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcProfileDef to be a `IfcProfileTypeEnum`")); }
|
|
||||||
} while(0);
|
|
||||||
do { // convert the 'ProfileName' argument
|
|
||||||
boost::shared_ptr<const DataType> arg = params[base++];
|
|
||||||
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcProfileDef,2>::aux_is_derived[1]=true; break; }
|
|
||||||
if (dynamic_cast<const UNSET*>(&*arg)) break;
|
|
||||||
try { GenericConvert( in->ProfileName, arg, db ); break; }
|
|
||||||
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcProfileDef to be a `IfcLabel`")); }
|
|
||||||
} while(0);
|
|
||||||
return base;
|
|
||||||
}
|
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
|
||||||
template <> size_t GenericFill<IfcArbitraryClosedProfileDef>(const DB& db, const LIST& params, IfcArbitraryClosedProfileDef* in)
|
template <> size_t GenericFill<IfcArbitraryClosedProfileDef>(const DB& db, const LIST& params, IfcArbitraryClosedProfileDef* in)
|
||||||
{
|
{
|
||||||
size_t base = GenericFill(db,params,static_cast<IfcProfileDef*>(in));
|
size_t base = GenericFill(db,params,static_cast<IfcProfileDef*>(in));
|
||||||
|
@ -2068,6 +2087,19 @@ template <> size_t GenericFill<IfcAxis1Placement>(const DB& db, const LIST& para
|
||||||
return base;
|
return base;
|
||||||
}
|
}
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
|
template <> size_t GenericFill<IfcColourSpecification>(const DB& db, const LIST& params, IfcColourSpecification* in)
|
||||||
|
{
|
||||||
|
size_t base = 0;
|
||||||
|
if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcColourSpecification"); } do { // convert the 'Name' argument
|
||||||
|
boost::shared_ptr<const DataType> arg = params[base++];
|
||||||
|
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcColourSpecification,1>::aux_is_derived[0]=true; break; }
|
||||||
|
if (dynamic_cast<const UNSET*>(&*arg)) break;
|
||||||
|
try { GenericConvert( in->Name, arg, db ); break; }
|
||||||
|
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcColourSpecification to be a `IfcLabel`")); }
|
||||||
|
} while(0);
|
||||||
|
return base;
|
||||||
|
}
|
||||||
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
template <> size_t GenericFill<IfcStructuralPointAction>(const DB& db, const LIST& params, IfcStructuralPointAction* in)
|
template <> size_t GenericFill<IfcStructuralPointAction>(const DB& db, const LIST& params, IfcStructuralPointAction* in)
|
||||||
{
|
{
|
||||||
size_t base = GenericFill(db,params,static_cast<IfcStructuralAction*>(in));
|
size_t base = GenericFill(db,params,static_cast<IfcStructuralAction*>(in));
|
||||||
|
@ -2236,18 +2268,6 @@ template <> size_t GenericFill<IfcFlowInstrumentType>(const DB& db, const LIST&
|
||||||
return base;
|
return base;
|
||||||
}
|
}
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
template <> size_t GenericFill<IfcParameterizedProfileDef>(const DB& db, const LIST& params, IfcParameterizedProfileDef* in)
|
|
||||||
{
|
|
||||||
size_t base = GenericFill(db,params,static_cast<IfcProfileDef*>(in));
|
|
||||||
if (params.GetSize() < 3) { throw STEP::TypeError("expected 3 arguments to IfcParameterizedProfileDef"); } do { // convert the 'Position' argument
|
|
||||||
boost::shared_ptr<const DataType> arg = params[base++];
|
|
||||||
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcParameterizedProfileDef,1>::aux_is_derived[0]=true; break; }
|
|
||||||
try { GenericConvert( in->Position, arg, db ); break; }
|
|
||||||
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcParameterizedProfileDef to be a `IfcAxis2Placement2D`")); }
|
|
||||||
} while(0);
|
|
||||||
return base;
|
|
||||||
}
|
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
|
||||||
template <> size_t GenericFill<IfcUShapeProfileDef>(const DB& db, const LIST& params, IfcUShapeProfileDef* in)
|
template <> size_t GenericFill<IfcUShapeProfileDef>(const DB& db, const LIST& params, IfcUShapeProfileDef* in)
|
||||||
{
|
{
|
||||||
size_t base = GenericFill(db,params,static_cast<IfcParameterizedProfileDef*>(in));
|
size_t base = GenericFill(db,params,static_cast<IfcParameterizedProfileDef*>(in));
|
||||||
|
@ -3375,7 +3395,32 @@ template <> size_t GenericFill<IfcSubContractResource>(const DB& db, const LIST&
|
||||||
template <> size_t GenericFill<IfcSweptDiskSolid>(const DB& db, const LIST& params, IfcSweptDiskSolid* in)
|
template <> size_t GenericFill<IfcSweptDiskSolid>(const DB& db, const LIST& params, IfcSweptDiskSolid* in)
|
||||||
{
|
{
|
||||||
size_t base = GenericFill(db,params,static_cast<IfcSolidModel*>(in));
|
size_t base = GenericFill(db,params,static_cast<IfcSolidModel*>(in));
|
||||||
// this data structure is not used yet, so there is no code generated to fill its members
|
if (params.GetSize() < 5) { throw STEP::TypeError("expected 5 arguments to IfcSweptDiskSolid"); } do { // convert the 'Directrix' argument
|
||||||
|
boost::shared_ptr<const DataType> arg = params[base++];
|
||||||
|
try { GenericConvert( in->Directrix, arg, db ); break; }
|
||||||
|
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcSweptDiskSolid to be a `IfcCurve`")); }
|
||||||
|
} while(0);
|
||||||
|
do { // convert the 'Radius' argument
|
||||||
|
boost::shared_ptr<const DataType> arg = params[base++];
|
||||||
|
try { GenericConvert( in->Radius, arg, db ); break; }
|
||||||
|
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 1 to IfcSweptDiskSolid to be a `IfcPositiveLengthMeasure`")); }
|
||||||
|
} while(0);
|
||||||
|
do { // convert the 'InnerRadius' argument
|
||||||
|
boost::shared_ptr<const DataType> arg = params[base++];
|
||||||
|
if (dynamic_cast<const UNSET*>(&*arg)) break;
|
||||||
|
try { GenericConvert( in->InnerRadius, arg, db ); break; }
|
||||||
|
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 2 to IfcSweptDiskSolid to be a `IfcPositiveLengthMeasure`")); }
|
||||||
|
} while(0);
|
||||||
|
do { // convert the 'StartParam' argument
|
||||||
|
boost::shared_ptr<const DataType> arg = params[base++];
|
||||||
|
try { GenericConvert( in->StartParam, arg, db ); break; }
|
||||||
|
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 3 to IfcSweptDiskSolid to be a `IfcParameterValue`")); }
|
||||||
|
} while(0);
|
||||||
|
do { // convert the 'EndParam' argument
|
||||||
|
boost::shared_ptr<const DataType> arg = params[base++];
|
||||||
|
try { GenericConvert( in->EndParam, arg, db ); break; }
|
||||||
|
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 4 to IfcSweptDiskSolid to be a `IfcParameterValue`")); }
|
||||||
|
} while(0);
|
||||||
return base;
|
return base;
|
||||||
}
|
}
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
|
@ -3980,19 +4025,6 @@ template <> size_t GenericFill<IfcBoilerType>(const DB& db, const LIST& params,
|
||||||
return base;
|
return base;
|
||||||
}
|
}
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
template <> size_t GenericFill<IfcColourSpecification>(const DB& db, const LIST& params, IfcColourSpecification* in)
|
|
||||||
{
|
|
||||||
size_t base = 0;
|
|
||||||
if (params.GetSize() < 1) { throw STEP::TypeError("expected 1 arguments to IfcColourSpecification"); } do { // convert the 'Name' argument
|
|
||||||
boost::shared_ptr<const DataType> arg = params[base++];
|
|
||||||
if (dynamic_cast<const ISDERIVED*>(&*arg)) { in->ObjectHelper<Assimp::IFC::IfcColourSpecification,1>::aux_is_derived[0]=true; break; }
|
|
||||||
if (dynamic_cast<const UNSET*>(&*arg)) break;
|
|
||||||
try { GenericConvert( in->Name, arg, db ); break; }
|
|
||||||
catch (const TypeError& t) { throw TypeError(t.what() + std::string(" - expected argument 0 to IfcColourSpecification to be a `IfcLabel`")); }
|
|
||||||
} while(0);
|
|
||||||
return base;
|
|
||||||
}
|
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
|
||||||
template <> size_t GenericFill<IfcColourRgb>(const DB& db, const LIST& params, IfcColourRgb* in)
|
template <> size_t GenericFill<IfcColourRgb>(const DB& db, const LIST& params, IfcColourRgb* in)
|
||||||
{
|
{
|
||||||
size_t base = GenericFill(db,params,static_cast<IfcColourSpecification*>(in));
|
size_t base = GenericFill(db,params,static_cast<IfcColourSpecification*>(in));
|
||||||
|
@ -4063,13 +4095,6 @@ template <> size_t GenericFill<IfcAnnotationSurfaceOccurrence>(const DB& db, con
|
||||||
return base;
|
return base;
|
||||||
}
|
}
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
// -----------------------------------------------------------------------------------------------------------
|
||||||
template <> size_t GenericFill<IfcZShapeProfileDef>(const DB& db, const LIST& params, IfcZShapeProfileDef* in)
|
|
||||||
{
|
|
||||||
size_t base = GenericFill(db,params,static_cast<IfcParameterizedProfileDef*>(in));
|
|
||||||
// this data structure is not used yet, so there is no code generated to fill its members
|
|
||||||
return base;
|
|
||||||
}
|
|
||||||
// -----------------------------------------------------------------------------------------------------------
|
|
||||||
template <> size_t GenericFill<IfcRationalBezierCurve>(const DB& db, const LIST& params, IfcRationalBezierCurve* in)
|
template <> size_t GenericFill<IfcRationalBezierCurve>(const DB& db, const LIST& params, IfcRationalBezierCurve* in)
|
||||||
{
|
{
|
||||||
size_t base = GenericFill(db,params,static_cast<IfcBezierCurve*>(in));
|
size_t base = GenericFill(db,params,static_cast<IfcBezierCurve*>(in));
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
/*
|
/*
|
||||||
Open Asset Import Library (assimp)
|
Open Asset Import Library (ASSIMP)
|
||||||
----------------------------------------------------------------------
|
----------------------------------------------------------------------
|
||||||
|
|
||||||
Copyright (c) 2006-2012, assimp team
|
Copyright (c) 2006-2010, ASSIMP Development 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,
|
||||||
|
@ -18,10 +18,10 @@ following conditions are met:
|
||||||
following disclaimer in the documentation and/or other
|
following disclaimer in the documentation and/or other
|
||||||
materials provided with the distribution.
|
materials provided with the distribution.
|
||||||
|
|
||||||
* Neither the name of the assimp team, nor the names of its
|
* Neither the name of the ASSIMP team, nor the names of its
|
||||||
contributors may be used to endorse or promote products
|
contributors may be used to endorse or promote products
|
||||||
derived from this software without specific prior
|
derived from this software without specific prior
|
||||||
written permission of the assimp team.
|
written permission of the ASSIMP Development Team.
|
||||||
|
|
||||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||||
|
@ -149,8 +149,6 @@ namespace IFC {
|
||||||
typedef ENUMERATION IfcThermalLoadTypeEnum;
|
typedef ENUMERATION IfcThermalLoadTypeEnum;
|
||||||
// C++ wrapper type for IfcIonConcentrationMeasure
|
// C++ wrapper type for IfcIonConcentrationMeasure
|
||||||
typedef REAL IfcIonConcentrationMeasure;
|
typedef REAL IfcIonConcentrationMeasure;
|
||||||
// C++ wrapper type for IfcObjectReferenceSelect
|
|
||||||
typedef SELECT IfcObjectReferenceSelect;
|
|
||||||
// C++ wrapper type for IfcClassificationNotationSelect
|
// C++ wrapper type for IfcClassificationNotationSelect
|
||||||
typedef SELECT IfcClassificationNotationSelect;
|
typedef SELECT IfcClassificationNotationSelect;
|
||||||
// C++ wrapper type for IfcBSplineCurveForm
|
// C++ wrapper type for IfcBSplineCurveForm
|
||||||
|
@ -273,6 +271,8 @@ namespace IFC {
|
||||||
typedef REAL IfcRadioActivityMeasure;
|
typedef REAL IfcRadioActivityMeasure;
|
||||||
// C++ wrapper type for IfcSymbolStyleSelect
|
// C++ wrapper type for IfcSymbolStyleSelect
|
||||||
typedef SELECT IfcSymbolStyleSelect;
|
typedef SELECT IfcSymbolStyleSelect;
|
||||||
|
// C++ wrapper type for IfcObjectReferenceSelect
|
||||||
|
typedef SELECT IfcObjectReferenceSelect;
|
||||||
// C++ wrapper type for IfcRoofTypeEnum
|
// C++ wrapper type for IfcRoofTypeEnum
|
||||||
typedef ENUMERATION IfcRoofTypeEnum;
|
typedef ENUMERATION IfcRoofTypeEnum;
|
||||||
// C++ wrapper type for IfcReal
|
// C++ wrapper type for IfcReal
|
||||||
|
@ -293,6 +293,8 @@ namespace IFC {
|
||||||
typedef ENUMERATION IfcTransformerTypeEnum;
|
typedef ENUMERATION IfcTransformerTypeEnum;
|
||||||
// C++ wrapper type for IfcSurfaceSide
|
// C++ wrapper type for IfcSurfaceSide
|
||||||
typedef ENUMERATION IfcSurfaceSide;
|
typedef ENUMERATION IfcSurfaceSide;
|
||||||
|
// C++ wrapper type for IfcSpaceHeaterTypeEnum
|
||||||
|
typedef ENUMERATION IfcSpaceHeaterTypeEnum;
|
||||||
// C++ wrapper type for IfcThermalTransmittanceMeasure
|
// C++ wrapper type for IfcThermalTransmittanceMeasure
|
||||||
typedef REAL IfcThermalTransmittanceMeasure;
|
typedef REAL IfcThermalTransmittanceMeasure;
|
||||||
// C++ wrapper type for IfcTubeBundleTypeEnum
|
// C++ wrapper type for IfcTubeBundleTypeEnum
|
||||||
|
@ -433,8 +435,6 @@ namespace IFC {
|
||||||
typedef ENUMERATION IfcBeamTypeEnum;
|
typedef ENUMERATION IfcBeamTypeEnum;
|
||||||
// C++ wrapper type for IfcStateEnum
|
// C++ wrapper type for IfcStateEnum
|
||||||
typedef ENUMERATION IfcStateEnum;
|
typedef ENUMERATION IfcStateEnum;
|
||||||
// C++ wrapper type for IfcSpaceHeaterTypeEnum
|
|
||||||
typedef ENUMERATION IfcSpaceHeaterTypeEnum;
|
|
||||||
// C++ wrapper type for IfcSectionTypeEnum
|
// C++ wrapper type for IfcSectionTypeEnum
|
||||||
typedef ENUMERATION IfcSectionTypeEnum;
|
typedef ENUMERATION IfcSectionTypeEnum;
|
||||||
// C++ wrapper type for IfcFootingTypeEnum
|
// C++ wrapper type for IfcFootingTypeEnum
|
||||||
|
@ -719,6 +719,9 @@ namespace IFC {
|
||||||
// IFC Entities
|
// IFC Entities
|
||||||
// ******************************************************************************
|
// ******************************************************************************
|
||||||
|
|
||||||
|
struct IfcProfileDef;
|
||||||
|
struct IfcParameterizedProfileDef;
|
||||||
|
struct IfcZShapeProfileDef;
|
||||||
struct IfcRoot;
|
struct IfcRoot;
|
||||||
struct IfcObjectDefinition;
|
struct IfcObjectDefinition;
|
||||||
struct IfcTypeObject;
|
struct IfcTypeObject;
|
||||||
|
@ -803,7 +806,6 @@ namespace IFC {
|
||||||
typedef NotImplemented IfcPreDefinedItem; // (not currently used by Assimp)
|
typedef NotImplemented IfcPreDefinedItem; // (not currently used by Assimp)
|
||||||
typedef NotImplemented IfcPreDefinedColour; // (not currently used by Assimp)
|
typedef NotImplemented IfcPreDefinedColour; // (not currently used by Assimp)
|
||||||
typedef NotImplemented IfcDraughtingPreDefinedColour; // (not currently used by Assimp)
|
typedef NotImplemented IfcDraughtingPreDefinedColour; // (not currently used by Assimp)
|
||||||
struct IfcProfileDef;
|
|
||||||
struct IfcArbitraryClosedProfileDef;
|
struct IfcArbitraryClosedProfileDef;
|
||||||
struct IfcCurve;
|
struct IfcCurve;
|
||||||
struct IfcConic;
|
struct IfcConic;
|
||||||
|
@ -890,6 +892,7 @@ namespace IFC {
|
||||||
struct IfcAxis1Placement;
|
struct IfcAxis1Placement;
|
||||||
typedef NotImplemented IfcLightIntensityDistribution; // (not currently used by Assimp)
|
typedef NotImplemented IfcLightIntensityDistribution; // (not currently used by Assimp)
|
||||||
typedef NotImplemented IfcPreDefinedSymbol; // (not currently used by Assimp)
|
typedef NotImplemented IfcPreDefinedSymbol; // (not currently used by Assimp)
|
||||||
|
struct IfcColourSpecification;
|
||||||
struct IfcStructuralPointAction;
|
struct IfcStructuralPointAction;
|
||||||
struct IfcSpatialStructureElement;
|
struct IfcSpatialStructureElement;
|
||||||
struct IfcSpace;
|
struct IfcSpace;
|
||||||
|
@ -923,7 +926,6 @@ namespace IFC {
|
||||||
struct IfcVertex;
|
struct IfcVertex;
|
||||||
struct IfcVertexPoint;
|
struct IfcVertexPoint;
|
||||||
struct IfcFlowInstrumentType;
|
struct IfcFlowInstrumentType;
|
||||||
struct IfcParameterizedProfileDef;
|
|
||||||
struct IfcUShapeProfileDef;
|
struct IfcUShapeProfileDef;
|
||||||
struct IfcRamp;
|
struct IfcRamp;
|
||||||
typedef NotImplemented IfcFillAreaStyle; // (not currently used by Assimp)
|
typedef NotImplemented IfcFillAreaStyle; // (not currently used by Assimp)
|
||||||
|
@ -1209,7 +1211,6 @@ namespace IFC {
|
||||||
struct IfcRelAggregates;
|
struct IfcRelAggregates;
|
||||||
struct IfcBoilerType;
|
struct IfcBoilerType;
|
||||||
typedef NotImplemented IfcRelProjectsElement; // (not currently used by Assimp)
|
typedef NotImplemented IfcRelProjectsElement; // (not currently used by Assimp)
|
||||||
struct IfcColourSpecification;
|
|
||||||
struct IfcColourRgb;
|
struct IfcColourRgb;
|
||||||
typedef NotImplemented IfcRelConnectsStructuralActivity; // (not currently used by Assimp)
|
typedef NotImplemented IfcRelConnectsStructuralActivity; // (not currently used by Assimp)
|
||||||
struct IfcDoorStyle;
|
struct IfcDoorStyle;
|
||||||
|
@ -1221,7 +1222,6 @@ namespace IFC {
|
||||||
struct IfcSensorType;
|
struct IfcSensorType;
|
||||||
struct IfcAirTerminalBoxType;
|
struct IfcAirTerminalBoxType;
|
||||||
struct IfcAnnotationSurfaceOccurrence;
|
struct IfcAnnotationSurfaceOccurrence;
|
||||||
struct IfcZShapeProfileDef;
|
|
||||||
typedef NotImplemented IfcClassificationNotation; // (not currently used by Assimp)
|
typedef NotImplemented IfcClassificationNotation; // (not currently used by Assimp)
|
||||||
struct IfcRationalBezierCurve;
|
struct IfcRationalBezierCurve;
|
||||||
struct IfcCartesianTransformationOperator2D;
|
struct IfcCartesianTransformationOperator2D;
|
||||||
|
@ -1375,6 +1375,27 @@ namespace IFC {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
// C++ wrapper for IfcProfileDef
|
||||||
|
struct IfcProfileDef : ObjectHelper<IfcProfileDef,2> { IfcProfileDef() : Object("IfcProfileDef") {}
|
||||||
|
IfcProfileTypeEnum::Out ProfileType;
|
||||||
|
Maybe< IfcLabel::Out > ProfileName;
|
||||||
|
};
|
||||||
|
|
||||||
|
// C++ wrapper for IfcParameterizedProfileDef
|
||||||
|
struct IfcParameterizedProfileDef : IfcProfileDef, ObjectHelper<IfcParameterizedProfileDef,1> { IfcParameterizedProfileDef() : Object("IfcParameterizedProfileDef") {}
|
||||||
|
Lazy< IfcAxis2Placement2D > Position;
|
||||||
|
};
|
||||||
|
|
||||||
|
// C++ wrapper for IfcZShapeProfileDef
|
||||||
|
struct IfcZShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcZShapeProfileDef,6> { IfcZShapeProfileDef() : Object("IfcZShapeProfileDef") {}
|
||||||
|
IfcPositiveLengthMeasure::Out Depth;
|
||||||
|
IfcPositiveLengthMeasure::Out FlangeWidth;
|
||||||
|
IfcPositiveLengthMeasure::Out WebThickness;
|
||||||
|
IfcPositiveLengthMeasure::Out FlangeThickness;
|
||||||
|
Maybe< IfcPositiveLengthMeasure::Out > FilletRadius;
|
||||||
|
Maybe< IfcPositiveLengthMeasure::Out > EdgeRadius;
|
||||||
|
};
|
||||||
|
|
||||||
// C++ wrapper for IfcRoot
|
// C++ wrapper for IfcRoot
|
||||||
struct IfcRoot : ObjectHelper<IfcRoot,4> { IfcRoot() : Object("IfcRoot") {}
|
struct IfcRoot : ObjectHelper<IfcRoot,4> { IfcRoot() : Object("IfcRoot") {}
|
||||||
IfcGloballyUniqueId::Out GlobalId;
|
IfcGloballyUniqueId::Out GlobalId;
|
||||||
|
@ -1654,12 +1675,6 @@ namespace IFC {
|
||||||
Lazy< IfcCartesianPoint > Location;
|
Lazy< IfcCartesianPoint > Location;
|
||||||
};
|
};
|
||||||
|
|
||||||
// C++ wrapper for IfcProfileDef
|
|
||||||
struct IfcProfileDef : ObjectHelper<IfcProfileDef,2> { IfcProfileDef() : Object("IfcProfileDef") {}
|
|
||||||
IfcProfileTypeEnum::Out ProfileType;
|
|
||||||
Maybe< IfcLabel::Out > ProfileName;
|
|
||||||
};
|
|
||||||
|
|
||||||
// C++ wrapper for IfcArbitraryClosedProfileDef
|
// C++ wrapper for IfcArbitraryClosedProfileDef
|
||||||
struct IfcArbitraryClosedProfileDef : IfcProfileDef, ObjectHelper<IfcArbitraryClosedProfileDef,1> { IfcArbitraryClosedProfileDef() : Object("IfcArbitraryClosedProfileDef") {}
|
struct IfcArbitraryClosedProfileDef : IfcProfileDef, ObjectHelper<IfcArbitraryClosedProfileDef,1> { IfcArbitraryClosedProfileDef() : Object("IfcArbitraryClosedProfileDef") {}
|
||||||
Lazy< IfcCurve > OuterCurve;
|
Lazy< IfcCurve > OuterCurve;
|
||||||
|
@ -1997,6 +2012,11 @@ namespace IFC {
|
||||||
Maybe< Lazy< IfcDirection > > Axis;
|
Maybe< Lazy< IfcDirection > > Axis;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// C++ wrapper for IfcColourSpecification
|
||||||
|
struct IfcColourSpecification : ObjectHelper<IfcColourSpecification,1> { IfcColourSpecification() : Object("IfcColourSpecification") {}
|
||||||
|
Maybe< IfcLabel::Out > Name;
|
||||||
|
};
|
||||||
|
|
||||||
// C++ wrapper for IfcStructuralPointAction
|
// C++ wrapper for IfcStructuralPointAction
|
||||||
struct IfcStructuralPointAction : IfcStructuralAction, ObjectHelper<IfcStructuralPointAction,0> { IfcStructuralPointAction() : Object("IfcStructuralPointAction") {}
|
struct IfcStructuralPointAction : IfcStructuralAction, ObjectHelper<IfcStructuralPointAction,0> { IfcStructuralPointAction() : Object("IfcStructuralPointAction") {}
|
||||||
|
|
||||||
|
@ -2103,11 +2123,6 @@ namespace IFC {
|
||||||
IfcFlowInstrumentTypeEnum::Out PredefinedType;
|
IfcFlowInstrumentTypeEnum::Out PredefinedType;
|
||||||
};
|
};
|
||||||
|
|
||||||
// C++ wrapper for IfcParameterizedProfileDef
|
|
||||||
struct IfcParameterizedProfileDef : IfcProfileDef, ObjectHelper<IfcParameterizedProfileDef,1> { IfcParameterizedProfileDef() : Object("IfcParameterizedProfileDef") {}
|
|
||||||
Lazy< IfcAxis2Placement2D > Position;
|
|
||||||
};
|
|
||||||
|
|
||||||
// C++ wrapper for IfcUShapeProfileDef
|
// C++ wrapper for IfcUShapeProfileDef
|
||||||
struct IfcUShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcUShapeProfileDef,8> { IfcUShapeProfileDef() : Object("IfcUShapeProfileDef") {}
|
struct IfcUShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcUShapeProfileDef,8> { IfcUShapeProfileDef() : Object("IfcUShapeProfileDef") {}
|
||||||
IfcPositiveLengthMeasure::Out Depth;
|
IfcPositiveLengthMeasure::Out Depth;
|
||||||
|
@ -3215,11 +3230,6 @@ namespace IFC {
|
||||||
IfcBoilerTypeEnum::Out PredefinedType;
|
IfcBoilerTypeEnum::Out PredefinedType;
|
||||||
};
|
};
|
||||||
|
|
||||||
// C++ wrapper for IfcColourSpecification
|
|
||||||
struct IfcColourSpecification : ObjectHelper<IfcColourSpecification,1> { IfcColourSpecification() : Object("IfcColourSpecification") {}
|
|
||||||
Maybe< IfcLabel::Out > Name;
|
|
||||||
};
|
|
||||||
|
|
||||||
// C++ wrapper for IfcColourRgb
|
// C++ wrapper for IfcColourRgb
|
||||||
struct IfcColourRgb : IfcColourSpecification, ObjectHelper<IfcColourRgb,3> { IfcColourRgb() : Object("IfcColourRgb") {}
|
struct IfcColourRgb : IfcColourSpecification, ObjectHelper<IfcColourRgb,3> { IfcColourRgb() : Object("IfcColourRgb") {}
|
||||||
IfcNormalisedRatioMeasure::Out Red;
|
IfcNormalisedRatioMeasure::Out Red;
|
||||||
|
@ -3270,16 +3280,6 @@ namespace IFC {
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
// C++ wrapper for IfcZShapeProfileDef
|
|
||||||
struct IfcZShapeProfileDef : IfcParameterizedProfileDef, ObjectHelper<IfcZShapeProfileDef,6> { IfcZShapeProfileDef() : Object("IfcZShapeProfileDef") {}
|
|
||||||
IfcPositiveLengthMeasure::Out Depth;
|
|
||||||
IfcPositiveLengthMeasure::Out FlangeWidth;
|
|
||||||
IfcPositiveLengthMeasure::Out WebThickness;
|
|
||||||
IfcPositiveLengthMeasure::Out FlangeThickness;
|
|
||||||
Maybe< IfcPositiveLengthMeasure::Out > FilletRadius;
|
|
||||||
Maybe< IfcPositiveLengthMeasure::Out > EdgeRadius;
|
|
||||||
};
|
|
||||||
|
|
||||||
// C++ wrapper for IfcRationalBezierCurve
|
// C++ wrapper for IfcRationalBezierCurve
|
||||||
struct IfcRationalBezierCurve : IfcBezierCurve, ObjectHelper<IfcRationalBezierCurve,1> { IfcRationalBezierCurve() : Object("IfcRationalBezierCurve") {}
|
struct IfcRationalBezierCurve : IfcBezierCurve, ObjectHelper<IfcRationalBezierCurve,1> { IfcRationalBezierCurve() : Object("IfcRationalBezierCurve") {}
|
||||||
ListOf< REAL, 2, 0 >::Out WeightsData;
|
ListOf< REAL, 2, 0 >::Out WeightsData;
|
||||||
|
@ -3829,6 +3829,9 @@ namespace STEP {
|
||||||
|
|
||||||
#define DECL_CONV_STUB(type) template <> size_t GenericFill<IFC::type>(const STEP::DB& db, const EXPRESS::LIST& params, IFC::type* in)
|
#define DECL_CONV_STUB(type) template <> size_t GenericFill<IFC::type>(const STEP::DB& db, const EXPRESS::LIST& params, IFC::type* in)
|
||||||
|
|
||||||
|
DECL_CONV_STUB(IfcProfileDef);
|
||||||
|
DECL_CONV_STUB(IfcParameterizedProfileDef);
|
||||||
|
DECL_CONV_STUB(IfcZShapeProfileDef);
|
||||||
DECL_CONV_STUB(IfcRoot);
|
DECL_CONV_STUB(IfcRoot);
|
||||||
DECL_CONV_STUB(IfcObjectDefinition);
|
DECL_CONV_STUB(IfcObjectDefinition);
|
||||||
DECL_CONV_STUB(IfcTypeObject);
|
DECL_CONV_STUB(IfcTypeObject);
|
||||||
|
@ -3880,7 +3883,6 @@ namespace STEP {
|
||||||
DECL_CONV_STUB(IfcUnitaryEquipmentType);
|
DECL_CONV_STUB(IfcUnitaryEquipmentType);
|
||||||
DECL_CONV_STUB(IfcPort);
|
DECL_CONV_STUB(IfcPort);
|
||||||
DECL_CONV_STUB(IfcPlacement);
|
DECL_CONV_STUB(IfcPlacement);
|
||||||
DECL_CONV_STUB(IfcProfileDef);
|
|
||||||
DECL_CONV_STUB(IfcArbitraryClosedProfileDef);
|
DECL_CONV_STUB(IfcArbitraryClosedProfileDef);
|
||||||
DECL_CONV_STUB(IfcCurve);
|
DECL_CONV_STUB(IfcCurve);
|
||||||
DECL_CONV_STUB(IfcConic);
|
DECL_CONV_STUB(IfcConic);
|
||||||
|
@ -3943,6 +3945,7 @@ namespace STEP {
|
||||||
DECL_CONV_STUB(IfcDimensionCurve);
|
DECL_CONV_STUB(IfcDimensionCurve);
|
||||||
DECL_CONV_STUB(IfcBoundedCurve);
|
DECL_CONV_STUB(IfcBoundedCurve);
|
||||||
DECL_CONV_STUB(IfcAxis1Placement);
|
DECL_CONV_STUB(IfcAxis1Placement);
|
||||||
|
DECL_CONV_STUB(IfcColourSpecification);
|
||||||
DECL_CONV_STUB(IfcStructuralPointAction);
|
DECL_CONV_STUB(IfcStructuralPointAction);
|
||||||
DECL_CONV_STUB(IfcSpatialStructureElement);
|
DECL_CONV_STUB(IfcSpatialStructureElement);
|
||||||
DECL_CONV_STUB(IfcSpace);
|
DECL_CONV_STUB(IfcSpace);
|
||||||
|
@ -3963,7 +3966,6 @@ namespace STEP {
|
||||||
DECL_CONV_STUB(IfcVertex);
|
DECL_CONV_STUB(IfcVertex);
|
||||||
DECL_CONV_STUB(IfcVertexPoint);
|
DECL_CONV_STUB(IfcVertexPoint);
|
||||||
DECL_CONV_STUB(IfcFlowInstrumentType);
|
DECL_CONV_STUB(IfcFlowInstrumentType);
|
||||||
DECL_CONV_STUB(IfcParameterizedProfileDef);
|
|
||||||
DECL_CONV_STUB(IfcUShapeProfileDef);
|
DECL_CONV_STUB(IfcUShapeProfileDef);
|
||||||
DECL_CONV_STUB(IfcRamp);
|
DECL_CONV_STUB(IfcRamp);
|
||||||
DECL_CONV_STUB(IfcCompositeCurve);
|
DECL_CONV_STUB(IfcCompositeCurve);
|
||||||
|
@ -4150,7 +4152,6 @@ namespace STEP {
|
||||||
DECL_CONV_STUB(IfcConstructionMaterialResource);
|
DECL_CONV_STUB(IfcConstructionMaterialResource);
|
||||||
DECL_CONV_STUB(IfcRelAggregates);
|
DECL_CONV_STUB(IfcRelAggregates);
|
||||||
DECL_CONV_STUB(IfcBoilerType);
|
DECL_CONV_STUB(IfcBoilerType);
|
||||||
DECL_CONV_STUB(IfcColourSpecification);
|
|
||||||
DECL_CONV_STUB(IfcColourRgb);
|
DECL_CONV_STUB(IfcColourRgb);
|
||||||
DECL_CONV_STUB(IfcDoorStyle);
|
DECL_CONV_STUB(IfcDoorStyle);
|
||||||
DECL_CONV_STUB(IfcDuctSilencerType);
|
DECL_CONV_STUB(IfcDuctSilencerType);
|
||||||
|
@ -4159,7 +4160,6 @@ namespace STEP {
|
||||||
DECL_CONV_STUB(IfcSensorType);
|
DECL_CONV_STUB(IfcSensorType);
|
||||||
DECL_CONV_STUB(IfcAirTerminalBoxType);
|
DECL_CONV_STUB(IfcAirTerminalBoxType);
|
||||||
DECL_CONV_STUB(IfcAnnotationSurfaceOccurrence);
|
DECL_CONV_STUB(IfcAnnotationSurfaceOccurrence);
|
||||||
DECL_CONV_STUB(IfcZShapeProfileDef);
|
|
||||||
DECL_CONV_STUB(IfcRationalBezierCurve);
|
DECL_CONV_STUB(IfcRationalBezierCurve);
|
||||||
DECL_CONV_STUB(IfcCartesianTransformationOperator2D);
|
DECL_CONV_STUB(IfcCartesianTransformationOperator2D);
|
||||||
DECL_CONV_STUB(IfcCartesianTransformationOperator2DnonUniform);
|
DECL_CONV_STUB(IfcCartesianTransformationOperator2DnonUniform);
|
||||||
|
|
|
@ -100,7 +100,7 @@ struct ConversionData
|
||||||
{
|
{
|
||||||
ConversionData(const STEP::DB& db, const IFC::IfcProject& proj, aiScene* out,const IFCImporter::Settings& settings)
|
ConversionData(const STEP::DB& db, const IFC::IfcProject& proj, aiScene* out,const IFCImporter::Settings& settings)
|
||||||
: len_scale(1.0)
|
: len_scale(1.0)
|
||||||
, angle_scale(1.0)
|
, angle_scale(-1.0)
|
||||||
, db(db)
|
, db(db)
|
||||||
, proj(proj)
|
, proj(proj)
|
||||||
, out(out)
|
, out(out)
|
||||||
|
|
|
@ -53,12 +53,20 @@ class MemoryIOStream : public IOStream
|
||||||
{
|
{
|
||||||
//friend class MemoryIOSystem;
|
//friend class MemoryIOSystem;
|
||||||
public:
|
public:
|
||||||
MemoryIOStream (const uint8_t* buff, size_t len)
|
MemoryIOStream (const uint8_t* buff, size_t len, bool own = false)
|
||||||
: buffer (buff), length(len), pos((size_t)0) {
|
: buffer (buff)
|
||||||
|
, length(len)
|
||||||
|
, pos((size_t)0)
|
||||||
|
, own(own)
|
||||||
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
~MemoryIOStream () {
|
~MemoryIOStream () {
|
||||||
|
if(own) {
|
||||||
|
delete[] buffer;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// -------------------------------------------------------------------
|
// -------------------------------------------------------------------
|
||||||
|
@ -124,6 +132,7 @@ public:
|
||||||
private:
|
private:
|
||||||
const uint8_t* buffer;
|
const uint8_t* buffer;
|
||||||
size_t length,pos;
|
size_t length,pos;
|
||||||
|
bool own;
|
||||||
};
|
};
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
|
@ -172,6 +172,10 @@ inline char_t getName( char_t it, char_t end, std::string &name )
|
||||||
++it;
|
++it;
|
||||||
|
|
||||||
// Get name
|
// Get name
|
||||||
|
// if there is no name, and the previous char is a separator, come back to start
|
||||||
|
while (&(*it) < pStart) {
|
||||||
|
++it;
|
||||||
|
}
|
||||||
std::string strName( pStart, &(*it) );
|
std::string strName( pStart, &(*it) );
|
||||||
if ( strName.empty() )
|
if ( strName.empty() )
|
||||||
return it;
|
return it;
|
||||||
|
|
|
@ -176,8 +176,8 @@ void OgreImporter::InternReadFile(const std::string &pFile, aiScene *pScene, Ass
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DefaultLogger::get()->warn("No skeleton file will be loaded");
|
DefaultLogger::get()->debug("No skeleton file will be loaded");
|
||||||
DefaultLogger::get()->warn(MeshFile->getNodeName());
|
DefaultLogger::get()->debug(MeshFile->getNodeName());
|
||||||
}
|
}
|
||||||
//__________________________________________________________________
|
//__________________________________________________________________
|
||||||
|
|
||||||
|
|
|
@ -131,7 +131,6 @@ void OgreImporter::ReadSubMesh(SubMesh &theSubMesh, XmlReader *Reader)
|
||||||
" TexCoords: ",theSubMesh.Uvs.size(),
|
" TexCoords: ",theSubMesh.Uvs.size(),
|
||||||
" Tantents: ",theSubMesh.Tangents.size()
|
" Tantents: ",theSubMesh.Tangents.size()
|
||||||
));
|
));
|
||||||
DefaultLogger::get()->warn(Reader->getNodeName());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Binary file not shown.
After Width: | Height: | Size: 51 KiB |
|
@ -0,0 +1,645 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||||
|
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
width="557.00226"
|
||||||
|
height="451.52655"
|
||||||
|
id="svg2"
|
||||||
|
version="1.1"
|
||||||
|
inkscape:version="0.48.1 "
|
||||||
|
sodipodi:docname="AssimpAnimation.svg"
|
||||||
|
inkscape:export-filename="A:\Jonathan\Documents\AssimpAnimation.png"
|
||||||
|
inkscape:export-xdpi="100"
|
||||||
|
inkscape:export-ydpi="100">
|
||||||
|
<defs
|
||||||
|
id="defs4">
|
||||||
|
<marker
|
||||||
|
inkscape:stockid="Arrow2Mend"
|
||||||
|
orient="auto"
|
||||||
|
refY="0"
|
||||||
|
refX="0"
|
||||||
|
id="Arrow2Mend"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4020"
|
||||||
|
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||||
|
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||||
|
transform="scale(-0.6,-0.6)"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
<marker
|
||||||
|
inkscape:stockid="Arrow2Lend"
|
||||||
|
orient="auto"
|
||||||
|
refY="0"
|
||||||
|
refX="0"
|
||||||
|
id="Arrow2Lend"
|
||||||
|
style="overflow:visible">
|
||||||
|
<path
|
||||||
|
id="path4014"
|
||||||
|
style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
|
||||||
|
d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
|
||||||
|
transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
</marker>
|
||||||
|
</defs>
|
||||||
|
<sodipodi:namedview
|
||||||
|
id="base"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
inkscape:pageopacity="1"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:zoom="1"
|
||||||
|
inkscape:cx="521.95938"
|
||||||
|
inkscape:cy="235.26058"
|
||||||
|
inkscape:document-units="px"
|
||||||
|
inkscape:current-layer="layer1"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-width="1525"
|
||||||
|
inkscape:window-height="905"
|
||||||
|
inkscape:window-x="223"
|
||||||
|
inkscape:window-y="47"
|
||||||
|
inkscape:window-maximized="0"
|
||||||
|
fit-margin-top="10"
|
||||||
|
fit-margin-left="10"
|
||||||
|
fit-margin-right="10"
|
||||||
|
fit-margin-bottom="10" />
|
||||||
|
<metadata
|
||||||
|
id="metadata7">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<g
|
||||||
|
inkscape:label="Ebene 1"
|
||||||
|
inkscape:groupmode="layer"
|
||||||
|
id="layer1"
|
||||||
|
transform="translate(-7.4185486,-19.719715)">
|
||||||
|
<g
|
||||||
|
id="g3133"
|
||||||
|
transform="translate(-171.43404,-84.903042)">
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path2985"
|
||||||
|
d="m 245.91963,269.53006 0,-64.64286"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path2987"
|
||||||
|
d="m 245.91963,193.26767 0,-26.75116"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path2989"
|
||||||
|
d="M 239.99615,202.05734 203.691,232.24794"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path2991"
|
||||||
|
d="m 253.7539,202.05734 35.54083,25.98684"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path2993"
|
||||||
|
d="m 241.52479,278.87139 c 0,0 -32.86571,32.48356 -31.33708,32.86572"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path2995"
|
||||||
|
d="m 250.31446,278.87139 36.68731,28.66196"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<path
|
||||||
|
transform="translate(-0.38215944,-113.50137)"
|
||||||
|
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
|
||||||
|
sodipodi:ry="2.4840367"
|
||||||
|
sodipodi:rx="2.4840367"
|
||||||
|
sodipodi:cy="276.00519"
|
||||||
|
sodipodi:cx="246.30179"
|
||||||
|
id="path3003"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||||
|
sodipodi:type="arc" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||||
|
id="path3017"
|
||||||
|
sodipodi:cx="246.30179"
|
||||||
|
sodipodi:cy="276.00519"
|
||||||
|
sodipodi:rx="2.4840367"
|
||||||
|
sodipodi:ry="2.4840367"
|
||||||
|
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
|
||||||
|
transform="translate(-0.38215944,-1.5286383)" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||||
|
id="path3019"
|
||||||
|
sodipodi:cx="246.30179"
|
||||||
|
sodipodi:cy="276.00519"
|
||||||
|
sodipodi:rx="2.4840367"
|
||||||
|
sodipodi:ry="2.4840367"
|
||||||
|
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
|
||||||
|
transform="translate(-0.38215944,-76.81406)" />
|
||||||
|
<path
|
||||||
|
transform="translate(47.769935,-44.330504)"
|
||||||
|
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
|
||||||
|
sodipodi:ry="2.4840367"
|
||||||
|
sodipodi:rx="2.4840367"
|
||||||
|
sodipodi:cy="276.00519"
|
||||||
|
sodipodi:cx="246.30179"
|
||||||
|
id="path3021"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||||
|
sodipodi:type="arc" />
|
||||||
|
<path
|
||||||
|
sodipodi:type="arc"
|
||||||
|
style="fill:#ffffff;fill-opacity:1;stroke:#030000;stroke-width:0.99921262;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0"
|
||||||
|
id="path3023"
|
||||||
|
sodipodi:cx="246.30179"
|
||||||
|
sodipodi:cy="276.00519"
|
||||||
|
sodipodi:rx="2.4840367"
|
||||||
|
sodipodi:ry="2.4840367"
|
||||||
|
d="m 248.78583,276.00519 c 0,1.37189 -1.11215,2.48403 -2.48404,2.48403 -1.3719,0 -2.48404,-1.11214 -2.48404,-2.48403 0,-1.3719 1.11214,-2.48404 2.48404,-2.48404 1.37189,0 2.48404,1.11214 2.48404,2.48404 z"
|
||||||
|
transform="translate(45.476978,36.305146)" />
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3025"
|
||||||
|
y="272.75684"
|
||||||
|
x="256.04684"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
id="tspan3029"
|
||||||
|
y="272.75684"
|
||||||
|
x="256.04684"
|
||||||
|
sodipodi:role="line">Pelvis</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3033"
|
||||||
|
y="194.03198"
|
||||||
|
x="254.5182"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="194.03198"
|
||||||
|
x="254.5182"
|
||||||
|
id="tspan3035"
|
||||||
|
sodipodi:role="line">Spine</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3037"
|
||||||
|
y="159.63763"
|
||||||
|
x="252.98958"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="159.63763"
|
||||||
|
x="252.98958"
|
||||||
|
id="tspan3039"
|
||||||
|
sodipodi:role="line">Head</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3041"
|
||||||
|
y="230.33714"
|
||||||
|
x="303.8168"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="230.33714"
|
||||||
|
x="303.8168"
|
||||||
|
id="tspan3043"
|
||||||
|
sodipodi:role="line">Arm</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3045"
|
||||||
|
y="310.59064"
|
||||||
|
x="301.90598"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="310.59064"
|
||||||
|
x="301.90598"
|
||||||
|
id="tspan3047"
|
||||||
|
sodipodi:role="line">Leg</tspan></text>
|
||||||
|
</g>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3049"
|
||||||
|
y="102.99821"
|
||||||
|
x="298.08438"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
id="tspan3051"
|
||||||
|
y="102.99821"
|
||||||
|
x="298.08438"
|
||||||
|
sodipodi:role="line">Pelvis</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3057"
|
||||||
|
y="193.95218"
|
||||||
|
x="392.85999"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="193.95218"
|
||||||
|
x="392.85999"
|
||||||
|
id="tspan3059"
|
||||||
|
sodipodi:role="line">Head</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3061"
|
||||||
|
y="195.09868"
|
||||||
|
x="316.0459"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="195.09868"
|
||||||
|
x="316.0459"
|
||||||
|
id="tspan3063"
|
||||||
|
sodipodi:role="line">Arm</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3053"
|
||||||
|
y="147.85847"
|
||||||
|
x="346.23648"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="147.85847"
|
||||||
|
x="346.23648"
|
||||||
|
id="tspan3055"
|
||||||
|
sodipodi:role="line">Spine</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text3065"
|
||||||
|
y="147.73885"
|
||||||
|
x="260.63275"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="147.73885"
|
||||||
|
x="260.63275"
|
||||||
|
id="tspan3067"
|
||||||
|
sodipodi:role="line">Leg</tspan></text>
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 272.09755,137.39258 38.21594,-28.2798 43.56619,25.22252"
|
||||||
|
id="path3129"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||||
|
d="m 327.89283,184.01604 33.63003,-29.80844 40.50891,25.98684"
|
||||||
|
id="path3131"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text5122"
|
||||||
|
y="63.800404"
|
||||||
|
x="300.70157"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
id="tspan5126"
|
||||||
|
y="63.800404"
|
||||||
|
x="300.70157"
|
||||||
|
sodipodi:role="line">Root</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text5130"
|
||||||
|
y="291.58145"
|
||||||
|
x="329.14432"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="291.58145"
|
||||||
|
x="329.14432"
|
||||||
|
id="tspan5132"
|
||||||
|
sodipodi:role="line">Root</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text5134"
|
||||||
|
y="290.80313"
|
||||||
|
x="56.859642"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="290.80313"
|
||||||
|
x="56.859642"
|
||||||
|
id="tspan5136"
|
||||||
|
sodipodi:role="line">Root</tspan></text>
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5138"
|
||||||
|
d="m 311.62686,90.551568 0,-22.16525"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="54.242455"
|
||||||
|
y="335.71423"
|
||||||
|
id="text3172"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="54.242455"
|
||||||
|
y="335.71423"
|
||||||
|
id="tspan3174">Pelvis</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="148.91333"
|
||||||
|
y="426.66821"
|
||||||
|
id="text3176"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3178"
|
||||||
|
x="148.91333"
|
||||||
|
y="426.66821">Head</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="72.099274"
|
||||||
|
y="427.8147"
|
||||||
|
id="text3180"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3182"
|
||||||
|
x="72.099274"
|
||||||
|
y="427.8147">Arm</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="102.28986"
|
||||||
|
y="380.57449"
|
||||||
|
id="text3184"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3186"
|
||||||
|
x="102.28986"
|
||||||
|
y="380.57449">Spine</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="16.686127"
|
||||||
|
y="380.45486"
|
||||||
|
id="text3188"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan3190"
|
||||||
|
x="16.686127"
|
||||||
|
y="380.45486">Leg</tspan></text>
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3192"
|
||||||
|
d="m 28.15094,370.10858 38.21594,-28.2798 43.56619,25.22252"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path3194"
|
||||||
|
d="m 83.94622,416.73204 33.63003,-29.80844 40.50891,25.98684"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 121.39785,365.90483 c 0,0 -4.96808,-33.63004 -35.15868,-34.77652"
|
||||||
|
id="path3982"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 20.8899,367.43346 c 0,0 -4.20375,-34.01219 29.42628,-34.77651"
|
||||||
|
id="path3984"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 164.19971,415.2034 c 0,0 1.52864,-38.59811 -27.13332,-37.83379"
|
||||||
|
id="path3986"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 79.74246,417.87852 c 0,0 -8.78966,-38.98027 19.10798,-39.36243"
|
||||||
|
id="path3988"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text4804"
|
||||||
|
y="337.64984"
|
||||||
|
x="326.52713"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
id="tspan4806"
|
||||||
|
y="337.64984"
|
||||||
|
x="326.52713"
|
||||||
|
sodipodi:role="line">Pelvis</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text4808"
|
||||||
|
y="428.60385"
|
||||||
|
x="421.3027"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="428.60385"
|
||||||
|
x="421.3027"
|
||||||
|
id="tspan4810"
|
||||||
|
sodipodi:role="line">Head</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text4812"
|
||||||
|
y="429.75034"
|
||||||
|
x="344.48862"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="429.75034"
|
||||||
|
x="344.48862"
|
||||||
|
id="tspan4814"
|
||||||
|
sodipodi:role="line">Arm</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text4816"
|
||||||
|
y="382.51013"
|
||||||
|
x="374.67923"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="382.51013"
|
||||||
|
x="374.67923"
|
||||||
|
id="tspan4818"
|
||||||
|
sodipodi:role="line">Spine</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text4820"
|
||||||
|
y="382.3905"
|
||||||
|
x="289.0755"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="382.3905"
|
||||||
|
x="289.0755"
|
||||||
|
id="tspan4822"
|
||||||
|
sodipodi:role="line">Leg</tspan></text>
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0"
|
||||||
|
d="m 300.54031,372.04421 38.21594,-28.2798 43.56619,25.22252"
|
||||||
|
id="path4824"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0"
|
||||||
|
d="m 356.33559,418.66767 33.63003,-29.80844 40.50891,25.98684"
|
||||||
|
id="path4826"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 323.88885,289.99516 c 0,0 -27.54265,43.32913 -27.92481,82.69155"
|
||||||
|
id="path4828"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 354.56558,294.70096 c 18.53473,0.57324 34.64538,35.94821 34.26322,77.6036"
|
||||||
|
id="path4830"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 355.01331,287.12333 c 62.29199,-11.46478 81.20326,81.74179 81.96758,129.12957"
|
||||||
|
id="path4832"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 327.70578,296.87403 c -13.03513,36.78469 -7.75513,93.90861 14.88172,125.87558"
|
||||||
|
id="path4836"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="312.99045"
|
||||||
|
y="262.5433"
|
||||||
|
id="text5022"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
x="312.99045"
|
||||||
|
y="262.5433"
|
||||||
|
id="tspan5030">Offset Matrices</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="74.542519"
|
||||||
|
y="38.309559"
|
||||||
|
id="text5034"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan5036"
|
||||||
|
x="74.542519"
|
||||||
|
y="38.309559">Model</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="299.99161"
|
||||||
|
y="38.309559"
|
||||||
|
id="text5038"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan5040"
|
||||||
|
x="299.99161"
|
||||||
|
y="38.309559">Bone Hierarchy</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:12px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="38.920315"
|
||||||
|
y="263.29245"
|
||||||
|
id="text5042"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan5044"
|
||||||
|
x="38.920315"
|
||||||
|
y="263.29245">Node Transformations</tspan></text>
|
||||||
|
<g
|
||||||
|
id="g5110"
|
||||||
|
transform="translate(-25.222526,2.2929569)">
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text5082"
|
||||||
|
y="453.24557"
|
||||||
|
x="46.994602"
|
||||||
|
style="font-size:10px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
id="tspan5086"
|
||||||
|
y="453.24557"
|
||||||
|
x="46.994602"
|
||||||
|
sodipodi:role="line">FinalTransform = Offset x (Scale x Rot x Trans) x (Scale x Rot x Trans) x (Scale x Rot x Trans) </tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text5090"
|
||||||
|
y="457.26581"
|
||||||
|
x="115.63354"
|
||||||
|
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="457.26581"
|
||||||
|
x="115.63354"
|
||||||
|
id="tspan5092"
|
||||||
|
sodipodi:role="line">Head</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text5098"
|
||||||
|
y="457.36346"
|
||||||
|
x="432.06158"
|
||||||
|
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="457.36346"
|
||||||
|
x="432.06158"
|
||||||
|
id="tspan5100"
|
||||||
|
sodipodi:role="line">Spine</tspan></text>
|
||||||
|
<text
|
||||||
|
xml:space="preserve"
|
||||||
|
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
x="304.03815"
|
||||||
|
y="457.26581"
|
||||||
|
id="text5102"
|
||||||
|
sodipodi:linespacing="125%"><tspan
|
||||||
|
sodipodi:role="line"
|
||||||
|
id="tspan5104"
|
||||||
|
x="304.03815"
|
||||||
|
y="457.26581">Head</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text5106"
|
||||||
|
y="457.26581"
|
||||||
|
x="174.86826"
|
||||||
|
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="457.26581"
|
||||||
|
x="174.86826"
|
||||||
|
id="tspan5108"
|
||||||
|
sodipodi:role="line">Head</tspan></text>
|
||||||
|
<text
|
||||||
|
sodipodi:linespacing="125%"
|
||||||
|
id="text5383"
|
||||||
|
y="457.26581"
|
||||||
|
x="558.59253"
|
||||||
|
style="font-size:8px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans"
|
||||||
|
xml:space="preserve"><tspan
|
||||||
|
y="457.26581"
|
||||||
|
x="558.59253"
|
||||||
|
id="tspan5385"
|
||||||
|
sodipodi:role="line">Pelvis</tspan></text>
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0"
|
||||||
|
d="m 67.784935,297.68201 0,25.98684"
|
||||||
|
id="path5159"
|
||||||
|
inkscape:connector-curvature="0" />
|
||||||
|
<path
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5161"
|
||||||
|
d="m 340.06961,298.44633 0,25.98684"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:1, 4;stroke-dashoffset:0" />
|
||||||
|
<path
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)"
|
||||||
|
d="m 58.4704,297.00642 c 20.254453,-17.96151 26.369005,-35.923 6.878872,-38.98027"
|
||||||
|
id="path5195"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
transform="translate(17.418549,29.719715)"
|
||||||
|
sodipodi:nodetypes="cc" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cc"
|
||||||
|
inkscape:connector-curvature="0"
|
||||||
|
id="path5381"
|
||||||
|
d="m 349.70149,296.32232 c -0.65158,-1.04253 25.97218,13.94397 2.37637,32.74583"
|
||||||
|
style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1;marker-end:url(#Arrow2Mend)" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 28 KiB |
Binary file not shown.
|
@ -1690,3 +1690,12 @@ void xxxxImporter::InternReadFile( const std::string& pFile,
|
||||||
|
|
||||||
@endcode
|
@endcode
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
@page AnimationOverview Animation Overview
|
||||||
|
\section Transformations
|
||||||
|
This diagram shows how you can calculate your transformationmatrices for an animated character:
|
||||||
|
<img src="AnimationOverview.png" />
|
||||||
|
|
||||||
|
**/
|
|
@ -620,7 +620,6 @@ enum aiPostProcessSteps
|
||||||
aiProcess_FindInstances | \
|
aiProcess_FindInstances | \
|
||||||
aiProcess_ValidateDataStructure | \
|
aiProcess_ValidateDataStructure | \
|
||||||
aiProcess_OptimizeMeshes | \
|
aiProcess_OptimizeMeshes | \
|
||||||
aiProcess_Debone | \
|
|
||||||
0 )
|
0 )
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
#define SVNRevision 1261
|
#define SVNRevision 1270
|
||||||
|
|
|
@ -27,7 +27,7 @@ ADD_EXECUTABLE( assimp_simpleogl
|
||||||
Sample_SimpleOpenGL.c
|
Sample_SimpleOpenGL.c
|
||||||
)
|
)
|
||||||
|
|
||||||
SET_PROPERTY(TARGET assimp_simpleogl PROPERTY DEBUG_POSTFIX ${DEBUG_POSTFIX})
|
SET_PROPERTY(TARGET assimp_simpleogl PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES( assimp_simpleogl assimp ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} )
|
TARGET_LINK_LIBRARIES( assimp_simpleogl assimp ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} )
|
||||||
SET_TARGET_PROPERTIES( assimp_simpleogl PROPERTIES
|
SET_TARGET_PROPERTIES( assimp_simpleogl PROPERTIES
|
||||||
|
@ -35,5 +35,5 @@ SET_TARGET_PROPERTIES( assimp_simpleogl PROPERTIES
|
||||||
)
|
)
|
||||||
|
|
||||||
INSTALL( TARGETS assimp_simpleogl
|
INSTALL( TARGETS assimp_simpleogl
|
||||||
DESTINATION "${BIN_INSTALL_DIR}" COMPONENT assimp-dev
|
DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,7 +1,21 @@
|
||||||
|
FIND_PACKAGE(OpenGL)
|
||||||
|
FIND_PACKAGE(GLUT)
|
||||||
|
|
||||||
|
IF ( NOT GLUT_FOUND )
|
||||||
|
IF ( MSVC )
|
||||||
|
SET ( GLUT_FOUND 1 )
|
||||||
|
SET ( GLUT_INCLUDE_DIR ${Assimp_SOURCE_DIR}/samples/glut/ )
|
||||||
|
SET ( GLUT_LIBRARIES ${Assimp_SOURCE_DIR}/samples/glut/glut32.lib )
|
||||||
|
ELSE ( MSVC )
|
||||||
|
MESSAGE( WARNING "Please install glut." )
|
||||||
|
ENDIF ( MSVC )
|
||||||
|
ENDIF ( NOT GLUT_FOUND )
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(
|
INCLUDE_DIRECTORIES(
|
||||||
${Assimp_SOURCE_DIR}/include
|
${Assimp_SOURCE_DIR}/include
|
||||||
${Assimp_SOURCE_DIR}/code
|
${Assimp_SOURCE_DIR}/code
|
||||||
${Assimp_SOURCE_DIR}/samples/glut/
|
${OPENGL_INCLUDE_DIR}
|
||||||
|
${GLUT_INCLUDE_DIR}
|
||||||
${Assimp_SOURCE_DIR}/samples/DevIL/include/
|
${Assimp_SOURCE_DIR}/samples/DevIL/include/
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -17,26 +31,14 @@ ADD_EXECUTABLE( assimp_simpletexturedogl WIN32
|
||||||
SimpleTexturedOpenGL/src/model_loading.cpp
|
SimpleTexturedOpenGL/src/model_loading.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
SET_PROPERTY(TARGET assimp_simpletexturedogl PROPERTY DEBUG_POSTFIX ${DEBUG_POSTFIX})
|
SET_PROPERTY(TARGET assimp_simpletexturedogl PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})
|
||||||
|
|
||||||
IF( WIN32 )
|
TARGET_LINK_LIBRARIES( assimp_simpletexturedogl assimp ${OPENGL_LIBRARIES} ${GLUT_LIBRARIES} DevIL.lib )
|
||||||
SET( PSDK_PATH "C:/Program Files/Microsoft Platform SDK/Bin" )
|
|
||||||
SET( PSDK_INC "C:/Program Files/Microsoft Platform SDK/Include" )
|
|
||||||
|
|
||||||
FIND_LIBRARY( WIN32_COMCTRL comctl32.lib
|
|
||||||
PATHS
|
|
||||||
"C:/Programme/Microsoft Platform SDK for Windows Server 2003 R2/Lib"
|
|
||||||
DOC "Path to psdk"
|
|
||||||
)
|
|
||||||
ENDIF( WIN32 )
|
|
||||||
|
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES( assimp_simpletexturedogl assimp opengl32.lib glu32.lib comctl32.lib devil.lib )
|
|
||||||
|
|
||||||
SET_TARGET_PROPERTIES( assimp_simpletexturedogl PROPERTIES
|
SET_TARGET_PROPERTIES( assimp_simpletexturedogl PROPERTIES
|
||||||
OUTPUT_NAME assimp_simpletexturedogl
|
OUTPUT_NAME assimp_simpletexturedogl
|
||||||
)
|
)
|
||||||
|
|
||||||
INSTALL( TARGETS assimp_simpletexturedogl
|
INSTALL( TARGETS assimp_simpletexturedogl
|
||||||
DESTINATION "${BIN_INSTALL_DIR}" COMPONENT assimp-dev
|
DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev
|
||||||
)
|
)
|
||||||
|
|
|
@ -410,7 +410,9 @@ void recursive_render (const struct aiScene *sc, const struct aiNode* nd, float
|
||||||
unsigned int n=0, t;
|
unsigned int n=0, t;
|
||||||
aiMatrix4x4 m = nd->mTransformation;
|
aiMatrix4x4 m = nd->mTransformation;
|
||||||
|
|
||||||
m.Scaling(aiVector3D(scale, scale, scale), m);
|
aiMatrix4x4 m2;
|
||||||
|
aiMatrix4x4::Scaling(aiVector3D(scale, scale, scale), m2);
|
||||||
|
m = m * m2;
|
||||||
|
|
||||||
// update transform
|
// update transform
|
||||||
m.Transpose();
|
m.Transpose();
|
||||||
|
|
|
@ -94,6 +94,7 @@ IfcSurfaceStyleRendering
|
||||||
IfcSurfaceStyleShading
|
IfcSurfaceStyleShading
|
||||||
IfcSurfaceStyleWithTextures
|
IfcSurfaceStyleWithTextures
|
||||||
IfcSweptAreaSolid
|
IfcSweptAreaSolid
|
||||||
|
IfcSweptDiskSolid
|
||||||
IfcTopologicalRepresentationItem
|
IfcTopologicalRepresentationItem
|
||||||
IfcTrimmedCurve
|
IfcTrimmedCurve
|
||||||
IfcUnit
|
IfcUnit
|
||||||
|
|
|
@ -219,35 +219,9 @@ add_executable( unit
|
||||||
)
|
)
|
||||||
|
|
||||||
IF( WIN32 )
|
IF( WIN32 )
|
||||||
SET( PSDK_PATH "C:/Program Files/Microsoft Platform SDK/Bin" )
|
FIND_PACKAGE(DirectX REQUIRED)
|
||||||
SET( PSDK_INC "C:/Program Files/Microsoft Platform SDK/Include" )
|
|
||||||
|
|
||||||
FIND_PATH(DX9_INCLUDE_PATH d3d9.h
|
|
||||||
PATHS
|
|
||||||
"$ENV{DXSDK_DIR}/Include"
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
|
|
||||||
DOC "The directory where D3D9.h resides")
|
|
||||||
|
|
||||||
FIND_LIBRARY(D3D9_LIBRARY d3d9.lib
|
|
||||||
PATHS
|
|
||||||
"$ENV{DXSDK_DIR}/Lib/x86"
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
|
|
||||||
DOC "The directory where d3d9.lib resides")
|
|
||||||
|
|
||||||
FIND_LIBRARY(D3DX9_LIBRARY d3dx9.lib
|
|
||||||
PATHS
|
|
||||||
"$ENV{DXSDK_DIR}/Lib/x86"
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
|
|
||||||
DOC "The directory where d3dx9.lib resides")
|
|
||||||
|
|
||||||
SET( DX9_LIBRARIES ${D3D9_LIBRARY} ${D3DX9_LIBRARY} )
|
|
||||||
|
|
||||||
FIND_LIBRARY( WIN32_COMCTRL comctl32.lib
|
|
||||||
PATHS
|
|
||||||
"C:/Programme/Microsoft Platform SDK for Windows Server 2003 R2/Lib"
|
|
||||||
DOC "Path to psdk"
|
|
||||||
)
|
|
||||||
ENDIF( WIN32 )
|
ENDIF( WIN32 )
|
||||||
|
SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})
|
||||||
|
|
||||||
# TODO: Port to non-Windows platforms.
|
# TODO: Port to non-Windows platforms.
|
||||||
target_link_libraries ( unit assimp ${DX9_LIBRARIES} comctl32.lib Winmm.lib )
|
target_link_libraries ( unit assimp ${DirectX_LIBRARY} ${DirectX_D3DX9_LIBRARY} comctl32.lib Winmm.lib )
|
||||||
|
|
|
@ -17,7 +17,7 @@ ADD_EXECUTABLE( assimp_cmd
|
||||||
Export.cpp
|
Export.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
SET_PROPERTY(TARGET assimp_cmd PROPERTY DEBUG_POSTFIX ${DEBUG_POSTFIX})
|
SET_PROPERTY(TARGET assimp_cmd PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})
|
||||||
|
|
||||||
TARGET_LINK_LIBRARIES( assimp_cmd assimp ${ZLIB_LIBRARIES})
|
TARGET_LINK_LIBRARIES( assimp_cmd assimp ${ZLIB_LIBRARIES})
|
||||||
SET_TARGET_PROPERTIES( assimp_cmd PROPERTIES
|
SET_TARGET_PROPERTIES( assimp_cmd PROPERTIES
|
||||||
|
@ -25,5 +25,5 @@ SET_TARGET_PROPERTIES( assimp_cmd PROPERTIES
|
||||||
)
|
)
|
||||||
|
|
||||||
INSTALL( TARGETS assimp_cmd
|
INSTALL( TARGETS assimp_cmd
|
||||||
DESTINATION "${BIN_INSTALL_DIR}" COMPONENT assimp-bin
|
DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-bin
|
||||||
)
|
)
|
||||||
|
|
|
@ -1,8 +1,10 @@
|
||||||
|
FIND_PACKAGE(DirectX REQUIRED)
|
||||||
|
|
||||||
# Make sure the compiler can find include files from our Hello library.
|
# Make sure the compiler can find include files from our Hello library.
|
||||||
include_directories (
|
include_directories (
|
||||||
${Assimp_SOURCE_DIR}/include
|
${Assimp_SOURCE_DIR}/include
|
||||||
${Assimp_SOURCE_DIR}/code
|
${Assimp_SOURCE_DIR}/code
|
||||||
${DX9_INCLUDE_PATH}
|
${DirectX_INCLUDE_DIR}
|
||||||
)
|
)
|
||||||
|
|
||||||
# Make sure the linker can find the Hello library once it is built.
|
# Make sure the linker can find the Hello library once it is built.
|
||||||
|
@ -41,45 +43,16 @@ add_executable( assimp_viewer WIN32
|
||||||
txi.bmp
|
txi.bmp
|
||||||
)
|
)
|
||||||
|
|
||||||
SET_PROPERTY(TARGET assimp_viewer PROPERTY DEBUG_POSTFIX ${DEBUG_POSTFIX})
|
SET_PROPERTY(TARGET assimp_viewer PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})
|
||||||
|
|
||||||
IF( WIN32 )
|
IF( WIN32 )
|
||||||
SET( PSDK_PATH "C:/Program Files/Microsoft Platform SDK/Bin" )
|
|
||||||
SET( PSDK_INC "C:/Program Files/Microsoft Platform SDK/Include" )
|
|
||||||
|
|
||||||
FIND_PATH(DX9_INCLUDE_PATH d3d9.h
|
|
||||||
PATHS
|
|
||||||
"$ENV{DXSDK_DIR}/Include"
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Include"
|
|
||||||
DOC "The directory where D3D9.h resides")
|
|
||||||
|
|
||||||
|
|
||||||
FIND_LIBRARY(D3D9_LIBRARY d3d9.lib
|
|
||||||
PATHS
|
|
||||||
"$ENV{DXSDK_DIR}/Lib/x86"
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
|
|
||||||
DOC "The directory where d3d9.lib resides")
|
|
||||||
|
|
||||||
FIND_LIBRARY(D3DX9_LIBRARY d3dx9.lib
|
|
||||||
PATHS
|
|
||||||
"$ENV{DXSDK_DIR}/Lib/x86"
|
|
||||||
"$ENV{PROGRAMFILES}/Microsoft DirectX SDK/Lib/x86"
|
|
||||||
DOC "The directory where d3dx9.lib resides")
|
|
||||||
|
|
||||||
SET( DX9_LIBRARIES ${D3D9_LIBRARY} ${D3DX9_LIBRARY} )
|
|
||||||
|
|
||||||
FIND_LIBRARY( WIN32_COMCTRL comctl32.lib
|
|
||||||
PATHS
|
|
||||||
"C:/Programme/Microsoft Platform SDK for Windows Server 2003 R2/Lib"
|
|
||||||
DOC "Path to psdk"
|
|
||||||
)
|
|
||||||
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 )
|
||||||
ENDIF( WIN32 )
|
ENDIF( WIN32 )
|
||||||
|
|
||||||
# Link the executable to the Hello library.
|
# Link the executable to the Hello library.
|
||||||
target_link_libraries ( assimp_viewer assimp ${DX9_LIBRARIES} comctl32.lib Winmm.lib )
|
target_link_libraries ( assimp_viewer assimp ${DirectX_LIBRARY} ${DirectX_D3DX9_LIBRARY} comctl32.lib Winmm.lib )
|
||||||
|
|
||||||
INSTALL( TARGETS assimp_viewer
|
INSTALL( TARGETS assimp_viewer
|
||||||
DESTINATION "${BIN_INSTALL_DIR}" COMPONENT assimp-dev
|
DESTINATION "${ASSIMP_BIN_INSTALL_DIR}" COMPONENT assimp-dev
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue