Commit Graph

87 Commits (74b89e13f61e7ea7ebfdf9bfdb2ddd09a140e803)

Author SHA1 Message Date
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
aramis_acg 745a7383f6 Ifc: fix artifacts from window boundaries.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1308 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-17 00:04:24 +00:00
aramis_acg f329e1af6f - IFC: fix possible infinite recursion in QuadrifyPart()
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1307 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-16 21:27:01 +00:00
aramis_acg 39d13faf9a - Ifc: minor code cleanup.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1306 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-16 20:55:19 +00:00
aramis_acg 11a22b671b - IFC: revamp binary subtraction and opening generation logic, which now supports 90deg rotated opening proxies. The new version adds extra cleanup steps to prepare the data for processing by clipper. It also has a slightly refactored code base.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1305 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-10-16 19:51:00 +00:00
aramis_acg e22bb03f80 - IFC: fix face winding for IfcSweptDiskSolid geometry
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1300 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-09-10 01:28:19 +00:00
aramis_acg 15c0b8b955 - IFC: avoid artifacts in high-curvature regions (or the boundaries thereof) of IfcSweptDiskSolid elements.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1299 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-09-10 00:40:41 +00:00
aramis_acg d7fe61c255 - Ifc: improved subsampling of curves for IfcSweptDiskSolid entities.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1288 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-07-11 23:08:44 +00:00
aramis_acg d7410e6f08 - Ifc: implement basic support for IfcSweptDiskSolid elements.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1287 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-07-11 22:11:16 +00:00
kimmi 6c1cb4f159 Bugfix : Fixed some compiler warnings and some C99 and C++11 specific syntax. ( merged from GitHub, thanks to Riku Palomäki ).
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1225 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-03-20 21:31:56 +00:00
aramis_acg 4dbf539b44 - update license header. Update copyright year and unify naming: our name is 'assimp', not 'ASSIMP'.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1147 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-02-03 03:38:30 +00:00
aramis_acg db3cee8501 # Ifc: fix bug while filling window contours.
# Ifc: filter out duplicate openings.
- poly2tri: change comparison epsilon to a more suitable value (found by trial&error).

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1146 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-02-03 02:28:25 +00:00
aramis_acg 4080cd601c # Ifc: merge overlapping openings if possible.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1145 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-02-03 00:50:07 +00:00
aramis_acg 38e6d90e40 - Configure STEP reader to use double precision, small changes to the Ifc code to tolerate this (Ifc itself still working with single precision).
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1136 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-02-02 03:06:28 +00:00
aramis_acg e867c73327 - Ifc: make code base ready for running double precision by using the new math templates with a customizable float type, IfcFloat. (still using floats with this commit).
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1133 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-02-02 02:09:49 +00:00
aramis_acg c12fadc93b - make fast_atof_move a template and rename it to fast_atoreal_move.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1125 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-01-31 16:18:32 +00:00
aramis_acg edd1e2e99a # Ifc: re-introduce the previous triangulation code algorithm, but use Clipper to clip to the outer contour line and poly2tri as fallback.
# Ifc: fix a issue when closing window contours. Sometimes a corner would be left out.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1122 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-01-17 17:40:15 +00:00
aramis_acg ab6c348c2d # Ifc: if generating wall openings fails, revert to the original wall rather than leaving polygon crap.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1121 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-01-17 02:18:59 +00:00
aramis_acg ad759f6efe - Ifc: use a combination of clipper and poly2tri to triangulate arbitrary polygons with arbitrarily-shaped holes (the former to workaround the cases not supported by the latter ...). Issues with doors et al. (i.e. openings touching the outer contour of a wall polygon) remain and are yet to be solved. Overall, this change should make IfcLoader much more robust, though. Since this means that the previous algorithm to triangulate walls is dropped altogether, regressions are highly likely.
Note 1: there are cases in which the previous algorithm may have produced 'better' triangles, but my big hope is that poly2tri's CDT implementation will implement more advanced refinement algorithms over time.

Note 2: This issue http://code.google.com/p/poly2tri/issues/detail?id=34 is relevant, first versions of my poly2tri embedding would indeed stackoverflow or assert. I somehow avoided this by using Clipper as prepass and scaling the entire polygon to 0..1 range (as recommended).


git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1118 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2012-01-17 01:49:17 +00:00
klickverbot db29c9a20d Spelling fixes, thanks to Jan Dittberner.
This patch replaces »continously« with »continuously« and »treshold« with »threshold«.

(merged from https://github.com/assimp/assimp/pull/2)

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1086 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-11-08 12:15:18 +00:00
aramis_acg a7e43173db git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1046 67173fc5-114c-0410-ac8e-9d2fd5bffc1f 2011-07-17 01:09:56 +00:00
aramis_acg 0276a09a87 # Ifc: fix generation of wall openings, now no longer 'forgets' wall parts.
git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1043 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-07-15 21:51:33 +00:00
aramis_acg 81ad224f84 - IFC: Refactor source to simplify maintenance.
- IFC: rate all available representations by a simple ranking system and take the one that is easiest to load. This should avoid loading the same geometry twice. Also it might result in quality improvements when BRep geometry is avoided in favour of extrusion geometry.
# IFC: Various bugfixes related to geometry loading.


git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@1033 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
2011-06-14 15:58:22 +00:00