Commit Graph

72 Commits (da1c9e8434001cc9ef429c0ef96b31fd0e320e33)

Author SHA1 Message Date
Alexander Gessler 232e69dc2a - Ifc: code cleanup, remove various non-needed variables as pointed out by gcc. 2013-04-08 20:10:25 +02:00
Alexander Gessler 078150da57 - better way to construct NULL-shared_ptr 2013-02-09 17:43:29 +01:00
Alexander Gessler 667a51e0ab - fix various vc compile errors when building with boost. 2013-02-09 17:36:36 +01:00
Alexander Gessler f7680f7f28 - Ifc: refactor code, move opening generation and boolean clipping code to separate units. 2013-02-07 09:51:33 +01:00
Alexander Gessler 2359a83132 - Ifc: get rid of erroneous error messages. 2013-01-30 13:01:16 +01:00
Alexander Gessler 250ca6837f - Ifc: rework geometry generation for openings to use 2D profiles for approximate boolean differentiation whenever possible. Also fix issues in 2D projection, which caused very spurious triangle artifacts. 2013-01-27 21:21:30 +01:00
Alexander Gessler b90882a4cb - Ifc: more opening tweaks, half a step back again. 2013-01-25 08:09:32 +01:00
Alexander Gessler d4bcd3ab69 - Ifc: [openings] more fine-tuning and some debugging aid. 2013-01-25 07:42:51 +01:00
Alexander Gessler 1a60697282 - Ifc: more opening tweaks. 2013-01-25 05:55:32 +01:00
Alexander Gessler 302fad13b0 - Ifc: [openings] don't accidentally mirror stuff when projecting onto 2D planes. 2013-01-25 05:16:02 +01:00
Alexander Gessler af0d4ef3da - Ifc: clean up temporary wall points when switching from horizontal to vertical openings. 2013-01-25 04:35:30 +01:00
Alexander Gessler 9647c87c7c - Ifc: no need to generate contour skiplist twice. 2013-01-25 04:19:12 +01:00
Alexander Gessler bbd10cd748 - Ifc: fix normalization of base mesh normal for opening generation. 2013-01-25 03:48:06 +01:00
Alexander Gessler 3b30a39fe1 - Ifc: add debug code for checking correctness of coordinate transforms. 2013-01-24 12:44:53 +01:00
Alexander Gessler b42f279110 - Ifc: improve intersection check for openings. 2013-01-24 01:09:48 +01:00
Alexander Gessler 650e515dd6 - Ifc: bix bug that caused some openings to be generated twice. This stops lots of the z noise. 2013-01-22 16:50:18 +01:00
Alexander Gessler 2d01b9bdc9 - Ifc: pick average of all coordinates as projection plane. 2013-01-22 16:39:43 +01:00
Alexander Gessler c2bd22507c - Ifc: check for self-intersecting contour lines to avoid duplicates. 2013-01-22 16:31:31 +01:00
Alexander Gessler 8b823bd631 - Ifc: improve heuristic to detect unwanted crossing lines by not running it when the window is not the result of arbitrary boolean ops on rectangles. 2013-01-22 16:08:44 +01:00
Alexander Gessler e9bbe64115 - Ifc: fine-tune epsilons. Correct epsilon approximation for a squared value is max(e^2 +- 2e). 2013-01-21 22:46:11 +01:00
Alexander Gessler 6905229603 - Ifc: refactor border detection code. 2013-01-21 22:37:53 +01:00
Alexander Gessler fcf86f1e0a - Ifc: add heuristic to detect remaining, unwanted "crossing caps" and to drop them silently. Testing this on some larger files, it typically reduces artifacts due to z-fighting on lower window caps. 2013-01-21 22:27:48 +01:00
Alexander Gessler d20126f7a1 - Ifc: fine-tune some epsilons. 2013-01-21 21:56:55 +01:00
Alexander Gessler 58f087e04d - Ifc: fix boolean differentiation for 3D openings to avoid having duplicate contour lines or inner points in the contour data that gets used as input for window cap generation. This solves various instances of 'crossing' caps in windows. 2013-01-21 21:11:16 +01:00
acgessler 470f4f3757 - Ifc: fix another indexing error. 2013-01-20 17:40:09 +01:00
acgessler 0e5db8a369 - Ifc: fix loop indexing error in detection of overlapping window contours. Improve numerical robustness of intersection tests by explicitly catching a/b=inf. 2013-01-20 15:40:36 +01:00
acgessler 23a2ff629c - Ifc: drop flawed assertion. 2013-01-20 15:16:20 +01:00
aramis_acg f507994299 - Ifc: vastly improved algorithm for fixing up window caps.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1345 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-12-19 02:24:06 +00:00
aramis_acg 477995f860 - Ifc: fix lost line that causes compile errors in debug build, WIP work on removing overlapping window caps.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1340 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-27 19:59:09 +00:00
aramis_acg d395e88670 - Ifc: more refactoring in the window generation code.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1338 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-18 19:41:26 +00:00
aramis_acg b7ee62080a - Ifc: refactor opening/window generation code.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1337 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-18 16:36:38 +00:00
aramis_acg e3e8c92546 - Ifc: since overlapping opening bounding boxes cause lots of trouble, we now try to avoid them in a subset of all cases. This is possible whenever two openings overlap in a way that their bounding boxes can easily be made disjunct by differentiating the polygons.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1335 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-17 02:04:53 +00:00
aramis_acg 3f38d91e88 - Ifc: further improvements to opening caps algorithm.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1329 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-03 00:43:28 +00:00
aramis_acg 1553bd91f6 - Ifc: work on generating proper closing caps for openings generated by doing a boolean difference.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1328 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-02 23:56:38 +00:00
aramis_acg 7484dd379c - Ifc: revamped Quadrify() version now correctly clips overlapping non-rectangular windows.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1327 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-02 04:46:46 +00:00
aramis_acg ccf629bd19 - Ifc: allow arbitrary IfcSolidModel entities as difference operands for openings (rather than just IfcExtrudedAreaSolid et al).
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1326 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-02 03:29:04 +00:00
aramis_acg 612f67da0a - Ifc: avoid duplicate points in opening contour lines, this sometimes screws up the clipping algorithm.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1325 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-01 21:36:39 +00:00
aramis_acg 11b2219b1a - Ifc: fix regressions caused by previous commit. This also fixes a bug which caused openings to appear at the wrong place.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1324 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-11-01 20:40:45 +00:00
aramis_acg d128e3d531 - Ifc: fix projection artifacts during opening generation.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1321 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-21 21:50:30 +00:00
aramis_acg c3adc004bf - Ifc: always remove degenerate geometry from geometric entities after finishing processing.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1320 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-21 19:12:18 +00:00
aramis_acg a598ac53b4 - Ifc: improve robustness towards degenerate geometry.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1319 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-21 18:52:48 +00:00
aramis_acg 33a50f515a - Ifc: move some utility functions to TempMesh. Add TempMesh::RemoveDegenerates() method.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1318 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-21 18:32:25 +00:00
aramis_acg 7ed1400c68 - Ifc: better handling of degenerate primitives occuring in clipping operations.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1317 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-21 18:10:56 +00:00
aramis_acg f6f2c087db - Ifc: skip lines during boolean differentiation between two solids.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1316 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-21 17:08:12 +00:00
aramis_acg d660ec35ad - Ifc: first attempt at also supporting extruded area solids for boolean differentiation.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1315 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-21 16:58:22 +00:00
aramis_acg 71fb04849c - Ifc: experimental code to connect window holes, commented by default.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1314 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-21 01:05:48 +00:00
aramis_acg 2f5475d50a - Ifc: [Quadrulation] use generalized matrix multiplication for projections. Add table to map from contours to the openings they originated from and from openings to the points that were generated from it.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1313 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-20 23:18:48 +00:00
aramis_acg a3d5b2e0d7 - Ifc: replace old algorithm to merge nested polygons with a version that reduces the problem to an instance of the quadrulate algorithm. This great reduces artifacts in walls.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1312 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-20 21:26:49 +00:00
aramis_acg 8a77193a33 - Ifc: more sanity clamping, improve error messages for degenerate windows.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1310 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-17 00:37:52 +00:00
aramis_acg f8974b7209 - Ifc: explicitly clamp some computations to [0,1] even if this is already their (arithmetically) defined range to improve numerical robustness.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1309 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-17 00:32:59 +00:00