From 8e4ee11bf319730c935d058fd27d3983fce73da7 Mon Sep 17 00:00:00 2001 From: Kim Kulling Date: Wed, 13 Jan 2021 22:43:46 +0100 Subject: [PATCH] Prototype new triangulation. --- code/AssetLib/IFC/IFCOpenings.cpp | 847 ++++++++++----------- code/AssetLib/IFC/IFCUtil.cpp | 4 +- code/AssetLib/IFC/IFCUtil.h | 292 ++++--- code/Common/PolyTools.h | 210 +++-- code/PostProcessing/FindDegenerates.cpp | 126 ++- code/PostProcessing/TriangulateProcess.cpp | 466 ++++-------- doc/AssimpDoc_Html/AssimpDoc.chm | Bin 1104707 -> 22039195 bytes doc/CMakeLists.txt | 3 + doc/Doxyfile.in | 2 +- include/assimp/Hash.h | 8 +- include/assimp/LineSplitter.h | 79 +- include/assimp/vector3.h | 4 +- include/assimp/vector3.inl | 3 +- test/unit/Common/utPolyTools.cpp | 25 + test/unit/utTriangulate.cpp | 6 +- 15 files changed, 904 insertions(+), 1171 deletions(-) diff --git a/code/AssetLib/IFC/IFCOpenings.cpp b/code/AssetLib/IFC/IFCOpenings.cpp index e15691957..6769fd161 100644 --- a/code/AssetLib/IFC/IFCOpenings.cpp +++ b/code/AssetLib/IFC/IFCOpenings.cpp @@ -43,50 +43,45 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * holes for windows and doors into walls. */ - #ifndef ASSIMP_BUILD_NO_IFC_IMPORTER -#include "IFCUtil.h" #include "Common/PolyTools.h" +#include "IFCUtil.h" #include "PostProcessing/ProcessHelper.h" #ifdef ASSIMP_USE_HUNTER -# include -# include +#include +#include #else -# include "../contrib/poly2tri/poly2tri/poly2tri.h" -# include "../contrib/clipper/clipper.hpp" +#include "../contrib/clipper/clipper.hpp" +#include "../contrib/poly2tri/poly2tri/poly2tri.h" #endif #include namespace Assimp { - namespace IFC { +namespace IFC { - using ClipperLib::ulong64; - // XXX use full -+ range ... - const ClipperLib::long64 max_ulong64 = 1518500249; // clipper.cpp / hiRange var +using ClipperLib::ulong64; +// XXX use full -+ range ... +const ClipperLib::long64 max_ulong64 = 1518500249; // clipper.cpp / hiRange var - //#define to_int64(p) (static_cast( std::max( 0., std::min( static_cast((p)), 1.) ) * max_ulong64 )) -#define to_int64(p) (static_cast(static_cast((p) ) * max_ulong64 )) +//#define to_int64(p) (static_cast( std::max( 0., std::min( static_cast((p)), 1.) ) * max_ulong64 )) +#define to_int64(p) (static_cast(static_cast((p)) * max_ulong64)) #define from_int64(p) (static_cast((p)) / max_ulong64) -#define one_vec (IfcVector2(static_cast(1.0),static_cast(1.0))) +#define one_vec (IfcVector2(static_cast(1.0), static_cast(1.0))) +// fallback method to generate wall openings +bool TryAddOpenings_Poly2Tri(const std::vector &openings, const std::vector &nors, + TempMesh &curmesh); - // fallback method to generate wall openings - bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std::vector& nors, - TempMesh& curmesh); - - -typedef std::pair< IfcVector2, IfcVector2 > BoundingBox; -typedef std::map XYSortedField; - +using BoundingBox = std::pair; +using XYSortedField = std::map; // ------------------------------------------------------------------------------------------------ -void QuadrifyPart(const IfcVector2& pmin, const IfcVector2& pmax, XYSortedField& field, - const std::vector< BoundingBox >& bbs, - std::vector& out) -{ - if (!(pmin.x-pmax.x) || !(pmin.y-pmax.y)) { +void QuadrifyPart(const IfcVector2 &pmin, const IfcVector2 &pmax, XYSortedField &field, + const std::vector &bbs, + std::vector &out) { + if (!(pmin.x - pmax.x) || !(pmin.y - pmax.y)) { return; } @@ -95,9 +90,9 @@ void QuadrifyPart(const IfcVector2& pmin, const IfcVector2& pmax, XYSortedField& // Search along the x-axis until we find an opening XYSortedField::iterator start = field.begin(); - for(; start != field.end(); ++start) { - const BoundingBox& bb = bbs[(*start).second]; - if(bb.first.x >= pmax.x) { + for (; start != field.end(); ++start) { + const BoundingBox &bb = bbs[(*start).second]; + if (bb.first.x >= pmax.x) { break; } @@ -111,29 +106,29 @@ void QuadrifyPart(const IfcVector2& pmin, const IfcVector2& pmax, XYSortedField& if (!found) { // the rectangle [pmin,pend] is opaque, fill it - out.push_back(pmin); - out.push_back(IfcVector2(pmin.x,pmax.y)); - out.push_back(pmax); - out.push_back(IfcVector2(pmax.x,pmin.y)); + out.emplace_back(pmin); + out.emplace_back(pmin.x, pmax.y); + out.emplace_back(pmax); + out.emplace_back(pmax.x, pmin.y); return; } - xs = std::max(pmin.x,xs); - xe = std::min(pmax.x,xe); + xs = std::max(pmin.x, xs); + xe = std::min(pmax.x, xe); // see if there's an offset to fill at the top of our quad if (xs - pmin.x) { - out.push_back(pmin); - out.push_back(IfcVector2(pmin.x,pmax.y)); - out.push_back(IfcVector2(xs,pmax.y)); - out.push_back(IfcVector2(xs,pmin.y)); + out.emplace_back(pmin); + out.emplace_back(pmin.x, pmax.y); + out.emplace_back(xs, pmax.y); + out.emplace_back(xs, pmin.y); } // search along the y-axis for all openings that overlap xs and our quad IfcFloat ylast = pmin.y; found = false; - for(; start != field.end(); ++start) { - const BoundingBox& bb = bbs[(*start).second]; + for (; start != field.end(); ++start) { + const BoundingBox &bb = bbs[(*start).second]; if (bb.first.x > xs || bb.first.y >= pmax.y) { break; } @@ -141,9 +136,9 @@ void QuadrifyPart(const IfcVector2& pmin, const IfcVector2& pmax, XYSortedField& if (bb.second.y > ylast) { found = true; - const IfcFloat ys = std::max(bb.first.y,pmin.y), ye = std::min(bb.second.y,pmax.y); + const IfcFloat ys = std::max(bb.first.y, pmin.y), ye = std::min(bb.second.y, pmax.y); if (ys - ylast > 0.0f) { - QuadrifyPart( IfcVector2(xs,ylast), IfcVector2(xe,ys) ,field,bbs,out); + QuadrifyPart(IfcVector2(xs, ylast), IfcVector2(xe, ys), field, bbs, out); } // the following are the window vertices @@ -157,39 +152,33 @@ void QuadrifyPart(const IfcVector2& pmin, const IfcVector2& pmax, XYSortedField& } if (!found) { // the rectangle [pmin,pend] is opaque, fill it - out.push_back(IfcVector2(xs,pmin.y)); - out.push_back(IfcVector2(xs,pmax.y)); - out.push_back(IfcVector2(xe,pmax.y)); - out.push_back(IfcVector2(xe,pmin.y)); + out.emplace_back(IfcVector2(xs, pmin.y)); + out.emplace_back(xs, pmax.y); + out.emplace_back(xe, pmax.y); + out.emplace_back(xe, pmin.y); return; } if (ylast < pmax.y) { - QuadrifyPart( IfcVector2(xs,ylast), IfcVector2(xe,pmax.y) ,field,bbs,out); + QuadrifyPart(IfcVector2(xs, ylast), IfcVector2(xe, pmax.y), field, bbs, out); } // now for the whole rest - if (pmax.x-xe) { - QuadrifyPart(IfcVector2(xe,pmin.y), pmax ,field,bbs,out); + if (pmax.x - xe) { + QuadrifyPart(IfcVector2(xe, pmin.y), pmax, field, bbs, out); } } -typedef std::vector Contour; -typedef std::vector SkipList; // should probably use int for performance reasons +using Contour = std::vector; +using SkipList = std::vector; // should probably use int for performance reasons -struct ProjectedWindowContour -{ +struct ProjectedWindowContour { Contour contour; BoundingBox bb; SkipList skiplist; bool is_rectangular; - - ProjectedWindowContour(const Contour& contour, const BoundingBox& bb, bool is_rectangular) - : contour(contour) - , bb(bb) - , is_rectangular(is_rectangular) - {} - + ProjectedWindowContour(const Contour &contour, const BoundingBox &bb, bool is_rectangular) : + contour(contour), bb(bb), is_rectangular(is_rectangular) {} bool IsInvalid() const { return contour.empty(); @@ -200,26 +189,24 @@ struct ProjectedWindowContour } void PrepareSkiplist() { - skiplist.resize(contour.size(),false); + skiplist.resize(contour.size(), false); } }; -typedef std::vector< ProjectedWindowContour > ContourVector; +using ContourVector = std::vector; // ------------------------------------------------------------------------------------------------ -bool BoundingBoxesOverlapping( const BoundingBox &ibb, const BoundingBox &bb ) -{ +bool BoundingBoxesOverlapping(const BoundingBox &ibb, const BoundingBox &bb) { // count the '=' case as non-overlapping but as adjacent to each other return ibb.first.x < bb.second.x && ibb.second.x > bb.first.x && - ibb.first.y < bb.second.y && ibb.second.y > bb.first.y; + ibb.first.y < bb.second.y && ibb.second.y > bb.first.y; } // ------------------------------------------------------------------------------------------------ -bool IsDuplicateVertex(const IfcVector2& vv, const std::vector& temp_contour) -{ +bool IsDuplicateVertex(const IfcVector2 &vv, const std::vector &temp_contour) { // sanity check for duplicate vertices - for(const IfcVector2& cp : temp_contour) { - if ((cp-vv).SquareLength() < 1e-5f) { + for (const IfcVector2 &cp : temp_contour) { + if ((cp - vv).SquareLength() < 1e-5f) { return true; } } @@ -227,14 +214,13 @@ bool IsDuplicateVertex(const IfcVector2& vv, const std::vector& temp } // ------------------------------------------------------------------------------------------------ -void ExtractVerticesFromClipper(const ClipperLib::Polygon& poly, std::vector& temp_contour, - bool filter_duplicates = false) -{ +void ExtractVerticesFromClipper(const ClipperLib::Polygon &poly, std::vector &temp_contour, + bool filter_duplicates = false) { temp_contour.clear(); - for(const ClipperLib::IntPoint& point : poly) { - IfcVector2 vv = IfcVector2( from_int64(point.X), from_int64(point.Y)); - vv = std::max(vv,IfcVector2()); - vv = std::min(vv,one_vec); + for (const ClipperLib::IntPoint &point : poly) { + IfcVector2 vv = IfcVector2(from_int64(point.X), from_int64(point.Y)); + vv = std::max(vv, IfcVector2()); + vv = std::min(vv, one_vec); if (!filter_duplicates || !IsDuplicateVertex(vv, temp_contour)) { temp_contour.push_back(vv); @@ -243,84 +229,77 @@ void ExtractVerticesFromClipper(const ClipperLib::Polygon& poly, std::vector()(newbb_min, newbb_max); - for(const ClipperLib::IntPoint& point : poly) { - IfcVector2 vv = IfcVector2( from_int64(point.X), from_int64(point.Y)); + for (const ClipperLib::IntPoint &point : poly) { + IfcVector2 vv = IfcVector2(from_int64(point.X), from_int64(point.Y)); // sanity rounding - vv = std::max(vv,IfcVector2()); - vv = std::min(vv,one_vec); + vv = std::max(vv, IfcVector2()); + vv = std::min(vv, one_vec); - newbb_min = std::min(newbb_min,vv); - newbb_max = std::max(newbb_max,vv); + newbb_min = std::min(newbb_min, vv); + newbb_max = std::max(newbb_max, vv); } return BoundingBox(newbb_min, newbb_max); } // ------------------------------------------------------------------------------------------------ -void InsertWindowContours(const ContourVector& contours, - const std::vector& /*openings*/, - TempMesh& curmesh) -{ +void InsertWindowContours(const ContourVector &contours, + const std::vector & /*openings*/, + TempMesh &curmesh) { // fix windows - we need to insert the real, polygonal shapes into the quadratic holes that we have now - for(size_t i = 0; i < contours.size();++i) { - const BoundingBox& bb = contours[i].bb; - const std::vector& contour = contours[i].contour; - if(contour.empty()) { + for (size_t i = 0; i < contours.size(); ++i) { + const BoundingBox &bb = contours[i].bb; + const std::vector &contour = contours[i].contour; + if (contour.empty()) { continue; } // check if we need to do it at all - many windows just fit perfectly into their quadratic holes, // i.e. their contours *are* already their bounding boxes. if (contour.size() == 4) { - std::set verts; - for(size_t n = 0; n < 4; ++n) { + std::set verts; + for (size_t n = 0; n < 4; ++n) { verts.insert(contour[n]); } - const std::set::const_iterator end = verts.end(); - if (verts.find(bb.first)!=end && verts.find(bb.second)!=end - && verts.find(IfcVector2(bb.first.x,bb.second.y))!=end - && verts.find(IfcVector2(bb.second.x,bb.first.y))!=end - ) { - continue; + const std::set::const_iterator end = verts.end(); + if (verts.find(bb.first) != end && verts.find(bb.second) != end && verts.find(IfcVector2(bb.first.x, bb.second.y)) != end && verts.find(IfcVector2(bb.second.x, bb.first.y)) != end) { + continue; } } - const IfcFloat diag = (bb.first-bb.second).Length(); - const IfcFloat epsilon = diag/1000.f; + const IfcFloat diag = (bb.first - bb.second).Length(); + const IfcFloat epsilon = diag / 1000.f; // walk through all contour points and find those that lie on the BB corner size_t last_hit = (size_t)-1, very_first_hit = (size_t)-1; IfcVector2 edge; - for(size_t n = 0, e=0, size = contour.size();; n=(n+1)%size, ++e) { + for (size_t n = 0, e = 0, size = contour.size();; n = (n + 1) % size, ++e) { // sanity checking - if (e == size*2) { + if (e == size * 2) { IFCImporter::LogError("encountered unexpected topology while generating window contour"); break; } - const IfcVector2& v = contour[n]; + const IfcVector2 &v = contour[n]; bool hit = false; - if (std::fabs(v.x-bb.first.x) n ? size-(last_hit-n) : n-last_hit; - for(size_t a = last_hit, ee = 0; ee <= cnt; a=(a+1)%size, ++ee) { + size_t cnt = last_hit > n ? size - (last_hit - n) : n - last_hit; + for (size_t a = last_hit, ee = 0; ee <= cnt; a = (a + 1) % size, ++ee) { // hack: this is to fix cases where opening contours are self-intersecting. // Clipper doesn't produce such polygons, but as soon as we're back in // our brave new floating-point world, very small distances are consumed // by the maximum available precision, leading to self-intersecting // polygons. This fix makes concave windows fail even worse, but // anyway, fail is fail. - if ((contour[a] - edge).SquareLength() > diag*diag*0.7) { + if ((contour[a] - edge).SquareLength() > diag * diag * 0.7) { continue; } curmesh.mVerts.push_back(IfcVector3(contour[a].x, contour[a].y, 0.0f)); @@ -347,36 +326,32 @@ void InsertWindowContours(const ContourVector& contours, IfcVector2 corner = edge; - if (std::fabs(contour[last_hit].x-bb.first.x)(d)); - std::reverse(curmesh.mVerts.rbegin(),curmesh.mVerts.rbegin()+d); + std::reverse(curmesh.mVerts.rbegin(), curmesh.mVerts.rbegin() + d); } if (n == very_first_hit) { break; } - } - else { + } else { very_first_hit = n; } @@ -387,17 +362,16 @@ void InsertWindowContours(const ContourVector& contours, } // ------------------------------------------------------------------------------------------------ -void MergeWindowContours (const std::vector& a, - const std::vector& b, - ClipperLib::ExPolygons& out) -{ +void MergeWindowContours(const std::vector &a, + const std::vector &b, + ClipperLib::ExPolygons &out) { out.clear(); ClipperLib::Clipper clipper; ClipperLib::Polygon clip; - for(const IfcVector2& pip : a) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); + for (const IfcVector2 &pip : a) { + clip.push_back(ClipperLib::IntPoint(to_int64(pip.x), to_int64(pip.y))); } if (ClipperLib::Orientation(clip)) { @@ -407,8 +381,8 @@ void MergeWindowContours (const std::vector& a, clipper.AddPolygon(clip, ClipperLib::ptSubject); clip.clear(); - for(const IfcVector2& pip : b) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); + for (const IfcVector2 &pip : b) { + clip.push_back(ClipperLib::IntPoint(to_int64(pip.x), to_int64(pip.y))); } if (ClipperLib::Orientation(clip)) { @@ -416,22 +390,21 @@ void MergeWindowContours (const std::vector& a, } clipper.AddPolygon(clip, ClipperLib::ptSubject); - clipper.Execute(ClipperLib::ctUnion, out,ClipperLib::pftNonZero,ClipperLib::pftNonZero); + clipper.Execute(ClipperLib::ctUnion, out, ClipperLib::pftNonZero, ClipperLib::pftNonZero); } // ------------------------------------------------------------------------------------------------ // Subtract a from b -void MakeDisjunctWindowContours (const std::vector& a, - const std::vector& b, - ClipperLib::ExPolygons& out) -{ +void MakeDisjunctWindowContours(const std::vector &a, + const std::vector &b, + ClipperLib::ExPolygons &out) { out.clear(); ClipperLib::Clipper clipper; ClipperLib::Polygon clip; - for(const IfcVector2& pip : a) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); + for (const IfcVector2 &pip : a) { + clip.push_back(ClipperLib::IntPoint(to_int64(pip.x), to_int64(pip.y))); } if (ClipperLib::Orientation(clip)) { @@ -441,8 +414,8 @@ void MakeDisjunctWindowContours (const std::vector& a, clipper.AddPolygon(clip, ClipperLib::ptClip); clip.clear(); - for(const IfcVector2& pip : b) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); + for (const IfcVector2 &pip : b) { + clip.push_back(ClipperLib::IntPoint(to_int64(pip.x), to_int64(pip.y))); } if (ClipperLib::Orientation(clip)) { @@ -450,31 +423,30 @@ void MakeDisjunctWindowContours (const std::vector& a, } clipper.AddPolygon(clip, ClipperLib::ptSubject); - clipper.Execute(ClipperLib::ctDifference, out,ClipperLib::pftNonZero,ClipperLib::pftNonZero); + clipper.Execute(ClipperLib::ctDifference, out, ClipperLib::pftNonZero, ClipperLib::pftNonZero); } // ------------------------------------------------------------------------------------------------ -void CleanupWindowContour(ProjectedWindowContour& window) -{ +void CleanupWindowContour(ProjectedWindowContour &window) { std::vector scratch; - std::vector& contour = window.contour; + std::vector &contour = window.contour; ClipperLib::Polygon subject; ClipperLib::Clipper clipper; ClipperLib::ExPolygons clipped; - for(const IfcVector2& pip : contour) { - subject.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); + for (const IfcVector2 &pip : contour) { + subject.push_back(ClipperLib::IntPoint(to_int64(pip.x), to_int64(pip.y))); } - clipper.AddPolygon(subject,ClipperLib::ptSubject); - clipper.Execute(ClipperLib::ctUnion,clipped,ClipperLib::pftNonZero,ClipperLib::pftNonZero); + clipper.AddPolygon(subject, ClipperLib::ptSubject); + clipper.Execute(ClipperLib::ctUnion, clipped, ClipperLib::pftNonZero, ClipperLib::pftNonZero); // This should yield only one polygon or something went wrong if (clipped.size() != 1) { // Empty polygon? drop the contour altogether - if(clipped.empty()) { + if (clipped.empty()) { IFCImporter::LogError("error during polygon clipping, window contour is degenerate"); window.FlagInvalid(); return; @@ -489,23 +461,19 @@ void CleanupWindowContour(ProjectedWindowContour& window) } // ------------------------------------------------------------------------------------------------ -void CleanupWindowContours(ContourVector& contours) -{ +void CleanupWindowContours(ContourVector &contours) { // Use PolyClipper to clean up window contours try { - for(ProjectedWindowContour& window : contours) { + for (ProjectedWindowContour &window : contours) { CleanupWindowContour(window); } - } - catch (const char* sx) { - IFCImporter::LogError("error during polygon clipping, window shape may be wrong: (Clipper: " - + std::string(sx) + ")"); + } catch (const char *sx) { + IFCImporter::LogError("error during polygon clipping, window shape may be wrong: (Clipper: " + std::string(sx) + ")"); } } // ------------------------------------------------------------------------------------------------ -void CleanupOuterContour(const std::vector& contour_flat, TempMesh& curmesh) -{ +void CleanupOuterContour(const std::vector &contour_flat, TempMesh &curmesh) { std::vector vold; std::vector iold; @@ -521,8 +489,8 @@ void CleanupOuterContour(const std::vector& contour_flat, TempMesh& ClipperLib::Polygon clip; clip.reserve(contour_flat.size()); - for(const IfcVector2& pip : contour_flat) { - clip.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); + for (const IfcVector2 &pip : contour_flat) { + clip.push_back(ClipperLib::IntPoint(to_int64(pip.x), to_int64(pip.y))); } if (!ClipperLib::Orientation(clip)) { @@ -535,31 +503,31 @@ void CleanupOuterContour(const std::vector& contour_flat, TempMesh& subject.reserve(4); size_t index = 0; size_t countdown = 0; - for(const IfcVector3& pip : curmesh.mVerts) { + for (const IfcVector3 &pip : curmesh.mVerts) { if (!countdown) { countdown = curmesh.mVertcnt[index++]; if (!countdown) { continue; } } - subject.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); + subject.push_back(ClipperLib::IntPoint(to_int64(pip.x), to_int64(pip.y))); if (--countdown == 0) { if (!ClipperLib::Orientation(subject)) { std::reverse(subject.begin(), subject.end()); } - clipper.AddPolygon(subject,ClipperLib::ptSubject); - clipper.AddPolygon(clip,ClipperLib::ptClip); + clipper.AddPolygon(subject, ClipperLib::ptSubject); + clipper.AddPolygon(clip, ClipperLib::ptClip); - clipper.Execute(ClipperLib::ctIntersection,clipped,ClipperLib::pftNonZero,ClipperLib::pftNonZero); + clipper.Execute(ClipperLib::ctIntersection, clipped, ClipperLib::pftNonZero, ClipperLib::pftNonZero); - for(const ClipperLib::ExPolygon& ex : clipped) { + for (const ClipperLib::ExPolygon &ex : clipped) { iold.push_back(static_cast(ex.outer.size())); - for(const ClipperLib::IntPoint& point : ex.outer) { + for (const ClipperLib::IntPoint &point : ex.outer) { vold.push_back(IfcVector3( - from_int64(point.X), - from_int64(point.Y), - 0.0f)); + from_int64(point.X), + from_int64(point.Y), + 0.0f)); } } @@ -568,45 +536,41 @@ void CleanupOuterContour(const std::vector& contour_flat, TempMesh& clipper.Clear(); } } - } - catch (const char* sx) { - IFCImporter::LogError("Ifc: error during polygon clipping, wall contour line may be wrong: (Clipper: " - + std::string(sx) + ")"); + } catch (const char *sx) { + IFCImporter::LogError("Ifc: error during polygon clipping, wall contour line may be wrong: (Clipper: " + std::string(sx) + ")"); return; } // swap data arrays - std::swap(vold,curmesh.mVerts); - std::swap(iold,curmesh.mVertcnt); + std::swap(vold, curmesh.mVerts); + std::swap(iold, curmesh.mVertcnt); } -typedef std::vector OpeningRefs; -typedef std::vector OpeningRefVector; +typedef std::vector OpeningRefs; +typedef std::vector OpeningRefVector; typedef std::vector -> ContourRefVector; + ContourVector::const_iterator, + Contour::const_iterator>> + ContourRefVector; // ------------------------------------------------------------------------------------------------ -bool BoundingBoxesAdjacent(const BoundingBox& bb, const BoundingBox& ibb) -{ +bool BoundingBoxesAdjacent(const BoundingBox &bb, const BoundingBox &ibb) { // TODO: I'm pretty sure there is a much more compact way to check this const IfcFloat epsilon = Math::getEpsilon(); - return (std::fabs(bb.second.x - ibb.first.x) < epsilon && bb.first.y <= ibb.second.y && bb.second.y >= ibb.first.y) || - (std::fabs(bb.first.x - ibb.second.x) < epsilon && ibb.first.y <= bb.second.y && ibb.second.y >= bb.first.y) || - (std::fabs(bb.second.y - ibb.first.y) < epsilon && bb.first.x <= ibb.second.x && bb.second.x >= ibb.first.x) || - (std::fabs(bb.first.y - ibb.second.y) < epsilon && ibb.first.x <= bb.second.x && ibb.second.x >= bb.first.x); + return (std::fabs(bb.second.x - ibb.first.x) < epsilon && bb.first.y <= ibb.second.y && bb.second.y >= ibb.first.y) || + (std::fabs(bb.first.x - ibb.second.x) < epsilon && ibb.first.y <= bb.second.y && ibb.second.y >= bb.first.y) || + (std::fabs(bb.second.y - ibb.first.y) < epsilon && bb.first.x <= ibb.second.x && bb.second.x >= ibb.first.x) || + (std::fabs(bb.first.y - ibb.second.y) < epsilon && ibb.first.x <= bb.second.x && ibb.second.x >= bb.first.x); } // ------------------------------------------------------------------------------------------------ // Check if m0,m1 intersects n0,n1 assuming same ordering of the points in the line segments // output the intersection points on n0,n1 -bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, - const IfcVector2& m0, const IfcVector2& m1, - IfcVector2& out0, IfcVector2& out1) -{ +bool IntersectingLineSegments(const IfcVector2 &n0, const IfcVector2 &n1, + const IfcVector2 &m0, const IfcVector2 &m1, + IfcVector2 &out0, IfcVector2 &out1) { const IfcVector2 n0_to_n1 = n1 - n0; const IfcVector2 n0_to_m0 = m0 - n0; @@ -619,11 +583,11 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, static const IfcFloat inf = std::numeric_limits::infinity(); - if (!(n0_to_m0.SquareLength() < e*e || std::fabs(n0_to_m0 * n0_to_n1) / (n0_to_m0.Length() * n0_to_n1.Length()) > 1-1e-5 )) { + if (!(n0_to_m0.SquareLength() < e * e || std::fabs(n0_to_m0 * n0_to_n1) / (n0_to_m0.Length() * n0_to_n1.Length()) > 1 - 1e-5)) { return false; } - if (!(n1_to_m1.SquareLength() < e*e || std::fabs(n1_to_m1 * n0_to_n1) / (n1_to_m1.Length() * n0_to_n1.Length()) > 1-1e-5 )) { + if (!(n1_to_m1.SquareLength() < e * e || std::fabs(n1_to_m1 * n0_to_n1) / (n1_to_m1.Length() * n0_to_n1.Length()) > 1 - 1e-5)) { return false; } @@ -635,7 +599,7 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, // the higher absolute difference is big enough as to avoid // divisions by zero, the case 0/0 ~ infinity is detected and // handled separately. - if(std::fabs(n0_to_n1.x) > std::fabs(n0_to_n1.y)) { + if (std::fabs(n0_to_n1.x) > std::fabs(n0_to_n1.y)) { s0 = n0_to_m0.x / n0_to_n1.x; s1 = n0_to_m1.x / n0_to_n1.x; @@ -645,8 +609,7 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, if (std::fabs(s1) == inf && std::fabs(n0_to_m1.x) < smalle) { s1 = 0.; } - } - else { + } else { s0 = n0_to_m0.y / n0_to_n1.y; s1 = n0_to_m1.y / n0_to_n1.y; @@ -659,16 +622,16 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, } if (s1 < s0) { - std::swap(s1,s0); + std::swap(s1, s0); } - s0 = std::max(0.0,s0); - s1 = std::max(0.0,s1); + s0 = std::max(0.0, s0); + s1 = std::max(0.0, s1); - s0 = std::min(1.0,s0); - s1 = std::min(1.0,s1); + s0 = std::min(1.0, s0); + s1 = std::min(1.0, s1); - if (std::fabs(s1-s0) < e) { + if (std::fabs(s1 - s0) < e) { return false; } @@ -679,14 +642,13 @@ bool IntersectingLineSegments(const IfcVector2& n0, const IfcVector2& n1, } // ------------------------------------------------------------------------------------------------ -void FindAdjacentContours(ContourVector::iterator current, const ContourVector& contours) -{ +void FindAdjacentContours(ContourVector::iterator current, const ContourVector &contours) { const IfcFloat sqlen_epsilon = static_cast(Math::getEpsilon()); - const BoundingBox& bb = (*current).bb; + const BoundingBox &bb = (*current).bb; // What is to be done here is to populate the skip lists for the contour // and to add necessary padding points when needed. - SkipList& skiplist = (*current).skiplist; + SkipList &skiplist = (*current).skiplist; // First step to find possible adjacent contours is to check for adjacent bounding // boxes. If the bounding boxes are not adjacent, the contours lines cannot possibly be. @@ -704,7 +666,7 @@ void FindAdjacentContours(ContourVector::iterator current, const ContourVector& const bool is_me = it == current; - const BoundingBox& ibb = (*it).bb; + const BoundingBox &ibb = (*it).bb; // Assumption: the bounding boxes are pairwise disjoint or identical ai_assert(is_me || !BoundingBoxesOverlapping(bb, ibb)); @@ -716,29 +678,28 @@ void FindAdjacentContours(ContourVector::iterator current, const ContourVector& // world Ifc files it will not matter since most windows that // are adjacent to each others are rectangular anyway. - Contour& ncontour = (*current).contour; - const Contour& mcontour = (*it).contour; + Contour &ncontour = (*current).contour; + const Contour &mcontour = (*it).contour; for (size_t n = 0; n < ncontour.size(); ++n) { const IfcVector2 n0 = ncontour[n]; - const IfcVector2 n1 = ncontour[(n+1) % ncontour.size()]; + const IfcVector2 n1 = ncontour[(n + 1) % ncontour.size()]; for (size_t m = 0, mend = (is_me ? n : mcontour.size()); m < mend; ++m) { ai_assert(&mcontour != &ncontour || m < n); const IfcVector2 m0 = mcontour[m]; - const IfcVector2 m1 = mcontour[(m+1) % mcontour.size()]; + const IfcVector2 m1 = mcontour[(m + 1) % mcontour.size()]; IfcVector2 isect0, isect1; - if (IntersectingLineSegments(n0,n1, m0, m1, isect0, isect1)) { + if (IntersectingLineSegments(n0, n1, m0, m1, isect0, isect1)) { if ((isect0 - n0).SquareLength() > sqlen_epsilon) { ++n; ncontour.insert(ncontour.begin() + n, isect0); skiplist.insert(skiplist.begin() + n, true); - } - else { + } else { skiplist[n] = true; } @@ -756,48 +717,44 @@ void FindAdjacentContours(ContourVector::iterator current, const ContourVector& } // ------------------------------------------------------------------------------------------------ -AI_FORCE_INLINE bool LikelyBorder(const IfcVector2& vdelta) -{ +AI_FORCE_INLINE bool LikelyBorder(const IfcVector2 &vdelta) { const IfcFloat dot_point_epsilon = static_cast(Math::getEpsilon()); return std::fabs(vdelta.x * vdelta.y) < dot_point_epsilon; } // ------------------------------------------------------------------------------------------------ -void FindBorderContours(ContourVector::iterator current) -{ - const IfcFloat border_epsilon_upper = static_cast(1-1e-4); +void FindBorderContours(ContourVector::iterator current) { + const IfcFloat border_epsilon_upper = static_cast(1 - 1e-4); const IfcFloat border_epsilon_lower = static_cast(1e-4); bool outer_border = false; bool start_on_outer_border = false; - SkipList& skiplist = (*current).skiplist; + SkipList &skiplist = (*current).skiplist; IfcVector2 last_proj_point; const Contour::const_iterator cbegin = (*current).contour.begin(), cend = (*current).contour.end(); for (Contour::const_iterator cit = cbegin; cit != cend; ++cit) { - const IfcVector2& proj_point = *cit; + const IfcVector2 &proj_point = *cit; // Check if this connection is along the outer boundary of the projection // plane. In such a case we better drop it because such 'edges' should // not have any geometry to close them (think of door openings). if (proj_point.x <= border_epsilon_lower || proj_point.x >= border_epsilon_upper || - proj_point.y <= border_epsilon_lower || proj_point.y >= border_epsilon_upper) { + proj_point.y <= border_epsilon_lower || proj_point.y >= border_epsilon_upper) { - if (outer_border) { - ai_assert(cit != cbegin); - if (LikelyBorder(proj_point - last_proj_point)) { - skiplist[std::distance(cbegin, cit) - 1] = true; - } - } - else if (cit == cbegin) { - start_on_outer_border = true; + if (outer_border) { + ai_assert(cit != cbegin); + if (LikelyBorder(proj_point - last_proj_point)) { + skiplist[std::distance(cbegin, cit) - 1] = true; } + } else if (cit == cbegin) { + start_on_outer_border = true; + } - outer_border = true; - } - else { + outer_border = true; + } else { outer_border = false; } @@ -806,30 +763,28 @@ void FindBorderContours(ContourVector::iterator current) // handle last segment if (outer_border && start_on_outer_border) { - const IfcVector2& proj_point = *cbegin; + const IfcVector2 &proj_point = *cbegin; if (LikelyBorder(proj_point - last_proj_point)) { - skiplist[skiplist.size()-1] = true; + skiplist[skiplist.size() - 1] = true; } } } // ------------------------------------------------------------------------------------------------ -AI_FORCE_INLINE bool LikelyDiagonal(IfcVector2 vdelta) -{ +AI_FORCE_INLINE bool LikelyDiagonal(IfcVector2 vdelta) { vdelta.x = std::fabs(vdelta.x); vdelta.y = std::fabs(vdelta.y); - return (std::fabs(vdelta.x-vdelta.y) < 0.8 * std::max(vdelta.x, vdelta.y)); + return (std::fabs(vdelta.x - vdelta.y) < 0.8 * std::max(vdelta.x, vdelta.y)); } // ------------------------------------------------------------------------------------------------ -void FindLikelyCrossingLines(ContourVector::iterator current) -{ - SkipList& skiplist = (*current).skiplist; +void FindLikelyCrossingLines(ContourVector::iterator current) { + SkipList &skiplist = (*current).skiplist; IfcVector2 last_proj_point; const Contour::const_iterator cbegin = (*current).contour.begin(), cend = (*current).contour.end(); for (Contour::const_iterator cit = cbegin; cit != cend; ++cit) { - const IfcVector2& proj_point = *cit; + const IfcVector2 &proj_point = *cit; if (cit != cbegin) { IfcVector2 vdelta = proj_point - last_proj_point; @@ -843,16 +798,15 @@ void FindLikelyCrossingLines(ContourVector::iterator current) // handle last segment if (LikelyDiagonal(*cbegin - last_proj_point)) { - skiplist[skiplist.size()-1] = true; + skiplist[skiplist.size() - 1] = true; } } // ------------------------------------------------------------------------------------------------ -size_t CloseWindows(ContourVector& contours, - const IfcMatrix4& minv, - OpeningRefVector& contours_to_openings, - TempMesh& curmesh) -{ +size_t CloseWindows(ContourVector &contours, + const IfcMatrix4 &minv, + OpeningRefVector &contours_to_openings, + TempMesh &curmesh) { size_t closed = 0; // For all contour points, check if one of the assigned openings does // already have points assigned to it. In this case, assume this is @@ -868,11 +822,11 @@ size_t CloseWindows(ContourVector& contours, if ((*it).IsInvalid()) { continue; } - OpeningRefs& refs = contours_to_openings[std::distance(contours.begin(), it)]; + OpeningRefs &refs = contours_to_openings[std::distance(contours.begin(), it)]; bool has_other_side = false; - for(const TempOpening* opening : refs) { - if(!opening->wallPoints.empty()) { + for (const TempOpening *opening : refs) { + if (!opening->wallPoints.empty()) { has_other_side = true; break; } @@ -895,7 +849,7 @@ size_t CloseWindows(ContourVector& contours, // be artifacts caused by numerical inaccuracies or other bugs in polyclipper // and our own code. Since rectangular openings are by far the most frequent // case, it is worth filtering for this corner case. - if((*it).is_rectangular) { + if ((*it).is_rectangular) { FindLikelyCrossingLines(it); } @@ -906,21 +860,21 @@ size_t CloseWindows(ContourVector& contours, curmesh.mVerts.reserve(curmesh.mVerts.size() + (*it).contour.size() * 4); curmesh.mVertcnt.reserve(curmesh.mVertcnt.size() + (*it).contour.size()); - bool reverseCountourFaces = false; + bool reverseCountourFaces = false; // compare base poly normal and contour normal to detect if we need to reverse the face winding - if(curmesh.mVertcnt.size() > 0) { - IfcVector3 basePolyNormal = TempMesh::ComputePolygonNormal(curmesh.mVerts.data(), curmesh.mVertcnt.front()); - - std::vector worldSpaceContourVtx(it->contour.size()); - - for(size_t a = 0; a < it->contour.size(); ++a) - worldSpaceContourVtx[a] = minv * IfcVector3(it->contour[a].x, it->contour[a].y, 0.0); - - IfcVector3 contourNormal = TempMesh::ComputePolygonNormal(worldSpaceContourVtx.data(), worldSpaceContourVtx.size()); - - reverseCountourFaces = (contourNormal * basePolyNormal) > 0.0; - } + if (curmesh.mVertcnt.size() > 0) { + IfcVector3 basePolyNormal = TempMesh::ComputePolygonNormal(curmesh.mVerts.data(), curmesh.mVertcnt.front()); + + std::vector worldSpaceContourVtx(it->contour.size()); + + for (size_t a = 0; a < it->contour.size(); ++a) + worldSpaceContourVtx[a] = minv * IfcVector3(it->contour[a].x, it->contour[a].y, 0.0); + + IfcVector3 contourNormal = TempMesh::ComputePolygonNormal(worldSpaceContourVtx.data(), worldSpaceContourVtx.size()); + + reverseCountourFaces = (contourNormal * basePolyNormal) > 0.0; + } // XXX this algorithm is really a bit inefficient - both in terms // of constant factor and of asymptotic runtime. @@ -933,22 +887,22 @@ size_t CloseWindows(ContourVector& contours, bool drop_this_edge = false; for (Contour::const_iterator cit = cbegin; cit != cend; ++cit, drop_this_edge = *skipit++) { - const IfcVector2& proj_point = *cit; + const IfcVector2 &proj_point = *cit; // Locate the closest opposite point. This should be a good heuristic to // connect only the points that are really intended to be connected. IfcFloat best = static_cast(1e10); IfcVector3 bestv; - const IfcVector3 world_point = minv * IfcVector3(proj_point.x,proj_point.y,0.0f); + const IfcVector3 world_point = minv * IfcVector3(proj_point.x, proj_point.y, 0.0f); - for(const TempOpening* opening : refs) { - for(const IfcVector3& other : opening->wallPoints) { + for (const TempOpening *opening : refs) { + for (const IfcVector3 &other : opening->wallPoints) { const IfcFloat sqdist = (world_point - other).SquareLength(); if (sqdist < best) { // avoid self-connections - if(sqdist < 1e-5) { + if (sqdist < 1e-5) { continue; } @@ -961,8 +915,7 @@ size_t CloseWindows(ContourVector& contours, if (drop_this_edge) { curmesh.mVerts.pop_back(); curmesh.mVerts.pop_back(); - } - else { + } else { curmesh.mVerts.push_back(((cit == cbegin) != reverseCountourFaces) ? world_point : bestv); curmesh.mVerts.push_back(((cit == cbegin) != reverseCountourFaces) ? bestv : world_point); @@ -989,24 +942,22 @@ size_t CloseWindows(ContourVector& contours, curmesh.mVertcnt.pop_back(); curmesh.mVerts.pop_back(); curmesh.mVerts.pop_back(); - } - else { + } else { curmesh.mVerts.push_back(reverseCountourFaces ? start0 : start1); curmesh.mVerts.push_back(reverseCountourFaces ? start1 : start0); } } } - } - else { + } else { const Contour::const_iterator cbegin = (*it).contour.begin(), cend = (*it).contour.end(); - for(TempOpening* opening : refs) { + for (TempOpening *opening : refs) { ai_assert(opening->wallPoints.empty()); opening->wallPoints.reserve(opening->wallPoints.capacity() + (*it).contour.size()); for (Contour::const_iterator cit = cbegin; cit != cend; ++cit) { - const IfcVector2& proj_point = *cit; - opening->wallPoints.push_back(minv * IfcVector3(proj_point.x,proj_point.y,0.0f)); + const IfcVector2 &proj_point = *cit; + opening->wallPoints.push_back(minv * IfcVector3(proj_point.x, proj_point.y, 0.0f)); } } } @@ -1015,12 +966,11 @@ size_t CloseWindows(ContourVector& contours, } // ------------------------------------------------------------------------------------------------ -void Quadrify(const std::vector< BoundingBox >& bbs, TempMesh& curmesh) -{ +void Quadrify(const std::vector &bbs, TempMesh &curmesh) { ai_assert(curmesh.IsEmpty()); std::vector quads; - quads.reserve(bbs.size()*4); + quads.reserve(bbs.size() * 4); // sort openings by x and y axis as a preliminiary to the QuadrifyPart() algorithm XYSortedField field; @@ -1028,26 +978,25 @@ void Quadrify(const std::vector< BoundingBox >& bbs, TempMesh& curmesh) if (field.find((*it).first) != field.end()) { IFCImporter::LogWarn("constraint failure during generation of wall openings, results may be faulty"); } - field[(*it).first] = std::distance(bbs.begin(),it); + field[(*it).first] = std::distance(bbs.begin(), it); } - QuadrifyPart(IfcVector2(),one_vec,field,bbs,quads); + QuadrifyPart(IfcVector2(), one_vec, field, bbs, quads); ai_assert(!(quads.size() % 4)); - curmesh.mVertcnt.resize(quads.size()/4,4); + curmesh.mVertcnt.resize(quads.size() / 4, 4); curmesh.mVerts.reserve(quads.size()); - for(const IfcVector2& v2 : quads) { + for (const IfcVector2 &v2 : quads) { curmesh.mVerts.push_back(IfcVector3(v2.x, v2.y, static_cast(0.0))); } } // ------------------------------------------------------------------------------------------------ -void Quadrify(const ContourVector& contours, TempMesh& curmesh) -{ +void Quadrify(const ContourVector &contours, TempMesh &curmesh) { std::vector bbs; bbs.reserve(contours.size()); - for(const ContourVector::value_type& val : contours) { + for (const ContourVector::value_type &val : contours) { bbs.push_back(val.bb); } @@ -1055,30 +1004,28 @@ void Quadrify(const ContourVector& contours, TempMesh& curmesh) } // ------------------------------------------------------------------------------------------------ -IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh& in_mesh, - bool &ok, IfcVector3& nor_out) -{ - const std::vector& in_verts = in_mesh.mVerts; +IfcMatrix4 ProjectOntoPlane(std::vector &out_contour, const TempMesh &in_mesh, + bool &ok, IfcVector3 &nor_out) { + const std::vector &in_verts = in_mesh.mVerts; ok = true; IfcMatrix4 m = IfcMatrix4(DerivePlaneCoordinateSpace(in_mesh, ok, nor_out)); - if(!ok) { + if (!ok) { return IfcMatrix4(); } #ifdef ASSIMP_BUILD_DEBUG const IfcFloat det = m.Determinant(); - ai_assert(std::fabs(det-1) < 1e-5); + ai_assert(std::fabs(det - 1) < 1e-5); #endif IfcFloat zcoord = 0; out_contour.reserve(in_verts.size()); - IfcVector3 vmin, vmax; MinMaxChooser()(vmin, vmax); // Project all points into the new coordinate system, collect min/max verts on the way - for(const IfcVector3& x : in_verts) { + for (const IfcVector3 &x : in_verts) { const IfcVector3 vv = m * x; // keep Z offset in the plane coordinate system. Ignoring precision issues // (which are present, of course), this should be the same value for @@ -1093,7 +1040,7 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh vmin = std::min(vv, vmin); vmax = std::max(vv, vmax); - out_contour.push_back(IfcVector2(vv.x,vv.y)); + out_contour.push_back(IfcVector2(vv.x, vv.y)); } zcoord /= in_verts.size(); @@ -1102,13 +1049,13 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh // [0,1] range. This gives us a consistent data range so all epsilons // used below can be constants. vmax -= vmin; - for(IfcVector2& vv : out_contour) { - vv.x = (vv.x - vmin.x) / vmax.x; - vv.y = (vv.y - vmin.y) / vmax.y; + for (IfcVector2 &vv : out_contour) { + vv.x = (vv.x - vmin.x) / vmax.x; + vv.y = (vv.y - vmin.y) / vmax.y; // sanity rounding - vv = std::max(vv,IfcVector2()); - vv = std::min(vv,one_vec); + vv = std::max(vv, IfcVector2()); + vv = std::min(vv, one_vec); } IfcMatrix4 mult; @@ -1123,15 +1070,15 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh // debug code to verify correctness #ifdef ASSIMP_BUILD_DEBUG std::vector out_contour2; - for(const IfcVector3& x : in_verts) { - const IfcVector3& vv = m * x; + for (const IfcVector3 &x : in_verts) { + const IfcVector3 &vv = m * x; - out_contour2.push_back(IfcVector2(vv.x,vv.y)); + out_contour2.push_back(IfcVector2(vv.x, vv.y)); ai_assert(std::fabs(vv.z) < vmax.z + 1e-8); } - for(size_t i = 0; i < out_contour.size(); ++i) { - ai_assert((out_contour[i]-out_contour2[i]).SquareLength() < 1e-6); + for (size_t i = 0; i < out_contour.size(); ++i) { + ai_assert((out_contour[i] - out_contour2[i]).SquareLength() < 1e-6); } #endif @@ -1139,13 +1086,12 @@ IfcMatrix4 ProjectOntoPlane(std::vector& out_contour, const TempMesh } // ------------------------------------------------------------------------------------------------ -bool GenerateOpenings(std::vector& openings, - const std::vector& nors, - TempMesh& curmesh, - bool check_intersection, - bool generate_connection_geometry, - const IfcVector3& wall_extrusion_axis) -{ +bool GenerateOpenings(std::vector &openings, + const std::vector &nors, + TempMesh &curmesh, + bool check_intersection, + bool generate_connection_geometry, + const IfcVector3 &wall_extrusion_axis) { OpeningRefVector contours_to_openings; // Try to derive a solid base plane within the current surface for use as @@ -1157,47 +1103,43 @@ bool GenerateOpenings(std::vector& openings, std::vector contour_flat; IfcVector3 nor; - const IfcMatrix4 m = ProjectOntoPlane(contour_flat, curmesh, ok, nor); - if(!ok) { + const IfcMatrix4 m = ProjectOntoPlane(contour_flat, curmesh, ok, nor); + if (!ok) { return false; } // Obtain inverse transform for getting back to world space later on - const IfcMatrix4 minv = IfcMatrix4(m).Inverse(); + const IfcMatrix4 mInverse = IfcMatrix4(m).Inverse(); // Compute bounding boxes for all 2D openings in projection space ContourVector contours; - std::vector temp_contour; - std::vector temp_contour2; - + std::vector temp_contour, temp_contour2; IfcVector3 wall_extrusion_axis_norm = wall_extrusion_axis; wall_extrusion_axis_norm.Normalize(); - for(TempOpening& opening :openings) { + for (TempOpening &opening : openings) { // extrusionDir may be 0,0,0 on case where the opening mesh is not an // IfcExtrudedAreaSolid but something else (i.e. a brep) IfcVector3 norm_extrusion_dir = opening.extrusionDir; if (norm_extrusion_dir.SquareLength() > 1e-10) { norm_extrusion_dir.Normalize(); - } - else { + } else { norm_extrusion_dir = IfcVector3(); } - TempMesh* profile_data = opening.profileMesh.get(); + TempMesh *profile_data = opening.profileMesh.get(); bool is_2d_source = false; if (opening.profileMesh2D && norm_extrusion_dir.SquareLength() > 0) { - if(std::fabs(norm_extrusion_dir * wall_extrusion_axis_norm) < 0.1) { + if (std::fabs(norm_extrusion_dir * wall_extrusion_axis_norm) < 0.1) { // horizontal extrusion if (std::fabs(norm_extrusion_dir * nor) > 0.9) { profile_data = opening.profileMesh2D.get(); is_2d_source = true; } - } - else { + } else { // vertical extrusion if (std::fabs(norm_extrusion_dir * nor) > 0.9) { profile_data = opening.profileMesh2D.get(); @@ -1207,7 +1149,7 @@ bool GenerateOpenings(std::vector& openings, } std::vector profile_verts = profile_data->mVerts; std::vector profile_vertcnts = profile_data->mVertcnt; - if(profile_verts.size() <= 2) { + if (profile_verts.size() <= 2) { continue; } @@ -1225,23 +1167,24 @@ bool GenerateOpenings(std::vector& openings, // take both - this would likely cause major screwup of vertex // winding, producing errors as late as in CloseWindows()). IfcFloat dmin, dmax; - MinMaxChooser()(dmin,dmax); + MinMaxChooser()(dmin, dmax); temp_contour.clear(); temp_contour2.clear(); - IfcVector2 vpmin,vpmax; - MinMaxChooser()(vpmin,vpmax); + IfcVector2 vpmin, vpmax; + MinMaxChooser()(vpmin, vpmax); - IfcVector2 vpmin2,vpmax2; - MinMaxChooser()(vpmin2,vpmax2); + IfcVector2 vpmin2, vpmax2; + MinMaxChooser()(vpmin2, vpmax2); for (size_t f = 0, vi_total = 0, fend = profile_vertcnts.size(); f < fend; ++f) { bool side_flag = true; if (!is_2d_source) { - const IfcVector3 face_nor = ((profile_verts[vi_total+2] - profile_verts[vi_total]) ^ - (profile_verts[vi_total+1] - profile_verts[vi_total])).Normalize(); + 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 = std::abs(nor * face_nor); if (abs_dot_face_nor < 0.9) { @@ -1253,30 +1196,29 @@ bool GenerateOpenings(std::vector& openings, } for (unsigned int vi = 0, vend = profile_vertcnts[f]; vi < vend; ++vi, ++vi_total) { - const IfcVector3& x = profile_verts[vi_total]; + const IfcVector3 &x = profile_verts[vi_total]; const IfcVector3 v = m * x; IfcVector2 vv(v.x, v.y); //if(check_intersection) { - dmin = std::min(dmin, v.z); - dmax = std::max(dmax, v.z); + dmin = std::min(dmin, v.z); + dmax = std::max(dmax, v.z); //} // sanity rounding - vv = std::max(vv,IfcVector2()); - vv = std::min(vv,one_vec); + vv = std::max(vv, IfcVector2()); + vv = std::min(vv, one_vec); - if(side_flag) { - vpmin = std::min(vpmin,vv); - vpmax = std::max(vpmax,vv); - } - else { - vpmin2 = std::min(vpmin2,vv); - vpmax2 = std::max(vpmax2,vv); + if (side_flag) { + vpmin = std::min(vpmin, vv); + vpmax = std::max(vpmax, vv); + } else { + vpmin2 = std::min(vpmin2, vv); + vpmax2 = std::max(vpmax2, vv); } - std::vector& store = side_flag ? temp_contour : temp_contour2; + std::vector &store = side_flag ? temp_contour : temp_contour2; if (!IsDuplicateVertex(vv, store)) { store.push_back(vv); @@ -1286,8 +1228,8 @@ bool GenerateOpenings(std::vector& openings, if (temp_contour2.size() > 2) { ai_assert(!is_2d_source); - const IfcVector2 area = vpmax-vpmin; - const IfcVector2 area2 = vpmax2-vpmin2; + const IfcVector2 area = vpmax - vpmin; + const IfcVector2 area2 = vpmax2 - vpmin2; if (temp_contour.size() <= 2 || std::fabs(area2.x * area2.y) > std::fabs(area.x * area.y)) { temp_contour.swap(temp_contour2); @@ -1295,30 +1237,30 @@ bool GenerateOpenings(std::vector& openings, vpmin = vpmin2; } } - if(temp_contour.size() <= 2) { + if (temp_contour.size() <= 2) { continue; } // TODO: This epsilon may be too large - const IfcFloat epsilon = std::fabs(dmax-dmin) * 0.0001; - if (!is_2d_source && check_intersection && (0 < dmin-epsilon || 0 > dmax+epsilon)) { + const IfcFloat epsilon = std::fabs(dmax - dmin) * 0.0001; + if (!is_2d_source && check_intersection && (0 < dmin - epsilon || 0 > dmax + epsilon)) { continue; } - BoundingBox bb = BoundingBox(vpmin,vpmax); + BoundingBox bb = BoundingBox(vpmin, vpmax); // Skip over very small openings - these are likely projection errors // (i.e. they don't belong to this side of the wall) - if(std::fabs(vpmax.x - vpmin.x) * std::fabs(vpmax.y - vpmin.y) < static_cast(1e-10)) { + if (std::fabs(vpmax.x - vpmin.x) * std::fabs(vpmax.y - vpmin.y) < static_cast(1e-10)) { continue; } - std::vector joined_openings(1, &opening); + std::vector joined_openings(1, &opening); bool is_rectangle = temp_contour.size() == 4; // See if this BB intersects or is in close adjacency to any other BB we have so far. - for (ContourVector::iterator it = contours.begin(); it != contours.end(); ) { - const BoundingBox& ibb = (*it).bb; + for (ContourVector::iterator it = contours.begin(); it != contours.end();) { + const BoundingBox &ibb = (*it).bb; if (BoundingBoxesOverlapping(ibb, bb)) { @@ -1326,22 +1268,22 @@ bool GenerateOpenings(std::vector& openings, is_rectangle = false; } - const std::vector& other = (*it).contour; + const std::vector &other = (*it).contour; ClipperLib::ExPolygons poly; // First check whether subtracting the old contour (to which ibb belongs) // from the new contour (to which bb belongs) yields an updated bb which // no longer overlaps ibb MakeDisjunctWindowContours(other, temp_contour, poly); - if(poly.size() == 1) { + if (poly.size() == 1) { - const BoundingBox newbb = GetBoundingBox(poly[0].outer); - if (!BoundingBoxesOverlapping(ibb, newbb )) { - // Good guy bounding box - bb = newbb ; + const BoundingBox newbb = GetBoundingBox2D(poly[0].outer); + if (!BoundingBoxesOverlapping(ibb, newbb)) { + // Good guy bounding box + bb = newbb; - ExtractVerticesFromClipper(poly[0].outer, temp_contour, false); - continue; + ExtractVerticesFromClipper(poly[0].outer, temp_contour, false); + continue; } } @@ -1352,13 +1294,11 @@ bool GenerateOpenings(std::vector& openings, if (poly.size() > 1) { return TryAddOpenings_Poly2Tri(openings, nors, curmesh); - } - else if (poly.size() == 0) { + } else if (poly.size() == 0) { IFCImporter::LogWarn("ignoring duplicate opening"); temp_contour.clear(); break; - } - else { + } else { IFCImporter::LogVerboseDebug("merging overlapping openings"); ExtractVerticesFromClipper(poly[0].outer, temp_contour, false); @@ -1368,10 +1308,10 @@ bool GenerateOpenings(std::vector& openings, // Update contour-to-opening tables accordingly if (generate_connection_geometry) { - std::vector& t = contours_to_openings[std::distance(contours.begin(),it)]; + std::vector &t = contours_to_openings[std::distance(contours.begin(), it)]; joined_openings.insert(joined_openings.end(), t.begin(), t.end()); - contours_to_openings.erase(contours_to_openings.begin() + std::distance(contours.begin(),it)); + contours_to_openings.erase(contours_to_openings.begin() + std::distance(contours.begin(), it)); } contours.erase(it); @@ -1386,11 +1326,11 @@ bool GenerateOpenings(std::vector& openings, ++it; } - if(!temp_contour.empty()) { + if (!temp_contour.empty()) { if (generate_connection_geometry) { - contours_to_openings.push_back(std::vector( - joined_openings.begin(), - joined_openings.end())); + contours_to_openings.push_back(std::vector( + joined_openings.begin(), + joined_openings.end())); } contours.push_back(ProjectedWindowContour(temp_contour, bb, is_rectangle)); @@ -1408,7 +1348,7 @@ bool GenerateOpenings(std::vector& openings, // Generate a base subdivision into quads to accommodate the given list // of window bounding boxes. - Quadrify(contours,curmesh); + Quadrify(contours, curmesh); // Run a sanity cleanup pass on the window contours to avoid generating // artifacts during the contour generation phase later on. @@ -1417,7 +1357,7 @@ bool GenerateOpenings(std::vector& openings, // Previously we reduced all windows to rectangular AABBs in projection // space, now it is time to fill the gaps between the BBs and the real // window openings. - InsertWindowContours(contours,openings, curmesh); + InsertWindowContours(contours, openings, curmesh); // Clip the entire outer contour of our current result against the real // outer contour of the surface. This is necessary because the result @@ -1426,24 +1366,23 @@ bool GenerateOpenings(std::vector& openings, CleanupOuterContour(contour_flat, curmesh); // Undo the projection and get back to world (or local object) space - for(IfcVector3& v3 : curmesh.mVerts) { - v3 = minv * v3; + for (IfcVector3 &v3 : curmesh.mVerts) { + v3 = mInverse * v3; } // Generate window caps to connect the symmetric openings on both sides // of the wall. if (generate_connection_geometry) { - CloseWindows(contours, minv, contours_to_openings, curmesh); + CloseWindows(contours, mInverse, contours_to_openings, curmesh); } return true; } // ------------------------------------------------------------------------------------------------ -bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std::vector& nors, - TempMesh& curmesh) -{ +bool TryAddOpenings_Poly2Tri(const std::vector &openings, const std::vector &nors, + TempMesh &curmesh) { IFCImporter::LogWarn("forced to use poly2tri fallback method to generate wall openings"); - std::vector& out = curmesh.mVerts; + std::vector &out = curmesh.mVerts; bool result = false; @@ -1456,8 +1395,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: return false; } - const IfcMatrix3 minv = IfcMatrix3(m).Inverse(); - + const IfcMatrix3 mInverse = IfcMatrix3(m).Inverse(); IfcFloat coord = -1; @@ -1468,14 +1406,13 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: MinMaxChooser()(vmin, vmax); // Move all points into the new coordinate system, collecting min/max verts on the way - for(IfcVector3& x : out) { + for (IfcVector3 &x : out) { const IfcVector3 vv = m * x; // keep Z offset in the plane coordinate system. Ignoring precision issues // (which are present, of course), this should be the same value for // all polygon vertices (assuming the polygon is planar). - // XXX this should be guarded, but we somehow need to pick a suitable // epsilon // if(coord != -1.0f) { @@ -1487,7 +1424,7 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: vmin = std::min(IfcVector2(vv.x, vv.y), vmin); vmax = std::max(IfcVector2(vv.x, vv.y), vmax); - contour_flat.push_back(IfcVector2(vv.x,vv.y)); + contour_flat.push_back(IfcVector2(vv.x, vv.y)); } // With the current code in DerivePlaneCoordinateSpace, @@ -1502,7 +1439,6 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: ClipperLib::ExPolygons clipped; ClipperLib::Polygons holes_union; - IfcVector3 wall_extrusion; bool first = true; @@ -1511,22 +1447,22 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: ClipperLib::Clipper clipper_holes; size_t c = 0; - for(const TempOpening& t :openings) { - const IfcVector3& outernor = nors[c++]; + for (const TempOpening &t : openings) { + const IfcVector3 &outernor = nors[c++]; const IfcFloat dot = nor * outernor; - if (std::fabs(dot)<1.f-1e-6f) { + if (std::fabs(dot) < 1.f - 1e-6f) { continue; } - const std::vector& va = t.profileMesh->mVerts; - if(va.size() <= 2) { + const std::vector &va = t.profileMesh->mVerts; + if (va.size() <= 2) { continue; } std::vector contour; - for(const IfcVector3& xx : t.profileMesh->mVerts) { - IfcVector3 vv = m * xx, vv_extr = m * (xx + t.extrusionDir); + for (const IfcVector3 &xx : t.profileMesh->mVerts) { + IfcVector3 vv = m * xx, vv_extr = m * (xx + t.extrusionDir); const bool is_extruded_side = std::fabs(vv.z - coord) > std::fabs(vv_extr.z - coord); if (first) { @@ -1534,27 +1470,27 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: if (dot > 0.f) { wall_extrusion = t.extrusionDir; if (is_extruded_side) { - wall_extrusion = - wall_extrusion; + wall_extrusion = -wall_extrusion; } } } // XXX should not be necessary - but it is. Why? For precision reasons? vv = is_extruded_side ? vv_extr : vv; - contour.push_back(IfcVector2(vv.x,vv.y)); + contour.push_back(IfcVector2(vv.x, vv.y)); } ClipperLib::Polygon hole; - for(IfcVector2& pip : contour) { - pip.x = (pip.x - vmin.x) / vmax.x; - pip.y = (pip.y - vmin.y) / vmax.y; + for (IfcVector2 &pip : contour) { + pip.x = (pip.x - vmin.x) / vmax.x; + pip.y = (pip.y - vmin.y) / vmax.y; - hole.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); + hole.push_back(ClipperLib::IntPoint(to_int64(pip.x), to_int64(pip.y))); } if (!ClipperLib::Orientation(hole)) { std::reverse(hole.begin(), hole.end()); - // assert(ClipperLib::Orientation(hole)); + // assert(ClipperLib::Orientation(hole)); } /*ClipperLib::Polygons pol_temp(1), pol_temp2(1); @@ -1563,12 +1499,12 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: ClipperLib::OffsetPolygons(pol_temp,pol_temp2,5.0); hole = pol_temp2[0];*/ - clipper_holes.AddPolygon(hole,ClipperLib::ptSubject); + clipper_holes.AddPolygon(hole, ClipperLib::ptSubject); } - clipper_holes.Execute(ClipperLib::ctUnion,holes_union, - ClipperLib::pftNonZero, - ClipperLib::pftNonZero); + clipper_holes.Execute(ClipperLib::ctUnion, holes_union, + ClipperLib::pftNonZero, + ClipperLib::pftNonZero); if (holes_union.empty()) { return false; @@ -1578,29 +1514,27 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: // to obtain the final polygon to feed into the triangulator. { ClipperLib::Polygon poly; - for(IfcVector2& pip : contour_flat) { - pip.x = (pip.x - vmin.x) / vmax.x; - pip.y = (pip.y - vmin.y) / vmax.y; + for (IfcVector2 &pip : contour_flat) { + pip.x = (pip.x - vmin.x) / vmax.x; + pip.y = (pip.y - vmin.y) / vmax.y; - poly.push_back(ClipperLib::IntPoint( to_int64(pip.x), to_int64(pip.y) )); + poly.push_back(ClipperLib::IntPoint(to_int64(pip.x), to_int64(pip.y))); } if (ClipperLib::Orientation(poly)) { std::reverse(poly.begin(), poly.end()); } clipper_holes.Clear(); - clipper_holes.AddPolygon(poly,ClipperLib::ptSubject); + clipper_holes.AddPolygon(poly, ClipperLib::ptSubject); - clipper_holes.AddPolygons(holes_union,ClipperLib::ptClip); - clipper_holes.Execute(ClipperLib::ctDifference,clipped, - ClipperLib::pftNonZero, - ClipperLib::pftNonZero); + clipper_holes.AddPolygons(holes_union, ClipperLib::ptClip); + clipper_holes.Execute(ClipperLib::ctDifference, clipped, + ClipperLib::pftNonZero, + ClipperLib::pftNonZero); } - } - catch (const char* sx) { - IFCImporter::LogError("Ifc: error during polygon clipping, skipping openings for this face: (Clipper: " - + std::string(sx) + ")"); + } catch (const char *sx) { + IFCImporter::LogError("Ifc: error during polygon clipping, skipping openings for this face: (Clipper: " + std::string(sx) + ")"); return false; } @@ -1611,40 +1545,37 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: old_verts.swap(curmesh.mVerts); old_vertcnt.swap(curmesh.mVertcnt); - std::vector< std::vector > contours; - for(ClipperLib::ExPolygon& clip : clipped) { + std::vector> contours; + for (ClipperLib::ExPolygon &clip : clipped) { contours.clear(); // Build the outer polygon contour line for feeding into poly2tri - std::vector contour_points; - for(ClipperLib::IntPoint& point : clip.outer) { - contour_points.push_back( new p2t::Point(from_int64(point.X), from_int64(point.Y)) ); + std::vector contour_points; + for (ClipperLib::IntPoint &point : clip.outer) { + contour_points.push_back(new p2t::Point(from_int64(point.X), from_int64(point.Y))); } - p2t::CDT* cdt ; + p2t::CDT *cdt; try { // Note: this relies on custom modifications in poly2tri to raise runtime_error's // instead if assertions. These failures are not debug only, they can actually // happen in production use if the input data is broken. An assertion would be // inappropriate. cdt = new p2t::CDT(contour_points); - } - catch(const std::exception& e) { - IFCImporter::LogError("Ifc: error during polygon triangulation, skipping some openings: (poly2tri: " - + std::string(e.what()) + ")"); + } catch (const std::exception &e) { + IFCImporter::LogError("Ifc: error during polygon triangulation, skipping some openings: (poly2tri: " + std::string(e.what()) + ")"); continue; } - // Build the poly2tri inner contours for all holes we got from ClipperLib - for(ClipperLib::Polygon& opening : clip.holes) { + for (ClipperLib::Polygon &opening : clip.holes) { - contours.push_back(std::vector()); - std::vector& contour = contours.back(); + contours.push_back(std::vector()); + std::vector &contour = contours.back(); - for(ClipperLib::IntPoint& point : opening) { - contour.push_back( new p2t::Point(from_int64(point.X), from_int64(point.Y)) ); + for (ClipperLib::IntPoint &point : opening) { + contour.push_back(new p2t::Point(from_int64(point.X), from_int64(point.Y))); } cdt->AddHole(contour); @@ -1653,26 +1584,23 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: try { // Note: See above cdt->Triangulate(); - } - catch(const std::exception& e) { - IFCImporter::LogError("Ifc: error during polygon triangulation, skipping some openings: (poly2tri: " - + std::string(e.what()) + ")"); + } catch (const std::exception &e) { + IFCImporter::LogError("Ifc: error during polygon triangulation, skipping some openings: (poly2tri: " + std::string(e.what()) + ")"); continue; } - const std::vector tris = cdt->GetTriangles(); + const std::vector tris = cdt->GetTriangles(); // Collect the triangles we just produced - for(p2t::Triangle* tri : tris) { - for(int i = 0; i < 3; ++i) { + for (p2t::Triangle *tri : tris) { + for (int i = 0; i < 3; ++i) { const IfcVector2 v = IfcVector2( - static_cast( tri->GetPoint(i)->x ), - static_cast( tri->GetPoint(i)->y ) - ); + static_cast(tri->GetPoint(i)->x), + static_cast(tri->GetPoint(i)->y)); ai_assert(v.x <= 1.0 && v.x >= 0.0 && v.y <= 1.0 && v.y >= 0.0); - const IfcVector3 v3 = minv * IfcVector3(vmin.x + v.x * vmax.x, vmin.y + v.y * vmax.y,coord) ; + const IfcVector3 v3 = mInverse * IfcVector3(vmin.x + v.x * vmax.x, vmin.y + v.y * vmax.y, coord); curmesh.mVerts.push_back(v3); } @@ -1684,8 +1612,8 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: if (!result) { // revert -- it's a shame, but better than nothing - curmesh.mVerts.insert(curmesh.mVerts.end(),old_verts.begin(), old_verts.end()); - curmesh.mVertcnt.insert(curmesh.mVertcnt.end(),old_vertcnt.begin(), old_vertcnt.end()); + curmesh.mVerts.insert(curmesh.mVerts.end(), old_verts.begin(), old_verts.end()); + curmesh.mVertcnt.insert(curmesh.mVertcnt.end(), old_vertcnt.begin(), old_vertcnt.end()); IFCImporter::LogError("Ifc: revert, could not generate openings for this wall"); } @@ -1693,9 +1621,8 @@ bool TryAddOpenings_Poly2Tri(const std::vector& openings,const std: return result; } - - } // ! IFC -} // ! Assimp +} // namespace IFC +} // namespace Assimp #undef to_int64 #undef from_int64 diff --git a/code/AssetLib/IFC/IFCUtil.cpp b/code/AssetLib/IFC/IFCUtil.cpp index ffd0d680e..723dd6dcc 100644 --- a/code/AssetLib/IFC/IFCUtil.cpp +++ b/code/AssetLib/IFC/IFCUtil.cpp @@ -192,7 +192,7 @@ void TempMesh::ComputePolygonNormals(std::vector &normals, bool norm size_t vidx = std::accumulate(mVertcnt.begin(), begin, 0); for (iit = begin; iit != end; vidx += *iit++) { if (!*iit) { - normals.push_back(IfcVector3()); + normals.emplace_back(); continue; } for (size_t vofs = 0, cnt = 0; vofs < *iit; ++vofs) { @@ -206,7 +206,7 @@ void TempMesh::ComputePolygonNormals(std::vector &normals, bool norm ++cnt; } - normals.push_back(IfcVector3()); + normals.emplace_back(); NewellNormal<4, 4, 4>(normals.back(), *iit, &temp[0], &temp[1], &temp[2], Capa); } diff --git a/code/AssetLib/IFC/IFCUtil.h b/code/AssetLib/IFC/IFCUtil.h index 2b7fba3b2..99f6ef15c 100644 --- a/code/AssetLib/IFC/IFCUtil.h +++ b/code/AssetLib/IFC/IFCUtil.h @@ -4,7 +4,6 @@ Open Asset Import Library (assimp) Copyright (c) 2006-2020, assimp team - All rights reserved. Redistribution and use of this software in source and binary forms, @@ -47,40 +46,37 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #ifndef INCLUDED_IFCUTIL_H #define INCLUDED_IFCUTIL_H -#include "AssetLib/IFC/IFCReaderGen_2x3.h" #include "AssetLib/IFC/IFCLoader.h" +#include "AssetLib/IFC/IFCReaderGen_2x3.h" #include "AssetLib/Step/STEPFile.h" -#include #include +#include struct aiNode; namespace Assimp { namespace IFC { - typedef double IfcFloat; - - // IfcFloat-precision math data types - typedef aiVector2t IfcVector2; - typedef aiVector3t IfcVector3; - typedef aiMatrix4x4t IfcMatrix4; - typedef aiMatrix3x3t IfcMatrix3; - typedef aiColor4t IfcColor4; +using IfcFloat = double; +// IfcFloat-precision math data types +using IfcVector2 = aiVector2t; +using IfcVector3 = aiVector3t; +using IfcMatrix4 = aiMatrix4x4t; +using IfcMatrix3 = aiMatrix3x3t; +using IfcColor4 = aiColor4t; // ------------------------------------------------------------------------------------------------ // Helper for std::for_each to delete all heap-allocated items in a container // ------------------------------------------------------------------------------------------------ -template +template struct delete_fun { - void operator()(T* del) { + void operator()(T *del) { delete del; } }; - - // ------------------------------------------------------------------------------------------------ // Helper used during mesh construction. Aids at creating aiMesh'es out of relatively few polygons. // ------------------------------------------------------------------------------------------------ @@ -89,32 +85,29 @@ struct TempMesh { std::vector mVertcnt; // utilities - aiMesh* ToMesh(); + aiMesh *ToMesh(); void Clear(); - void Transform(const IfcMatrix4& mat); + void Transform(const IfcMatrix4 &mat); IfcVector3 Center() const; - void Append(const TempMesh& other); + void Append(const TempMesh &other); bool IsEmpty() const; void RemoveAdjacentDuplicates(); void RemoveDegenerates(); void FixupFaceOrientation(); - static IfcVector3 ComputePolygonNormal(const IfcVector3* vtcs, size_t cnt, bool normalize = true); + static IfcVector3 ComputePolygonNormal(const IfcVector3 *vtcs, size_t cnt, bool normalize = true); IfcVector3 ComputeLastPolygonNormal(bool normalize = true) const; - void ComputePolygonNormals(std::vector& normals, bool normalize = true, size_t ofs = 0) const; - void Swap(TempMesh& other); + void ComputePolygonNormals(std::vector &normals, bool normalize = true, size_t ofs = 0) const; + void Swap(TempMesh &other); }; -inline -bool TempMesh::IsEmpty() const { +inline bool TempMesh::IsEmpty() const { return mVerts.empty() && mVertcnt.empty(); } - // ------------------------------------------------------------------------------------------------ // Temporary representation of an opening in a wall or a floor // ------------------------------------------------------------------------------------------------ -struct TempOpening -{ +struct TempOpening { const IFC::Schema_2x3::IfcSolidModel *solid; IfcVector3 extrusionDir; @@ -129,90 +122,98 @@ struct TempOpening std::vector wallPoints; // ------------------------------------------------------------------------------ - TempOpening() - : solid() - , extrusionDir() - , profileMesh() - { + TempOpening() : + solid(), + extrusionDir(), + profileMesh() { + // empty } // ------------------------------------------------------------------------------ - TempOpening(const IFC::Schema_2x3::IfcSolidModel* solid,IfcVector3 extrusionDir, - std::shared_ptr profileMesh, - std::shared_ptr profileMesh2D) - : solid(solid) - , extrusionDir(extrusionDir) - , profileMesh(profileMesh) - , profileMesh2D(profileMesh2D) - { + TempOpening(const IFC::Schema_2x3::IfcSolidModel *solid, IfcVector3 extrusionDir, + std::shared_ptr profileMesh, + std::shared_ptr profileMesh2D) : + solid(solid), + extrusionDir(extrusionDir), + profileMesh(profileMesh), + profileMesh2D(profileMesh2D) { + // empty } // ------------------------------------------------------------------------------ - void Transform(const IfcMatrix4& mat); // defined later since TempMesh is not complete yet - - + void Transform(const IfcMatrix4 &mat); // defined later since TempMesh is not complete yet // ------------------------------------------------------------------------------ // Helper to sort openings by distance from a given base point struct DistanceSorter { - DistanceSorter(const IfcVector3& base) : base(base) {} + DistanceSorter(const IfcVector3 &base) : + base(base) {} - bool operator () (const TempOpening& a, const TempOpening& b) const { - return (a.profileMesh->Center()-base).SquareLength() < (b.profileMesh->Center()-base).SquareLength(); + bool operator()(const TempOpening &a, const TempOpening &b) const { + return (a.profileMesh->Center() - base).SquareLength() < (b.profileMesh->Center() - base).SquareLength(); } IfcVector3 base; }; }; - // ------------------------------------------------------------------------------------------------ // Intermediate data storage during conversion. Keeps everything and a bit more. // ------------------------------------------------------------------------------------------------ -struct ConversionData -{ - ConversionData(const STEP::DB& db, const IFC::Schema_2x3::IfcProject& proj, aiScene* out,const IFCImporter::Settings& settings) - : len_scale(1.0) - , angle_scale(-1.0) - , db(db) - , proj(proj) - , out(out) - , settings(settings) - , apply_openings() - , collect_openings() - {} +struct ConversionData { + ConversionData(const STEP::DB &db, const IFC::Schema_2x3::IfcProject &proj, aiScene *out, const IFCImporter::Settings &settings) : + len_scale(1.0), + angle_scale(-1.0), + plane_angle_in_radians(true), + db(db), + proj(proj), + out(out), + wcs(), + meshes(), + materials(), + cached_meshes(), + cached_materials(), + settings(settings), + apply_openings(nullptr), + collect_openings(nullptr), + already_processed() { + // empty + } ~ConversionData() { - std::for_each(meshes.begin(),meshes.end(),delete_fun()); - std::for_each(materials.begin(),materials.end(),delete_fun()); + std::for_each(meshes.begin(), meshes.end(), delete_fun()); + std::for_each(materials.begin(), materials.end(), delete_fun()); } IfcFloat len_scale, angle_scale; bool plane_angle_in_radians; - const STEP::DB& db; - const IFC::Schema_2x3::IfcProject& proj; - aiScene* out; + const STEP::DB &db; + const IFC::Schema_2x3::IfcProject &proj; + aiScene *out; IfcMatrix4 wcs; - std::vector meshes; - std::vector materials; + std::vector meshes; + std::vector materials; struct MeshCacheIndex { - const IFC::Schema_2x3::IfcRepresentationItem* item; unsigned int matindex; - MeshCacheIndex() : item(nullptr), matindex(0) { } - MeshCacheIndex(const IFC::Schema_2x3::IfcRepresentationItem* i, unsigned int mi) : item(i), matindex(mi) { } - bool operator == (const MeshCacheIndex& o) const { return item == o.item && matindex == o.matindex; } - bool operator < (const MeshCacheIndex& o) const { return item < o.item || (item == o.item && matindex < o.matindex); } + const IFC::Schema_2x3::IfcRepresentationItem *item; + unsigned int matindex; + MeshCacheIndex() : + item(nullptr), matindex(0) {} + MeshCacheIndex(const IFC::Schema_2x3::IfcRepresentationItem *i, unsigned int mi) : + item(i), matindex(mi) {} + bool operator==(const MeshCacheIndex &o) const { return item == o.item && matindex == o.matindex; } + bool operator<(const MeshCacheIndex &o) const { return item < o.item || (item == o.item && matindex < o.matindex); } }; - typedef std::map > MeshCache; + using MeshCache = std::map>; MeshCache cached_meshes; - typedef std::map MaterialCache; + using MaterialCache = std::map; MaterialCache cached_materials; - const IFCImporter::Settings& settings; + const IFCImporter::Settings &settings; // Intermediate arrays used to resolve openings in walls: only one of them // can be given at a time. apply_openings if present if the current element @@ -220,34 +221,33 @@ struct ConversionData // collect_openings is present only if the current element is an // IfcOpeningElement, for which all the geometry needs to be preserved // for later processing by a parent, which is a wall. - std::vector* apply_openings; - std::vector* collect_openings; + std::vector *apply_openings; + std::vector *collect_openings; std::set already_processed; }; - // ------------------------------------------------------------------------------------------------ // Binary predicate to compare vectors with a given, quadratic epsilon. // ------------------------------------------------------------------------------------------------ struct FuzzyVectorCompare { - FuzzyVectorCompare(IfcFloat epsilon) : epsilon(epsilon) {} - bool operator()(const IfcVector3& a, const IfcVector3& b) { - return std::abs((a-b).SquareLength()) < epsilon; + FuzzyVectorCompare(IfcFloat epsilon) : + epsilon(epsilon) {} + bool operator()(const IfcVector3 &a, const IfcVector3 &b) { + return std::abs((a - b).SquareLength()) < epsilon; } const IfcFloat epsilon; }; - // ------------------------------------------------------------------------------------------------ // Ordering predicate to totally order R^2 vectors first by x and then by y // ------------------------------------------------------------------------------------------------ struct XYSorter { // sort first by X coordinates, then by Y coordinates - bool operator () (const IfcVector2&a, const IfcVector2& b) const { + bool operator()(const IfcVector2 &a, const IfcVector2 &b) const { if (a.x == b.x) { return a.y < b.y; } @@ -255,67 +255,61 @@ struct XYSorter { } }; - - // conversion routines for common IFC entities, implemented in IFCUtil.cpp -void ConvertColor(aiColor4D& out, const Schema_2x3::IfcColourRgb& in); -void ConvertColor(aiColor4D& out, const Schema_2x3::IfcColourOrFactor& in,ConversionData& conv,const aiColor4D* base); -void ConvertCartesianPoint(IfcVector3& out, const Schema_2x3::IfcCartesianPoint& in); -void ConvertDirection(IfcVector3& out, const Schema_2x3::IfcDirection& in); -void ConvertVector(IfcVector3& out, const Schema_2x3::IfcVector& in); -void AssignMatrixAxes(IfcMatrix4& out, const IfcVector3& x, const IfcVector3& y, const IfcVector3& z); -void ConvertAxisPlacement(IfcMatrix4& out, const Schema_2x3::IfcAxis2Placement3D& in); -void ConvertAxisPlacement(IfcMatrix4& out, const Schema_2x3::IfcAxis2Placement2D& in); -void ConvertAxisPlacement(IfcVector3& axis, IfcVector3& pos, const IFC::Schema_2x3::IfcAxis1Placement& in); -void ConvertAxisPlacement(IfcMatrix4& out, const Schema_2x3::IfcAxis2Placement& in, ConversionData& conv); -void ConvertTransformOperator(IfcMatrix4& out, const Schema_2x3::IfcCartesianTransformationOperator& op); -bool IsTrue(const Assimp::STEP::EXPRESS::BOOLEAN& in); -IfcFloat ConvertSIPrefix(const std::string& prefix); - +void ConvertColor(aiColor4D &out, const Schema_2x3::IfcColourRgb &in); +void ConvertColor(aiColor4D &out, const Schema_2x3::IfcColourOrFactor &in, ConversionData &conv, const aiColor4D *base); +void ConvertCartesianPoint(IfcVector3 &out, const Schema_2x3::IfcCartesianPoint &in); +void ConvertDirection(IfcVector3 &out, const Schema_2x3::IfcDirection &in); +void ConvertVector(IfcVector3 &out, const Schema_2x3::IfcVector &in); +void AssignMatrixAxes(IfcMatrix4 &out, const IfcVector3 &x, const IfcVector3 &y, const IfcVector3 &z); +void ConvertAxisPlacement(IfcMatrix4 &out, const Schema_2x3::IfcAxis2Placement3D &in); +void ConvertAxisPlacement(IfcMatrix4 &out, const Schema_2x3::IfcAxis2Placement2D &in); +void ConvertAxisPlacement(IfcVector3 &axis, IfcVector3 &pos, const IFC::Schema_2x3::IfcAxis1Placement &in); +void ConvertAxisPlacement(IfcMatrix4 &out, const Schema_2x3::IfcAxis2Placement &in, ConversionData &conv); +void ConvertTransformOperator(IfcMatrix4 &out, const Schema_2x3::IfcCartesianTransformationOperator &op); +bool IsTrue(const Assimp::STEP::EXPRESS::BOOLEAN &in); +IfcFloat ConvertSIPrefix(const std::string &prefix); // IFCProfile.cpp -bool ProcessProfile(const Schema_2x3::IfcProfileDef& prof, TempMesh& meshout, ConversionData& conv); -bool ProcessCurve(const Schema_2x3::IfcCurve& curve, TempMesh& meshout, ConversionData& conv); +bool ProcessProfile(const Schema_2x3::IfcProfileDef &prof, TempMesh &meshout, ConversionData &conv); +bool ProcessCurve(const Schema_2x3::IfcCurve &curve, TempMesh &meshout, ConversionData &conv); // IFCMaterial.cpp -unsigned int ProcessMaterials(uint64_t id, unsigned int prevMatId, ConversionData& conv, bool forceDefaultMat); +unsigned int ProcessMaterials(uint64_t id, unsigned int prevMatId, ConversionData &conv, bool forceDefaultMat); // IFCGeometry.cpp -IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh& curmesh, bool& ok, IfcVector3& norOut); -bool ProcessRepresentationItem(const Schema_2x3::IfcRepresentationItem& item, unsigned int matid, std::set& mesh_indices, ConversionData& conv); -void AssignAddedMeshes(std::set& mesh_indices,aiNode* nd,ConversionData& /*conv*/); +IfcMatrix3 DerivePlaneCoordinateSpace(const TempMesh &curmesh, bool &ok, IfcVector3 &norOut); +bool ProcessRepresentationItem(const Schema_2x3::IfcRepresentationItem &item, unsigned int matid, std::set &mesh_indices, ConversionData &conv); +void AssignAddedMeshes(std::set &mesh_indices, aiNode *nd, ConversionData & /*conv*/); -void ProcessSweptAreaSolid(const Schema_2x3::IfcSweptAreaSolid& swept, TempMesh& meshout, - ConversionData& conv); +void ProcessSweptAreaSolid(const Schema_2x3::IfcSweptAreaSolid &swept, TempMesh &meshout, + ConversionData &conv); -void ProcessExtrudedAreaSolid(const Schema_2x3::IfcExtrudedAreaSolid& solid, TempMesh& result, - ConversionData& conv, bool collect_openings); +void ProcessExtrudedAreaSolid(const Schema_2x3::IfcExtrudedAreaSolid &solid, TempMesh &result, + ConversionData &conv, bool collect_openings); // IFCBoolean.cpp -void ProcessBoolean(const Schema_2x3::IfcBooleanResult& boolean, TempMesh& result, ConversionData& conv); -void ProcessBooleanHalfSpaceDifference(const Schema_2x3::IfcHalfSpaceSolid* hs, TempMesh& result, - const TempMesh& first_operand, - ConversionData& conv); - -void ProcessPolygonalBoundedBooleanHalfSpaceDifference(const Schema_2x3::IfcPolygonalBoundedHalfSpace* hs, TempMesh& result, - const TempMesh& first_operand, - ConversionData& conv); -void ProcessBooleanExtrudedAreaSolidDifference(const Schema_2x3::IfcExtrudedAreaSolid* as, TempMesh& result, - const TempMesh& first_operand, - ConversionData& conv); +void ProcessBoolean(const Schema_2x3::IfcBooleanResult &boolean, TempMesh &result, ConversionData &conv); +void ProcessBooleanHalfSpaceDifference(const Schema_2x3::IfcHalfSpaceSolid *hs, TempMesh &result, + const TempMesh &first_operand, + ConversionData &conv); +void ProcessPolygonalBoundedBooleanHalfSpaceDifference(const Schema_2x3::IfcPolygonalBoundedHalfSpace *hs, TempMesh &result, + const TempMesh &first_operand, + ConversionData &conv); +void ProcessBooleanExtrudedAreaSolidDifference(const Schema_2x3::IfcExtrudedAreaSolid *as, TempMesh &result, + const TempMesh &first_operand, + ConversionData &conv); // IFCOpenings.cpp -bool GenerateOpenings(std::vector& openings, - const std::vector& nors, - TempMesh& curmesh, - bool check_intersection, - bool generate_connection_geometry, - const IfcVector3& wall_extrusion_axis = IfcVector3(0,1,0)); - - +bool GenerateOpenings(std::vector &openings, + const std::vector &nors, + TempMesh &curmesh, + bool check_intersection, + bool generate_connection_geometry, + const IfcVector3 &wall_extrusion_axis = IfcVector3(0, 1, 0)); // IFCCurve.cpp @@ -324,8 +318,8 @@ bool GenerateOpenings(std::vector& openings, // ------------------------------------------------------------------------------------------------ class CurveError { public: - CurveError(const std::string& s) - : mStr(s) { + CurveError(const std::string &s) : + mStr(s) { // empty } @@ -338,18 +332,17 @@ public: // ------------------------------------------------------------------------------------------------ class Curve { protected: - Curve(const Schema_2x3::IfcCurve& base_entity, ConversionData& conv) - : base_entity(base_entity) - , conv(conv) { + Curve(const Schema_2x3::IfcCurve &base_entity, ConversionData &conv) : + base_entity(base_entity), + conv(conv) { // empty } public: - typedef std::pair ParamRange; + using ParamRange = std::pair; virtual ~Curve() {} - // check if a curve is closed virtual bool IsClosed() const = 0; @@ -359,56 +352,53 @@ public: // try to match a point on the curve to a given parameter // for self-intersecting curves, the result is not ambiguous and // it is undefined which parameter is returned. - virtual bool ReverseEval(const IfcVector3& val, IfcFloat& paramOut) const; + virtual bool ReverseEval(const IfcVector3 &val, IfcFloat ¶mOut) const; // get the range of the curve (both inclusive). // +inf and -inf are valid return values, the curve is not bounded in such a case. - virtual std::pair GetParametricRange() const = 0; + virtual std::pair GetParametricRange() const = 0; IfcFloat GetParametricRangeDelta() const; // estimate the number of sample points that this curve will require - virtual size_t EstimateSampleCount(IfcFloat start,IfcFloat end) const; + virtual size_t EstimateSampleCount(IfcFloat start, IfcFloat end) const; // intelligently sample the curve based on the current settings // and append the result to the mesh - virtual void SampleDiscrete(TempMesh& out,IfcFloat start,IfcFloat end) const; + virtual void SampleDiscrete(TempMesh &out, IfcFloat start, IfcFloat end) const; #ifdef ASSIMP_BUILD_DEBUG // check if a particular parameter value lies within the well-defined range bool InRange(IfcFloat) const; #endif - static Curve* Convert(const IFC::Schema_2x3::IfcCurve&,ConversionData& conv); + static Curve *Convert(const IFC::Schema_2x3::IfcCurve &, ConversionData &conv); protected: - const Schema_2x3::IfcCurve& base_entity; - ConversionData& conv; + const Schema_2x3::IfcCurve &base_entity; + ConversionData &conv; }; - // -------------------------------------------------------------------------------- // A BoundedCurve always holds the invariant that GetParametricRange() // never returns infinite values. // -------------------------------------------------------------------------------- class BoundedCurve : public Curve { public: - BoundedCurve(const Schema_2x3::IfcBoundedCurve& entity, ConversionData& conv) - : Curve(entity,conv) - {} + BoundedCurve(const Schema_2x3::IfcBoundedCurve &entity, ConversionData &conv) : + Curve(entity, conv) {} public: - - bool IsClosed() const; + bool IsClosed() const override; public: - // sample the entire curve - void SampleDiscrete(TempMesh& out) const; + void SampleDiscrete(TempMesh &out) const; using Curve::SampleDiscrete; }; // IfcProfile.cpp -bool ProcessCurve(const Schema_2x3::IfcCurve& curve, TempMesh& meshout, ConversionData& conv); -} -} +bool ProcessCurve(const Schema_2x3::IfcCurve &curve, TempMesh &meshout, ConversionData &conv); + +} // namespace IFC +} // namespace Assimp #endif diff --git a/code/Common/PolyTools.h b/code/Common/PolyTools.h index 35e88ef9a..f9c5bd6cb 100644 --- a/code/Common/PolyTools.h +++ b/code/Common/PolyTools.h @@ -4,7 +4,6 @@ Open Asset Import Library (assimp) Copyright (c) 2006-2020, assimp team - All rights reserved. Redistribution and use of this software in source and binary forms, @@ -51,134 +50,34 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. namespace Assimp { -// ------------------------------------------------------------------------------- -/** Compute the signed area of a triangle. - * The function accepts an unconstrained template parameter for use with - * both aiVector3D and aiVector2D, but generally ignores the third coordinate.*/ -template -inline double GetArea2D(const T &v1, const T &v2, const T &v3) { - return 0.5 * (v1.x * ((double)v3.y - v2.y) + v2.x * ((double)v1.y - v3.y) + v3.x * ((double)v2.y - v1.y)); -} +template +class TBoundingBox2D { + T mMin, mMax; -// ------------------------------------------------------------------------------- -/** Test if a given point p2 is on the left side of the line formed by p0-p1. - * The function accepts an unconstrained template parameter for use with - * both aiVector3D and aiVector2D, but generally ignores the third coordinate.*/ -template -inline bool OnLeftSideOfLine2D(const T &p0, const T &p1, const T &p2) { - return GetArea2D(p0, p2, p1) > 0; -} - -// ------------------------------------------------------------------------------- -/** Test if a given point is inside a given triangle in R2. - * The function accepts an unconstrained template parameter for use with - * both aiVector3D and aiVector2D, but generally ignores the third coordinate.*/ -template -inline bool PointInTriangle2D(const T &p0, const T &p1, const T &p2, const T &pp) { - // Point in triangle test using baryzentric coordinates - const aiVector2D v0 = p1 - p0; - const aiVector2D v1 = p2 - p0; - const aiVector2D v2 = pp - p0; - - double dot00 = v0 * v0; - double dot01 = v0 * v1; - double dot02 = v0 * v2; - double dot11 = v1 * v1; - double dot12 = v1 * v2; - - const double invDenom = 1 / (dot00 * dot11 - dot01 * dot01); - dot11 = (dot11 * dot02 - dot01 * dot12) * invDenom; - dot00 = (dot00 * dot12 - dot01 * dot02) * invDenom; - - return (dot11 > 0) && (dot00 > 0) && (dot11 + dot00 < 1); -} - -// ------------------------------------------------------------------------------- -/** Check whether the winding order of a given polygon is counter-clockwise. - * The function accepts an unconstrained template parameter, but is intended - * to be used only with aiVector2D and aiVector3D (z axis is ignored, only - * x and y are taken into account). - * @note Code taken from http://cgm.cs.mcgill.ca/~godfried/teaching/cg-projects/97/Ian/applet1.html and translated to C++ - */ -template -inline bool IsCCW(T *in, size_t npoints) { - double aa, bb, cc, b, c, theta; - double convex_turn; - double convex_sum = 0; - - ai_assert(npoints >= 3); - - for (size_t i = 0; i < npoints - 2; i++) { - aa = ((in[i + 2].x - in[i].x) * (in[i + 2].x - in[i].x)) + - ((-in[i + 2].y + in[i].y) * (-in[i + 2].y + in[i].y)); - - bb = ((in[i + 1].x - in[i].x) * (in[i + 1].x - in[i].x)) + - ((-in[i + 1].y + in[i].y) * (-in[i + 1].y + in[i].y)); - - cc = ((in[i + 2].x - in[i + 1].x) * - (in[i + 2].x - in[i + 1].x)) + - ((-in[i + 2].y + in[i + 1].y) * - (-in[i + 2].y + in[i + 1].y)); - - b = std::sqrt(bb); - c = std::sqrt(cc); - theta = std::acos((bb + cc - aa) / (2 * b * c)); - - if (OnLeftSideOfLine2D(in[i], in[i + 2], in[i + 1])) { - // if (convex(in[i].x, in[i].y, - // in[i+1].x, in[i+1].y, - // in[i+2].x, in[i+2].y)) { - convex_turn = AI_MATH_PI_F - theta; - convex_sum += convex_turn; - } else { - convex_sum -= AI_MATH_PI_F - theta; - } + TBoundingBox2D( const T &min, const T &max ) : + mMin( min ), + mMax( max ) { + // empty } - aa = ((in[1].x - in[npoints - 2].x) * - (in[1].x - in[npoints - 2].x)) + - ((-in[1].y + in[npoints - 2].y) * - (-in[1].y + in[npoints - 2].y)); +}; - bb = ((in[0].x - in[npoints - 2].x) * - (in[0].x - in[npoints - 2].x)) + - ((-in[0].y + in[npoints - 2].y) * - (-in[0].y + in[npoints - 2].y)); - - cc = ((in[1].x - in[0].x) * (in[1].x - in[0].x)) + - ((-in[1].y + in[0].y) * (-in[1].y + in[0].y)); - - b = std::sqrt(bb); - c = std::sqrt(cc); - theta = std::acos((bb + cc - aa) / (2 * b * c)); - - //if (convex(in[npoints-2].x, in[npoints-2].y, - // in[0].x, in[0].y, - // in[1].x, in[1].y)) { - if (OnLeftSideOfLine2D(in[npoints - 2], in[1], in[0])) { - convex_turn = AI_MATH_PI_F - theta; - convex_sum += convex_turn; - } else { - convex_sum -= AI_MATH_PI_F - theta; - } - - return convex_sum >= (2 * AI_MATH_PI_F); -} +using BoundingBox2D = TBoundingBox2D; // ------------------------------------------------------------------------------- -/** Compute the normal of an arbitrary polygon in R3. - * - * The code is based on Newell's formula, that is a polygons normal is the ratio - * of its area when projected onto the three coordinate axes. - * - * @param out Receives the output normal - * @param num Number of input vertices - * @param x X data source. x[ofs_x*n] is the n'th element. - * @param y Y data source. y[ofs_y*n] is the y'th element - * @param z Z data source. z[ofs_z*n] is the z'th element - * - * @note The data arrays must have storage for at least num+2 elements. Using - * this method is much faster than the 'other' NewellNormal() - */ +/// Compute the normal of an arbitrary polygon in R3. +/// +/// The code is based on Newell's formula, that is a polygons normal is the ratio +/// of its area when projected onto the three coordinate axes. +/// +/// @param out Receives the output normal +/// @param num Number of input vertices +/// @param x X data source. x[ofs_x*n] is the n'th element. +/// @param y Y data source. y[ofs_y*n] is the y'th element +/// @param z Z data source. z[ofs_z*n] is the z'th element +/// +/// @note The data arrays must have storage for at least num+2 elements. Using +/// this method is much faster than the 'other' NewellNormal() +// ------------------------------------------------------------------------------- template inline void NewellNormal(aiVector3t &out, size_t num, TReal *x, TReal *y, TReal *z, size_t bufferSize) { ai_assert(bufferSize > num); @@ -223,6 +122,69 @@ inline void NewellNormal(aiVector3t &out, size_t num, TReal *x, TReal *y, out = aiVector3t(sum_yz, sum_zx, sum_xy); } +// ------------------------------------------------------------------------------- +// ------------------------------------------------------------------------------- +template +inline aiMatrix4x4t DerivePlaneCoordinateSpace(const aiVector3t *vertices, size_t numVertices, bool &ok, aiVector3t &norOut) { + const aiVector3t *out = vertices; + aiMatrix4x4t m; + + ok = true; + + const size_t s = numVertices; + + const aiVector3t &any_point = out[numVertices - 1u]; + aiVector3t nor; + + // The input polygon is arbitrarily shaped, therefore we might need some tries + // until we find a suitable normal. Note that Newell's algorithm would give + // a more robust result, but this variant also gives us a suitable first + // axis for the 2D coordinate space on the polygon plane, exploiting the + // fact that the input polygon is nearly always a quad. + bool done = false; + size_t idx = 0; + for (size_t i = 0; !done && i < s - 2; done || ++i) { + idx = i; + for (size_t j = i + 1; j < s - 1; ++j) { + nor = -((out[i] - any_point) ^ (out[j] - any_point)); + if (std::fabs(nor.Length()) > 1e-8f) { + done = true; + break; + } + } + } + + if (!done) { + ok = false; + return m; + } + + nor.Normalize(); + norOut = nor; + + aiVector3t r = (out[idx] - any_point); + r.Normalize(); + + // Reconstruct orthonormal basis + // XXX use Gram Schmidt for increased robustness + aiVector3t u = r ^ nor; + u.Normalize(); + + m.a1 = r.x; + m.a2 = r.y; + m.a3 = r.z; + + m.b1 = u.x; + m.b2 = u.y; + m.b3 = u.z; + + m.c1 = -nor.x; + m.c2 = -nor.y; + m.c3 = -nor.z; + + return m; +} + } // namespace Assimp #endif diff --git a/code/PostProcessing/FindDegenerates.cpp b/code/PostProcessing/FindDegenerates.cpp index e5defdeb0..17dfaca4a 100644 --- a/code/PostProcessing/FindDegenerates.cpp +++ b/code/PostProcessing/FindDegenerates.cpp @@ -5,8 +5,6 @@ Open Asset Import Library (assimp) Copyright (c) 2006-2020, assimp team - - All rights reserved. Redistribution and use of this software in source and binary forms, @@ -45,25 +43,23 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * @brief Implementation of the FindDegenerates post-process step. */ - - // internal headers -#include "ProcessHelper.h" #include "FindDegenerates.h" +#include "ProcessHelper.h" #include using namespace Assimp; //remove mesh at position 'index' from the scene -static void removeMesh(aiScene* pScene, unsigned const index); +static void removeMesh(aiScene *pScene, unsigned const index); //correct node indices to meshes and remove references to deleted mesh -static void updateSceneGraph(aiNode* pNode, unsigned const index); +static void updateSceneGraph(aiNode *pNode, unsigned const index); // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer -FindDegeneratesProcess::FindDegeneratesProcess() -: mConfigRemoveDegenerates( false ) -, mConfigCheckAreaOfTriangle( false ){ +FindDegeneratesProcess::FindDegeneratesProcess() : + mConfigRemoveDegenerates(false), + mConfigCheckAreaOfTriangle(false) { // empty } @@ -75,24 +71,23 @@ FindDegeneratesProcess::~FindDegeneratesProcess() { // ------------------------------------------------------------------------------------------------ // Returns whether the processing step is present in the given flag field. -bool FindDegeneratesProcess::IsActive( unsigned int pFlags) const { +bool FindDegeneratesProcess::IsActive(unsigned int pFlags) const { return 0 != (pFlags & aiProcess_FindDegenerates); } // ------------------------------------------------------------------------------------------------ // Setup import configuration -void FindDegeneratesProcess::SetupProperties(const Importer* pImp) { +void FindDegeneratesProcess::SetupProperties(const Importer *pImp) { // Get the current value of AI_CONFIG_PP_FD_REMOVE - mConfigRemoveDegenerates = (0 != pImp->GetPropertyInteger(AI_CONFIG_PP_FD_REMOVE,0)); - mConfigCheckAreaOfTriangle = ( 0 != pImp->GetPropertyInteger(AI_CONFIG_PP_FD_CHECKAREA) ); + mConfigRemoveDegenerates = (0 != pImp->GetPropertyInteger(AI_CONFIG_PP_FD_REMOVE, 0)); + mConfigCheckAreaOfTriangle = (0 != pImp->GetPropertyInteger(AI_CONFIG_PP_FD_CHECKAREA)); } // ------------------------------------------------------------------------------------------------ // Executes the post processing step on the given imported data. -void FindDegeneratesProcess::Execute( aiScene* pScene) { +void FindDegeneratesProcess::Execute(aiScene *pScene) { ASSIMP_LOG_DEBUG("FindDegeneratesProcess begin"); - for (unsigned int i = 0; i < pScene->mNumMeshes;++i) - { + for (unsigned int i = 0; i < pScene->mNumMeshes; ++i) { //Do not process point cloud, ExecuteOnMesh works only with faces data if ((pScene->mMeshes[i]->mPrimitiveTypes != aiPrimitiveType::aiPrimitiveType_POINT) && ExecuteOnMesh(pScene->mMeshes[i])) { removeMesh(pScene, i); @@ -102,12 +97,12 @@ void FindDegeneratesProcess::Execute( aiScene* pScene) { ASSIMP_LOG_DEBUG("FindDegeneratesProcess finished"); } -static void removeMesh(aiScene* pScene, unsigned const index) { +static void removeMesh(aiScene *pScene, unsigned const index) { //we start at index and copy the pointers one position forward //save the mesh pointer to delete it later auto delete_me = pScene->mMeshes[index]; for (unsigned i = index; i < pScene->mNumMeshes - 1; ++i) { - pScene->mMeshes[i] = pScene->mMeshes[i+1]; + pScene->mMeshes[i] = pScene->mMeshes[i + 1]; } pScene->mMeshes[pScene->mNumMeshes - 1] = nullptr; --(pScene->mNumMeshes); @@ -117,15 +112,15 @@ static void removeMesh(aiScene* pScene, unsigned const index) { updateSceneGraph(pScene->mRootNode, index); } -static void updateSceneGraph(aiNode* pNode, unsigned const index) { +static void updateSceneGraph(aiNode *pNode, unsigned const index) { for (unsigned i = 0; i < pNode->mNumMeshes; ++i) { if (pNode->mMeshes[i] > index) { --(pNode->mMeshes[i]); continue; } if (pNode->mMeshes[i] == index) { - for (unsigned j = i; j < pNode->mNumMeshes -1; ++j) { - pNode->mMeshes[j] = pNode->mMeshes[j+1]; + for (unsigned j = i; j < pNode->mNumMeshes - 1; ++j) { + pNode->mMeshes[j] = pNode->mMeshes[j + 1]; } --(pNode->mNumMeshes); --i; @@ -138,50 +133,50 @@ static void updateSceneGraph(aiNode* pNode, unsigned const index) { } } -static ai_real heron( ai_real a, ai_real b, ai_real c ) { +static ai_real heron(ai_real a, ai_real b, ai_real c) { ai_real s = (a + b + c) / 2; - ai_real area = pow((s * ( s - a ) * ( s - b ) * ( s - c ) ), (ai_real)0.5 ); + ai_real area = pow((s * (s - a) * (s - b) * (s - c)), (ai_real)0.5); return area; } -static ai_real distance3D( const aiVector3D &vA, aiVector3D &vB ) { - const ai_real lx = ( vB.x - vA.x ); - const ai_real ly = ( vB.y - vA.y ); - const ai_real lz = ( vB.z - vA.z ); - ai_real a = lx*lx + ly*ly + lz*lz; - ai_real d = pow( a, (ai_real)0.5 ); +static ai_real distance3D(const aiVector3D &vA, aiVector3D &vB) { + const ai_real lx = (vB.x - vA.x); + const ai_real ly = (vB.y - vA.y); + const ai_real lz = (vB.z - vA.z); + ai_real a = lx * lx + ly * ly + lz * lz; + ai_real d = pow(a, (ai_real)0.5); return d; } -static ai_real calculateAreaOfTriangle( const aiFace& face, aiMesh* mesh ) { +static ai_real calculateAreaOfTriangle(const aiFace &face, aiMesh *mesh) { ai_real area = 0; - aiVector3D vA( mesh->mVertices[ face.mIndices[ 0 ] ] ); - aiVector3D vB( mesh->mVertices[ face.mIndices[ 1 ] ] ); - aiVector3D vC( mesh->mVertices[ face.mIndices[ 2 ] ] ); + aiVector3D vA(mesh->mVertices[face.mIndices[0]]); + aiVector3D vB(mesh->mVertices[face.mIndices[1]]); + aiVector3D vC(mesh->mVertices[face.mIndices[2]]); - ai_real a( distance3D( vA, vB ) ); - ai_real b( distance3D( vB, vC ) ); - ai_real c( distance3D( vC, vA ) ); - area = heron( a, b, c ); + ai_real a(distance3D(vA, vB)); + ai_real b(distance3D(vB, vC)); + ai_real c(distance3D(vC, vA)); + area = heron(a, b, c); return area; } // ------------------------------------------------------------------------------------------------ // Executes the post processing step on the given imported mesh -bool FindDegeneratesProcess::ExecuteOnMesh( aiMesh* mesh) { +bool FindDegeneratesProcess::ExecuteOnMesh(aiMesh *mesh) { mesh->mPrimitiveTypes = 0; std::vector remove_me; if (mConfigRemoveDegenerates) { - remove_me.resize( mesh->mNumFaces, false ); + remove_me.resize(mesh->mNumFaces, false); } unsigned int deg = 0, limit; - for ( unsigned int a = 0; a < mesh->mNumFaces; ++a ) { - aiFace& face = mesh->mFaces[a]; + for (unsigned int a = 0; a < mesh->mNumFaces; ++a) { + aiFace &face = mesh->mFaces[a]; bool first = true; // check whether the face contains degenerated entries @@ -191,43 +186,43 @@ bool FindDegeneratesProcess::ExecuteOnMesh( aiMesh* mesh) { // double points may not come directly after another. limit = face.mNumIndices; if (face.mNumIndices > 4) { - limit = std::min( limit, i+2 ); + limit = std::min(limit, i + 2); } - for (unsigned int t = i+1; t < limit; ++t) { - if (mesh->mVertices[face.mIndices[ i ] ] == mesh->mVertices[ face.mIndices[ t ] ]) { + for (unsigned int t = i + 1; t < limit; ++t) { + if (mesh->mVertices[face.mIndices[i]] == mesh->mVertices[face.mIndices[t]]) { // we have found a matching vertex position // remove the corresponding index from the array --face.mNumIndices; --limit; for (unsigned int m = t; m < face.mNumIndices; ++m) { - face.mIndices[ m ] = face.mIndices[ m+1 ]; + face.mIndices[m] = face.mIndices[m + 1]; } --t; // NOTE: we set the removed vertex index to an unique value // to make sure the developer gets notified when his // application attempts to access this data. - face.mIndices[ face.mNumIndices ] = 0xdeadbeef; + face.mIndices[face.mNumIndices] = 0xdeadbeef; - if(first) { + if (first) { ++deg; first = false; } - if ( mConfigRemoveDegenerates ) { - remove_me[ a ] = true; + if (mConfigRemoveDegenerates) { + remove_me[a] = true; goto evil_jump_outside; // hrhrhrh ... yeah, this rocks baby! } } } - if ( mConfigCheckAreaOfTriangle ) { - if ( face.mNumIndices == 3 ) { - ai_real area = calculateAreaOfTriangle( face, mesh ); - if ( area < 1e-6 ) { - if ( mConfigRemoveDegenerates ) { - remove_me[ a ] = true; + if (mConfigCheckAreaOfTriangle) { + if (face.mNumIndices == 3) { + ai_real area = calculateAreaOfTriangle(face, mesh); + if (area < 1e-6) { + if (mConfigRemoveDegenerates) { + remove_me[a] = true; ++deg; goto evil_jump_outside; } @@ -239,8 +234,7 @@ bool FindDegeneratesProcess::ExecuteOnMesh( aiMesh* mesh) { } // We need to update the primitive flags array of the mesh. - switch (face.mNumIndices) - { + switch (face.mNumIndices) { case 1u: mesh->mPrimitiveTypes |= aiPrimitiveType_POINT; break; @@ -254,30 +248,28 @@ bool FindDegeneratesProcess::ExecuteOnMesh( aiMesh* mesh) { mesh->mPrimitiveTypes |= aiPrimitiveType_POLYGON; break; }; -evil_jump_outside: + evil_jump_outside: continue; } // If AI_CONFIG_PP_FD_REMOVE is true, remove degenerated faces from the import if (mConfigRemoveDegenerates && deg) { unsigned int n = 0; - for (unsigned int a = 0; a < mesh->mNumFaces; ++a) - { - aiFace& face_src = mesh->mFaces[a]; + for (unsigned int a = 0; a < mesh->mNumFaces; ++a) { + aiFace &face_src = mesh->mFaces[a]; if (!remove_me[a]) { - aiFace& face_dest = mesh->mFaces[n++]; + aiFace &face_dest = mesh->mFaces[n++]; // Do a manual copy, keep the index array face_dest.mNumIndices = face_src.mNumIndices; - face_dest.mIndices = face_src.mIndices; + face_dest.mIndices = face_src.mIndices; if (&face_src != &face_dest) { // clear source face_src.mNumIndices = 0; face_src.mIndices = nullptr; } - } - else { + } else { // Otherwise delete it if we don't need this face delete[] face_src.mIndices; face_src.mIndices = nullptr; @@ -295,7 +287,7 @@ evil_jump_outside: } if (deg && !DefaultLogger::isNullLogger()) { - ASSIMP_LOG_WARN_F( "Found ", deg, " degenerated primitives"); + ASSIMP_LOG_WARN_F("Found ", deg, " degenerated primitives"); } return false; } diff --git a/code/PostProcessing/TriangulateProcess.cpp b/code/PostProcessing/TriangulateProcess.cpp index fc55d975a..2987705f6 100644 --- a/code/PostProcessing/TriangulateProcess.cpp +++ b/code/PostProcessing/TriangulateProcess.cpp @@ -47,34 +47,20 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * The triangulation algorithm will handle concave or convex polygons. * Self-intersecting or non-planar polygons are not rejected, but * they're probably not triangulated correctly. - * - * DEBUG SWITCHES - do not enable any of them in release builds: - * - * AI_BUILD_TRIANGULATE_COLOR_FACE_WINDING - * - generates vertex colors to represent the face winding order. - * the first vertex of a polygon becomes red, the last blue. - * AI_BUILD_TRIANGULATE_DEBUG_POLYS - * - dump all polygons and their triangulation sequences to - * a file */ + #ifndef ASSIMP_BUILD_NO_TRIANGULATE_PROCESS #include "PostProcessing/TriangulateProcess.h" #include "Common/PolyTools.h" #include "PostProcessing/ProcessHelper.h" +#include "contrib/poly2tri/poly2tri/poly2tri.h" + #include #include -//#define AI_BUILD_TRIANGULATE_COLOR_FACE_WINDING -#define AI_BUILD_TRIANGULATE_DEBUG_POLYS - -#define POLY_GRID_Y 40 -#define POLY_GRID_X 70 -#define POLY_GRID_XPAD 20 -#define POLY_OUTPUT_FILE "assimp_polygons_debug.txt" - -using namespace Assimp; +namespace Assimp { // ------------------------------------------------------------------------------------------------ // Constructor to be privately used by Importer @@ -128,6 +114,7 @@ static bool validateNumIndices(aiMesh *mesh) { return bNeed; } +// ------------------------------------------------------------------------------------------------ static void calulateNumOutputFaces(aiMesh *mesh, size_t &numOut, size_t &maxOut, bool &getNormals) { numOut = maxOut = 0; getNormals = true; @@ -146,6 +133,113 @@ static void calulateNumOutputFaces(aiMesh *mesh, size_t &numOut, size_t &maxOut, } } +// ------------------------------------------------------------------------------------------------ +static void quad2Triangles(const aiFace &face, const aiVector3D *verts, aiFace *curOut) { + // quads can have at maximum one concave vertex. Determine + // this vertex (if it exists) and start tri-fanning from + // it. + unsigned int start_vertex = 0; + for (unsigned int i = 0; i < 4; ++i) { + const aiVector3D &v0 = verts[face.mIndices[(i + 3) % 4]]; + const aiVector3D &v1 = verts[face.mIndices[(i + 2) % 4]]; + const aiVector3D &v2 = verts[face.mIndices[(i + 1) % 4]]; + + const aiVector3D &v = verts[face.mIndices[i]]; + + aiVector3D left = (v0 - v); + aiVector3D diag = (v1 - v); + aiVector3D right = (v2 - v); + + left.Normalize(); + diag.Normalize(); + right.Normalize(); + + const float angle = std::acos(left * diag) + std::acos(right * diag); + if (angle > AI_MATH_PI_F) { + // this is the concave point + start_vertex = i; + break; + } + } + + const unsigned int temp[] = { face.mIndices[0], face.mIndices[1], face.mIndices[2], face.mIndices[3] }; + + aiFace &nface = *curOut++; + nface.mNumIndices = 3; + nface.mIndices = face.mIndices; + + nface.mIndices[0] = temp[start_vertex]; + nface.mIndices[1] = temp[(start_vertex + 1) % 4]; + nface.mIndices[2] = temp[(start_vertex + 2) % 4]; + + aiFace &sface = *curOut++; + sface.mNumIndices = 3; + sface.mIndices = new unsigned int[3]; + + sface.mIndices[0] = temp[start_vertex]; + sface.mIndices[1] = temp[(start_vertex + 2) % 4]; + sface.mIndices[2] = temp[(start_vertex + 3) % 4]; +} + +// ------------------------------------------------------------------------------------------------ +bool getContourFromePolyline(aiFace &face, aiMesh *pMesh, std::vector &contour, + aiMatrix4x4 &m, aiVector3D &vmin, aiVector3D &vmax, ai_real &zcoord) { + aiVector3D normal; + bool ok = true; + m = DerivePlaneCoordinateSpace(pMesh->mVertices, pMesh->mNumVertices, ok, normal); + if (!ok) { + false; + } + for (unsigned int i = 0; i < face.mNumIndices; ++i) { + unsigned int index = face.mIndices[i]; + + const aiVector3D vv = m * pMesh->mVertices[index]; + // keep Z offset in the plane coordinate system. Ignoring precision issues + // (which are present, of course), this should be the same value for + // all polygon vertices (assuming the polygon is planar). + + // XXX this should be guarded, but we somehow need to pick a suitable + // epsilon + // if(coord != -1.0f) { + // assert(std::fabs(coord - vv.z) < 1e-3f); + // } + zcoord += vv.z; + vmin = std::min(vv, vmin); + vmax = std::max(vv, vmax); + + contour.push_back(new p2t::Point(vv.x, vv.y)); + } + + zcoord /= pMesh->mNumVertices; + + // Further improve the projection by mapping the entire working set into + // [0,1] range. This gives us a consistent data range so all epsilons + // used below can be constants. + vmax -= vmin; + const aiVector2D one_vec(1, 1); + + for (p2t::Point* &vv : contour) { + vv->x = (vv->x - vmin.x) / vmax.x; + vv->y = (vv->y - vmin.y) / vmax.y; + + // sanity rounding + aiVector2D cur_vv((ai_real) vv->x, (ai_real)vv->y); + cur_vv = std::max(cur_vv, aiVector2D()); + cur_vv = std::min(cur_vv, one_vec); + } + + aiMatrix4x4 mult; + mult.a1 = static_cast(1.0) / vmax.x; + mult.b2 = static_cast(1.0) / vmax.y; + + mult.a4 = -vmin.x * mult.a1; + mult.b4 = -vmin.y * mult.b2; + mult.c4 = -zcoord; + m = mult * m; + + return true; +} + // ------------------------------------------------------------------------------------------------ // Triangulates the given mesh. bool TriangulateProcess::TriangulateMesh(aiMesh *pMesh) { @@ -153,9 +247,11 @@ bool TriangulateProcess::TriangulateMesh(aiMesh *pMesh) { if (!pMesh->mPrimitiveTypes) { if (!validateNumIndices(pMesh)) { + ASSIMP_LOG_DEBUG("Error while validating number of indices."); return false; } } else if (!(pMesh->mPrimitiveTypes & aiPrimitiveType_POLYGON)) { + ASSIMP_LOG_DEBUG("???!"); return false; } @@ -163,17 +259,9 @@ bool TriangulateProcess::TriangulateMesh(aiMesh *pMesh) { size_t numOut = 0, max_out = 0; bool getNormals = true; calulateNumOutputFaces(pMesh, numOut, max_out, getNormals); - - // Just another check whether aiMesh::mPrimitiveTypes is correct - ai_assert(numOut != pMesh->mNumFaces); - - aiVector3D *nor_out = nullptr; - - // if we don't have normals yet, but expect them to be a cheap side - // product of triangulation anyway, allocate storage for them. - if (!pMesh->mNormals && getNormals) { - // XXX need a mechanism to inform the GenVertexNormals process to treat these normals as preprocessed per-face normals - // nor_out = pMesh->mNormals = new aiVector3D[pMesh->mNumVertices]; + if (numOut == pMesh->mNumFaces) { + ASSIMP_LOG_DEBUG("Error while generating contour."); + return false; } // the output mesh will contain triangles, but no polys anymore @@ -186,18 +274,6 @@ bool TriangulateProcess::TriangulateMesh(aiMesh *pMesh) { std::vector temp_verts(max_out + 2); // Apply vertex colors to represent the face winding? -#ifdef AI_BUILD_TRIANGULATE_COLOR_FACE_WINDING - if (!pMesh->mColors[0]) - pMesh->mColors[0] = new aiColor4D[pMesh->mNumVertices]; - else - new (pMesh->mColors[0]) aiColor4D[pMesh->mNumVertices]; - - aiColor4D *clr = pMesh->mColors[0]; -#endif - -#ifdef AI_BUILD_TRIANGULATE_DEBUG_POLYS - FILE *fout = fopen(POLY_OUTPUT_FILE, "a"); -#endif const aiVector3D *verts = pMesh->mVertices; @@ -206,20 +282,6 @@ bool TriangulateProcess::TriangulateMesh(aiMesh *pMesh) { for (unsigned int a = 0; a < pMesh->mNumFaces; a++) { aiFace &face = pMesh->mFaces[a]; - unsigned int *idx = face.mIndices; - int num = (int)face.mNumIndices, ear = 0, tmp, prev = num - 1, next = 0, max = num; - - // Apply vertex colors to represent the face winding? -#ifdef AI_BUILD_TRIANGULATE_COLOR_FACE_WINDING - for (unsigned int i = 0; i < face.mNumIndices; ++i) { - aiColor4D &c = clr[idx[i]]; - c.r = (i + 1) / (float)max; - c.b = 1.f - c.r; - } -#endif - - aiFace *const last_face = curOut; - // if it's a simple point,line or triangle: just copy it if (face.mNumIndices <= 3) { aiFace &nface = *curOut++; @@ -227,278 +289,52 @@ bool TriangulateProcess::TriangulateMesh(aiMesh *pMesh) { nface.mIndices = face.mIndices; face.mIndices = nullptr; - continue; - } - // optimized code for quadrilaterals - else if (face.mNumIndices == 4) { - - // quads can have at maximum one concave vertex. Determine - // this vertex (if it exists) and start tri-fanning from - // it. - unsigned int start_vertex = 0; - for (unsigned int i = 0; i < 4; ++i) { - const aiVector3D &v0 = verts[face.mIndices[(i + 3) % 4]]; - const aiVector3D &v1 = verts[face.mIndices[(i + 2) % 4]]; - const aiVector3D &v2 = verts[face.mIndices[(i + 1) % 4]]; - - const aiVector3D &v = verts[face.mIndices[i]]; - - aiVector3D left = (v0 - v); - aiVector3D diag = (v1 - v); - aiVector3D right = (v2 - v); - - left.Normalize(); - diag.Normalize(); - right.Normalize(); - - const float angle = std::acos(left * diag) + std::acos(right * diag); - if (angle > AI_MATH_PI_F) { - // this is the concave point - start_vertex = i; - break; - } - } - - const unsigned int temp[] = { face.mIndices[0], face.mIndices[1], face.mIndices[2], face.mIndices[3] }; - - aiFace &nface = *curOut++; - nface.mNumIndices = 3; - nface.mIndices = face.mIndices; - - nface.mIndices[0] = temp[start_vertex]; - nface.mIndices[1] = temp[(start_vertex + 1) % 4]; - nface.mIndices[2] = temp[(start_vertex + 2) % 4]; - - aiFace &sface = *curOut++; - sface.mNumIndices = 3; - sface.mIndices = new unsigned int[3]; - - sface.mIndices[0] = temp[start_vertex]; - sface.mIndices[1] = temp[(start_vertex + 2) % 4]; - sface.mIndices[2] = temp[(start_vertex + 3) % 4]; - - // prevent double deletion of the indices field + } else if (face.mNumIndices == 4) { + // optimized code for quadrilaterals + quad2Triangles(face, verts, curOut); face.mIndices = nullptr; - continue; } else { - // A polygon with more than 3 vertices can be either concave or convex. - // Usually everything we're getting is convex and we could easily - // triangulate by tri-fanning. However, LightWave is probably the only - // modeling suite to make extensive use of highly concave, monster polygons ... - // so we need to apply the full 'ear cutting' algorithm to get it right. - - // RERQUIREMENT: polygon is expected to be simple and *nearly* planar. - // We project it onto a plane to get a 2d triangle. - - // Collect all vertices of of the polygon. - for (tmp = 0; tmp < max; ++tmp) { - temp_verts3d[tmp] = verts[idx[tmp]]; + std::vector contour; + aiMatrix4x4 m; + aiVector3D vmin, vmax; + ai_real zcoord = -1; + if (!getContourFromePolyline(face, pMesh, contour, m, vmin, vmax, zcoord)) { + ASSIMP_LOG_DEBUG("Error while generating contour."); + continue; } - - // Get Newell-Normal of the polygon. Store it for future use if it's a polygon-only mesh - aiVector3D n; - NewellNormal<3, 3, 3>(n, max, &temp_verts3d.front().x, &temp_verts3d.front().y, &temp_verts3d.front().z, Capa); - if (nor_out) { - for (tmp = 0; tmp < max; ++tmp) - nor_out[idx[tmp]] = n; - } - - // Select largest normal coordinate to ignore for projection - const float ax = (n.x > 0 ? n.x : -n.x); - const float ay = (n.y > 0 ? n.y : -n.y); - const float az = (n.z > 0 ? n.z : -n.z); - - unsigned int ac = 0, bc = 1; // no z coord. projection to xy - float inv = n.z; - if (ax > ay) { - if (ax > az) { // no x coord. projection to yz - ac = 1; - bc = 2; - inv = n.x; + p2t::CDT cdt(contour); + cdt.Triangulate(); + const std::vector tris = cdt.GetTriangles(); + const aiMatrix4x4 matInv = m.Inverse(); + for (p2t::Triangle *tri : tris) { + curOut->mNumIndices = 3; + curOut->mIndices = new unsigned int[curOut->mNumIndices]; + for (int i = 0; i < 3; ++i) { + const aiVector2D v = aiVector2D(static_cast(tri->GetPoint(i)->x), static_cast(tri->GetPoint(i)->y)); +// ai_assert(v.x <= 1.0 && v.x >= 0.0 && v.y <= 1.0 && v.y >= 0.0); + const aiVector3D v3 = matInv * aiVector3D(vmin.x + v.x * vmax.x, vmin.y + v.y * vmax.y, zcoord); + temp_verts3d.emplace_back(v3); + curOut->mIndices[i] = (unsigned int) temp_verts3d.size()-1; } - } else if (ay > az) { // no y coord. projection to zy - ac = 2; - bc = 0; - inv = n.y; - } - - // Swap projection axes to take the negated projection vector into account - if (inv < 0.f) { - std::swap(ac, bc); - } - - for (tmp = 0; tmp < max; ++tmp) { - temp_verts[tmp].x = verts[idx[tmp]][ac]; - temp_verts[tmp].y = verts[idx[tmp]][bc]; - done[tmp] = false; - } - -#ifdef AI_BUILD_TRIANGULATE_DEBUG_POLYS - // plot the plane onto which we mapped the polygon to a 2D ASCII pic - aiVector2D bmin, bmax; - ArrayBounds(&temp_verts[0], max, bmin, bmax); - - char grid[POLY_GRID_Y][POLY_GRID_X + POLY_GRID_XPAD]; - std::fill_n((char *)grid, POLY_GRID_Y * (POLY_GRID_X + POLY_GRID_XPAD), ' '); - - for (int i = 0; i < max; ++i) { - const aiVector2D &v = (temp_verts[i] - bmin) / (bmax - bmin); - const size_t x = static_cast(v.x * (POLY_GRID_X - 1)), y = static_cast(v.y * (POLY_GRID_Y - 1)); - char *loc = grid[y] + x; - if (grid[y][x] != ' ') { - for (; *loc != ' '; ++loc) - ; - *loc++ = '_'; - } - *(loc + ::ai_snprintf(loc, POLY_GRID_XPAD, "%i", i)) = ' '; - } - - for (size_t y = 0; y < POLY_GRID_Y; ++y) { - grid[y][POLY_GRID_X + POLY_GRID_XPAD - 1] = '\0'; - fprintf(fout, "%s\n", grid[y]); - } - - fprintf(fout, "\ntriangulation sequence: "); -#endif - - // - // FIXME: currently this is the slow O(kn) variant with a worst case - // complexity of O(n^2) (I think). Can be done in O(n). - while (num > 3) { - - // Find the next ear of the polygon - int num_found = 0; - for (ear = next;; prev = ear, ear = next) { - - // break after we looped two times without a positive match - for (next = ear + 1; done[(next >= max ? next = 0 : next)]; ++next) - ; - if (next < ear) { - if (++num_found == 2) { - break; - } - } - const aiVector2D *pnt1 = &temp_verts[ear], - *pnt0 = &temp_verts[prev], - *pnt2 = &temp_verts[next]; - - // Must be a convex point. Assuming ccw winding, it must be on the right of the line between p-1 and p+1. - if (OnLeftSideOfLine2D(*pnt0, *pnt2, *pnt1)) { - continue; - } - - // and no other point may be contained in this triangle - for (tmp = 0; tmp < max; ++tmp) { - - // We need to compare the actual values because it's possible that multiple indexes in - // the polygon are referring to the same position. concave_polygon.obj is a sample - // - // FIXME: Use 'epsiloned' comparisons instead? Due to numeric inaccuracies in - // PointInTriangle() I'm guessing that it's actually possible to construct - // input data that would cause us to end up with no ears. The problem is, - // which epsilon? If we chose a too large value, we'd get wrong results - const aiVector2D &vtmp = temp_verts[tmp]; - if (vtmp != *pnt1 && vtmp != *pnt2 && vtmp != *pnt0 && PointInTriangle2D(*pnt0, *pnt1, *pnt2, vtmp)) { - break; - } - } - if (tmp != max) { - continue; - } - - // this vertex is an ear - break; - } - if (num_found == 2) { - - // Due to the 'two ear theorem', every simple polygon with more than three points must - // have 2 'ears'. Here's definitely something wrong ... but we don't give up yet. - // - - // Instead we're continuing with the standard tri-fanning algorithm which we'd - // use if we had only convex polygons. That's life. - ASSIMP_LOG_ERROR("Failed to triangulate polygon (no ear found). Probably not a simple polygon?"); - -#ifdef AI_BUILD_TRIANGULATE_DEBUG_POLYS - fprintf(fout, "critical error here, no ear found! "); -#endif - num = 0; - break; - } - - aiFace &nface = *curOut++; - nface.mNumIndices = 3; - - if (!nface.mIndices) { - nface.mIndices = new unsigned int[3]; - } - - // setup indices for the new triangle ... - nface.mIndices[0] = prev; - nface.mIndices[1] = ear; - nface.mIndices[2] = next; - - // exclude the ear from most further processing - done[ear] = true; - --num; - } - if (num > 0) { - // We have three indices forming the last 'ear' remaining. Collect them. - aiFace &nface = *curOut++; - nface.mNumIndices = 3; - if (!nface.mIndices) { - nface.mIndices = new unsigned int[3]; - } - - for (tmp = 0; done[tmp]; ++tmp) - ; - nface.mIndices[0] = tmp; - - for (++tmp; done[tmp]; ++tmp) - ; - nface.mIndices[1] = tmp; - - for (++tmp; done[tmp]; ++tmp) - ; - nface.mIndices[2] = tmp; + curOut++; } + face.mIndices = nullptr; } - -#ifdef AI_BUILD_TRIANGULATE_DEBUG_POLYS - - for (aiFace *f = last_face; f != curOut; ++f) { - unsigned int *i = f->mIndices; - fprintf(fout, " (%i %i %i)", i[0], i[1], i[2]); - } - - fprintf(fout, "\n*********************************************************************\n"); - fflush(fout); - -#endif - - for (aiFace *f = last_face; f != curOut;) { - unsigned int *i = f->mIndices; - i[0] = idx[i[0]]; - i[1] = idx[i[1]]; - i[2] = idx[i[2]]; - ++f; - } - - delete[] face.mIndices; - face.mIndices = nullptr; } -#ifdef AI_BUILD_TRIANGULATE_DEBUG_POLYS - fclose(fout); -#endif - - // kill the old faces delete[] pMesh->mFaces; - - // ... and store the new ones pMesh->mFaces = out; + pMesh->mNumVertices = (unsigned int)temp_verts3d.size(); + delete[] pMesh->mVertices; + pMesh->mVertices = new aiVector3D[pMesh->mNumVertices]; + for (size_t i = 0; i < temp_verts3d.size(); ++i) { + pMesh->mVertices[i] = temp_verts3d[i]; + } pMesh->mNumFaces = (unsigned int)(curOut - out); /* not necessarily equal to numOut */ + return true; } +} // namespace Assimp + #endif // !! ASSIMP_BUILD_NO_TRIANGULATE_PROCESS diff --git a/doc/AssimpDoc_Html/AssimpDoc.chm b/doc/AssimpDoc_Html/AssimpDoc.chm index 26bbb28edeb26dd8eef199de6d1b92b703ab2e5e..1d676e62e43b868a7c724681e67b009d25ffdcfc 100644 GIT binary patch literal 22039195 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

eEW(3Q3WxUw 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 ${HCwzZ@07u+f-$-9ok#IdNRg&GDJyb#-$ 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�e`mnWB=E;r=2vQy-xI{&~ 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