Merge branch 'master' into opengex_support
This commit is contained in:
@@ -205,7 +205,7 @@ SET( Collada_SRCS
|
||||
ColladaParser.cpp
|
||||
ColladaParser.h
|
||||
ColladaExporter.h
|
||||
ColladaExporter.cpp
|
||||
ColladaExporter.cpp
|
||||
)
|
||||
SOURCE_GROUP( Collada FILES ${Collada_SRCS})
|
||||
|
||||
@@ -330,7 +330,7 @@ SET( Obj_SRCS
|
||||
ObjFileParser.cpp
|
||||
ObjFileParser.h
|
||||
ObjTools.h
|
||||
|
||||
|
||||
ObjExporter.h
|
||||
ObjExporter.cpp
|
||||
)
|
||||
@@ -603,14 +603,14 @@ SET( ConvertUTF_SRCS
|
||||
)
|
||||
SOURCE_GROUP( ConvertUTF FILES ${ConvertUTF_SRCS})
|
||||
|
||||
SET( Clipper_SRCS
|
||||
SET( Clipper_SRCS
|
||||
../contrib/clipper/clipper.hpp
|
||||
../contrib/clipper/clipper.cpp
|
||||
)
|
||||
SOURCE_GROUP( Clipper FILES ${Clipper_SRCS})
|
||||
|
||||
|
||||
SET( Poly2Tri_SRCS
|
||||
SET( Poly2Tri_SRCS
|
||||
../contrib/poly2tri/poly2tri/common/shapes.cc
|
||||
../contrib/poly2tri/poly2tri/common/shapes.h
|
||||
../contrib/poly2tri/poly2tri/common/utils.h
|
||||
@@ -706,7 +706,7 @@ SET( assimp_src
|
||||
${IFC_SRCS}
|
||||
${XGL_SRCS}
|
||||
${FBX_SRCS}
|
||||
|
||||
|
||||
# Third-party libraries
|
||||
${IrrXML_SRCS}
|
||||
${ConvertUTF_SRCS}
|
||||
@@ -718,7 +718,7 @@ SET( assimp_src
|
||||
|
||||
${PUBLIC_HEADERS}
|
||||
${COMPILER_HEADERS}
|
||||
|
||||
|
||||
# Old precompiled header
|
||||
# (removed because the precompiled header is not updated when visual studio switch configuration which leads to failed compilation.
|
||||
# Moreover it's a drag to recompile assimp entirely each time a modification is made to one of the included header, which is definitely counter-productive.)
|
||||
@@ -729,8 +729,6 @@ SET( assimp_src
|
||||
|
||||
ADD_LIBRARY( assimp ${assimp_src} )
|
||||
|
||||
SET_PROPERTY(TARGET assimp PROPERTY DEBUG_POSTFIX ${ASSIMP_DEBUG_POSTFIX})
|
||||
|
||||
TARGET_LINK_LIBRARIES(assimp ${ZLIB_LIBRARIES})
|
||||
|
||||
if(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM)
|
||||
@@ -739,10 +737,24 @@ if(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM)
|
||||
target_link_libraries(assimp android_jniiosystem)
|
||||
endif(ANDROID AND ASSIMP_ANDROID_JNIIOSYSTEM)
|
||||
|
||||
if( MSVC )
|
||||
# in order to prevent DLL hell, each of the DLLs have to be suffixed with the major version and msvc prefix
|
||||
if( MSVC70 OR MSVC71 )
|
||||
set(MSVC_PREFIX "vc70")
|
||||
elseif( MSVC80 )
|
||||
set(MSVC_PREFIX "vc80")
|
||||
elseif( MSVC90 )
|
||||
set(MSVC_PREFIX "vc90")
|
||||
else()
|
||||
set(MSVC_PREFIX "vc100")
|
||||
endif()
|
||||
set(LIBRARY_SUFFIX "${ASSIMP_LIBRARY_SUFFIX}-${MSVC_PREFIX}-mt" CACHE STRING "the suffix for the assimp windows library" FORCE)
|
||||
endif()
|
||||
|
||||
SET_TARGET_PROPERTIES( assimp PROPERTIES
|
||||
VERSION ${ASSIMP_VERSION}
|
||||
SOVERSION ${ASSIMP_SOVERSION} # use full version
|
||||
OUTPUT_NAME assimp${ASSIMP_LIBRARY_SUFFIX}
|
||||
SOVERSION ${ASSIMP_SOVERSION} # use full version
|
||||
OUTPUT_NAME assimp${LIBRARY_SUFFIX}
|
||||
)
|
||||
|
||||
if (APPLE)
|
||||
@@ -772,7 +784,7 @@ if (ASSIMP_ANDROID_JNIIOSYSTEM)
|
||||
endif(ASSIMP_ANDROID_JNIIOSYSTEM)
|
||||
|
||||
if(MSVC AND ASSIMP_INSTALL_PDB)
|
||||
install(FILES ${Assimp_BINARY_DIR}/code/Debug/assimp${ASSIMP_DEBUG_POSTFIX}.pdb
|
||||
install(FILES ${Assimp_BINARY_DIR}/code/Debug/assimp${CMAKE_DEBUG_POSTFIX}.pdb
|
||||
DESTINATION ${ASSIMP_LIB_INSTALL_DIR}
|
||||
CONFIGURATIONS Debug
|
||||
)
|
||||
|
||||
@@ -985,6 +985,47 @@ void ColladaLoader::CreateAnimation( aiScene* pScene, const ColladaParser& pPars
|
||||
entry.mTransformId = srcChannel.mTarget.substr( slashPos+1);
|
||||
}
|
||||
|
||||
std::string::size_type bracketPos = srcChannel.mTarget.find('(');
|
||||
if (bracketPos != std::string::npos)
|
||||
{
|
||||
entry.mTransformId = srcChannel.mTarget.substr(slashPos + 1, bracketPos - slashPos - 1);
|
||||
std::string subElement = srcChannel.mTarget.substr(bracketPos);
|
||||
|
||||
if (subElement == "(0)(0)")
|
||||
entry.mSubElement = 0;
|
||||
else if (subElement == "(1)(0)")
|
||||
entry.mSubElement = 1;
|
||||
else if (subElement == "(2)(0)")
|
||||
entry.mSubElement = 2;
|
||||
else if (subElement == "(3)(0)")
|
||||
entry.mSubElement = 3;
|
||||
else if (subElement == "(0)(1)")
|
||||
entry.mSubElement = 4;
|
||||
else if (subElement == "(1)(1)")
|
||||
entry.mSubElement = 5;
|
||||
else if (subElement == "(2)(1)")
|
||||
entry.mSubElement = 6;
|
||||
else if (subElement == "(3)(1)")
|
||||
entry.mSubElement = 7;
|
||||
else if (subElement == "(0)(2)")
|
||||
entry.mSubElement = 8;
|
||||
else if (subElement == "(1)(2)")
|
||||
entry.mSubElement = 9;
|
||||
else if (subElement == "(2)(2)")
|
||||
entry.mSubElement = 10;
|
||||
else if (subElement == "(3)(2)")
|
||||
entry.mSubElement = 11;
|
||||
else if (subElement == "(0)(3)")
|
||||
entry.mSubElement = 12;
|
||||
else if (subElement == "(1)(3)")
|
||||
entry.mSubElement = 13;
|
||||
else if (subElement == "(2)(3)")
|
||||
entry.mSubElement = 14;
|
||||
else if (subElement == "(3)(3)")
|
||||
entry.mSubElement = 15;
|
||||
|
||||
}
|
||||
|
||||
// determine which transform step is affected by this channel
|
||||
entry.mTransformIndex = SIZE_MAX;
|
||||
for( size_t a = 0; a < srcNode->mTransforms.size(); ++a)
|
||||
|
||||
@@ -549,7 +549,9 @@ void ReadBinaryDataArray(char type, uint32_t count, const char*& data, const cha
|
||||
zstream.data_type = Z_BINARY;
|
||||
|
||||
// http://hewgill.com/journal/entries/349-how-to-decompress-gzip-stream-with-zlib
|
||||
inflateInit(&zstream);
|
||||
if(Z_OK != inflateInit(&zstream)) {
|
||||
ParseError("failure initializing zlib");
|
||||
}
|
||||
|
||||
zstream.next_in = reinterpret_cast<Bytef*>( const_cast<char*>(data) );
|
||||
zstream.avail_in = comp_len;
|
||||
|
||||
@@ -91,7 +91,7 @@ public:
|
||||
a = std::fmod(a,static_cast<IfcFloat>( AI_MATH_TWO_PI ));
|
||||
b = std::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>( std::ceil(abs( b-a)) / setting);
|
||||
return static_cast<size_t>( std::ceil(std::abs( b-a)) / setting);
|
||||
}
|
||||
|
||||
// --------------------------------------------------
|
||||
@@ -276,7 +276,7 @@ public:
|
||||
IfcFloat acc = 0;
|
||||
BOOST_FOREACH(const CurveEntry& entry, curves) {
|
||||
const ParamRange& range = entry.first->GetParametricRange();
|
||||
const IfcFloat delta = abs(range.second-range.first);
|
||||
const IfcFloat delta = std::abs(range.second-range.first);
|
||||
if (u < acc+delta) {
|
||||
return entry.first->Eval( entry.second ? (u-acc) + range.first : range.second-(u-acc));
|
||||
}
|
||||
@@ -295,7 +295,7 @@ public:
|
||||
IfcFloat acc = 0;
|
||||
BOOST_FOREACH(const CurveEntry& entry, curves) {
|
||||
const ParamRange& range = entry.first->GetParametricRange();
|
||||
const IfcFloat delta = abs(range.second-range.first);
|
||||
const IfcFloat delta = std::abs(range.second-range.first);
|
||||
if (a <= acc+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 );
|
||||
@@ -569,7 +569,7 @@ bool Curve :: InRange(IfcFloat u) const
|
||||
IfcFloat Curve :: GetParametricRangeDelta() const
|
||||
{
|
||||
const ParamRange& range = GetParametricRange();
|
||||
return abs(range.second - range.first);
|
||||
return std::abs(range.second - range.first);
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------------------------------------
|
||||
|
||||
@@ -375,21 +375,21 @@ void ProcessSweptDiskSolid(const IfcSweptDiskSolid solid, TempMesh& result, Conv
|
||||
bool take_any = false;
|
||||
|
||||
for (unsigned int i = 0; i < 2; ++i, take_any = true) {
|
||||
if ((last_dir == 0 || take_any) && abs(d.x) > 1e-6) {
|
||||
if ((last_dir == 0 || take_any) && std::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;
|
||||
last_dir = 0;
|
||||
break;
|
||||
}
|
||||
else if ((last_dir == 1 || take_any) && abs(d.y) > 1e-6) {
|
||||
else if ((last_dir == 1 || take_any) && std::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;
|
||||
last_dir = 1;
|
||||
break;
|
||||
}
|
||||
else if ((last_dir == 2 && abs(d.z) > 1e-6) || take_any) {
|
||||
else if ((last_dir == 2 && std::abs(d.z) > 1e-6) || take_any) {
|
||||
q.y = startvec.y;
|
||||
q.x = startvec.x;
|
||||
q.z = -(d.y * q.y + d.x * q.x) / d.z;
|
||||
|
||||
@@ -1244,7 +1244,7 @@ bool GenerateOpenings(std::vector<TempOpening>& openings,
|
||||
const IfcVector3& face_nor = ((profile_verts[vi_total+2] - profile_verts[vi_total]) ^
|
||||
(profile_verts[vi_total+1] - profile_verts[vi_total])).Normalize();
|
||||
|
||||
const IfcFloat abs_dot_face_nor = abs(nor * face_nor);
|
||||
const IfcFloat abs_dot_face_nor = std::abs(nor * face_nor);
|
||||
if (abs_dot_face_nor < 0.9) {
|
||||
vi_total += profile_vertcnts[f];
|
||||
continue;
|
||||
|
||||
Reference in New Issue
Block a user