- Ifc: enable double-precision arithmetics for the entire pipeline. This does fix bugs, but unfortunately not all if them.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1143 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/5/head
parent
4fcf61c31f
commit
15e50959e6
|
@ -325,7 +325,10 @@ void SetCoordinateSpace(ConversionData& conv)
|
||||||
void ResolveObjectPlacement(aiMatrix4x4& m, const IfcObjectPlacement& place, ConversionData& conv)
|
void ResolveObjectPlacement(aiMatrix4x4& m, const IfcObjectPlacement& place, ConversionData& conv)
|
||||||
{
|
{
|
||||||
if (const IfcLocalPlacement* const local = place.ToPtr<IfcLocalPlacement>()){
|
if (const IfcLocalPlacement* const local = place.ToPtr<IfcLocalPlacement>()){
|
||||||
ConvertAxisPlacement(m, *local->RelativePlacement, conv);
|
IfcMatrix4 tmp;
|
||||||
|
ConvertAxisPlacement(tmp, *local->RelativePlacement, conv);
|
||||||
|
|
||||||
|
m = static_cast<aiMatrix4x4>(tmp);
|
||||||
|
|
||||||
if (local->PlacementRelTo) {
|
if (local->PlacementRelTo) {
|
||||||
aiMatrix4x4 tmp;
|
aiMatrix4x4 tmp;
|
||||||
|
|
|
@ -269,7 +269,7 @@ void ConvertColor(aiColor4D& out, const IfcColourRgb& in)
|
||||||
void ConvertColor(aiColor4D& out, const IfcColourOrFactor& in,ConversionData& conv,const aiColor4D* base)
|
void ConvertColor(aiColor4D& out, const IfcColourOrFactor& in,ConversionData& conv,const aiColor4D* base)
|
||||||
{
|
{
|
||||||
if (const EXPRESS::REAL* const r = in.ToPtr<EXPRESS::REAL>()) {
|
if (const EXPRESS::REAL* const r = in.ToPtr<EXPRESS::REAL>()) {
|
||||||
out.r = out.g = out.b = *r;
|
out.r = out.g = out.b = static_cast<float>(*r);
|
||||||
if(base) {
|
if(base) {
|
||||||
out.r *= static_cast<float>( base->r );
|
out.r *= static_cast<float>( base->r );
|
||||||
out.g *= static_cast<float>( base->g );
|
out.g *= static_cast<float>( base->g );
|
||||||
|
|
|
@ -51,7 +51,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
namespace Assimp {
|
namespace Assimp {
|
||||||
namespace IFC {
|
namespace IFC {
|
||||||
|
|
||||||
typedef float IfcFloat;
|
typedef double IfcFloat;
|
||||||
|
|
||||||
// IfcFloat-precision math data types
|
// IfcFloat-precision math data types
|
||||||
typedef aiVector2t<IfcFloat> IfcVector2;
|
typedef aiVector2t<IfcFloat> IfcVector2;
|
||||||
|
|
Loading…
Reference in New Issue