diff --git a/code/IFCLoader.cpp b/code/IFCLoader.cpp index 472ae11ae..f5a903cf3 100644 --- a/code/IFCLoader.cpp +++ b/code/IFCLoader.cpp @@ -325,7 +325,10 @@ void SetCoordinateSpace(ConversionData& conv) void ResolveObjectPlacement(aiMatrix4x4& m, const IfcObjectPlacement& place, ConversionData& conv) { if (const IfcLocalPlacement* const local = place.ToPtr()){ - ConvertAxisPlacement(m, *local->RelativePlacement, conv); + IfcMatrix4 tmp; + ConvertAxisPlacement(tmp, *local->RelativePlacement, conv); + + m = static_cast(tmp); if (local->PlacementRelTo) { aiMatrix4x4 tmp; diff --git a/code/IFCUtil.cpp b/code/IFCUtil.cpp index e2ba99fe9..1da081d56 100644 --- a/code/IFCUtil.cpp +++ b/code/IFCUtil.cpp @@ -269,7 +269,7 @@ void ConvertColor(aiColor4D& out, const IfcColourRgb& in) void ConvertColor(aiColor4D& out, const IfcColourOrFactor& in,ConversionData& conv,const aiColor4D* base) { if (const EXPRESS::REAL* const r = in.ToPtr()) { - out.r = out.g = out.b = *r; + out.r = out.g = out.b = static_cast(*r); if(base) { out.r *= static_cast( base->r ); out.g *= static_cast( base->g ); diff --git a/code/IFCUtil.h b/code/IFCUtil.h index 14114f139..035d5768b 100644 --- a/code/IFCUtil.h +++ b/code/IFCUtil.h @@ -51,7 +51,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. namespace Assimp { namespace IFC { - typedef float IfcFloat; + typedef double IfcFloat; // IfcFloat-precision math data types typedef aiVector2t IfcVector2;