Thomas Krijnen
dd01cb0e51
BaseUri setting for TTL+WKT
2024-09-28 14:47:08 +02:00
Andrej730
f7bf440848
AbstractKernel::dispatch_curve_creation - use static cast
...
Similar to 93c4749
2024-09-27 19:06:31 +05:00
Andrej730
9f02737a2e
Fix segfault trying to create IfcSweptDiskSolid with invalid curve #5474
...
In my case it was IfcIndexedPolyCurve with just 1 vertex. Though kernel->convert does return a boolean value to indicate if conversion was successful, we never used it - so it failed silently leading to segfault later on.
Now we also stop processing those polycurves during mapping stage but checking kernel->convert result still might be useful in some other cases.
2024-09-27 17:00:33 +05:00
Andrej730
fe3b66c044
Stop processing IfcIndexedPolyCurve with < 2 verts at mapping stage #5474
...
as they're invalid and would't be able to create a curve
2024-09-27 17:00:33 +05:00
Andrej730
7d8ef3ffd0
Fix invalid IfcRevolvedAreaSolid representations with angle <360 deg
...
It was always assuming angle is 360 deg
2024-09-26 18:40:52 +05:00
Andrej730
23389dcac0
Update ellipse profile just for consistency with 11deb95
2024-09-26 18:40:51 +05:00
Andrej730
dd9de98290
Store edges representation item ids in Triangulation
2024-09-25 19:09:14 +05:00
Andrej730
aad66f94a3
rename addEdge overload to registerEdgeCount
...
So it won't be confused with addEdge that actually does add an edge to edges_.
2024-09-25 19:09:14 +05:00
Thomas Krijnen
0c70d4c828
Manually detect facet boundary intersections before triangulation #5470
2024-09-24 13:09:30 +02:00
Thomas Krijnen
11deb955f8
Fix ellipse major < minor workaround #5470
2024-09-24 13:09:30 +02:00
Thomas Krijnen
2557fcf628
Do let cgal handle planar adv brep #4915
2024-09-24 08:54:52 +02:00
Thomas Krijnen
a51ed6e6b3
Fixes for using hybrid kernel on non-products #5443
2024-09-23 16:18:00 +02:00
Thomas Krijnen
0389f1e984
Make cgal implementation a little bit less confident #5453
2024-09-23 16:03:10 +02:00
Thomas Krijnen
4c048e4695
Update face.cpp - snail artefact on 7.8 as well #4924
2024-09-23 09:12:10 +02:00
Thomas Krijnen
2554280e50
triangulation-type setting for non-triangulated polyhedral from iterator
2024-09-18 19:28:07 +02:00
Andrej730
8f7949808a
Move id to IfcGeom::Representation::Representation and document it
...
as it's a common attribute for all 3 Representation subclasses we have
2024-09-18 18:44:33 +05:00
Thomas Krijnen
d879bf9f89
Reintroduce --model-offset/-rotation MODEL_OFFSET/_ROTATION setting #5231
2024-09-13 11:38:24 +02:00
Thomas Krijnen
1697e49e65
Merge branch 'v0.8.0' into fix-ifccircle-ifcellipse-processing
2024-09-12 20:18:57 +02:00
Andrej730
cb21f9bc07
taxonomy::cast - order upgrades in the same order as in taxonomy::dcast for consistency
2024-09-12 16:30:06 +05:00
Andrej730
f930897240
taxonomy::dcast - add missing curve_to_loop_upgrade
2024-09-12 16:30:05 +05:00
Andrej730
93c47498ef
AbstractKernel::dispatch_conversion - use static cast
...
Previously it was using taxonomy::cast that was also trying to upgrade current item - due to the strictness of dispatch_conversion (it works only if type matches exactly because of `N == item_kind`) upgrades will never succeed so we may just skip them.
2024-09-12 16:30:05 +05:00
Thomas Krijnen
2545769f67
Add support for IfcSectionedSurface
2024-09-12 11:20:48 +02:00
Andrej730
005c17084b
dispatch_with_upgrade to use only upgrade types for optimization
2024-09-11 19:42:47 +05:00
Andrej730
858e57351e
AbstractKernel::convert - more generic approach
2024-09-11 19:42:47 +05:00
Andrej730
35221ed772
AbstractKernel::convert to use upgrade to edge as a fallback
2024-09-11 15:53:04 +05:00
Andrej730
37315e941a
taxonomy.h - move upgrades code to cpp
2024-09-11 15:53:04 +05:00
Andrej730
11f017e715
revert manual upgrade to edges for ellipses and circles
2024-09-11 15:53:04 +05:00
Thomas Krijnen
c63f1cfa88
Iterator: Don't crash on calling get() before initialize()
2024-09-11 11:18:09 +02:00
Richard Brice
cc7171060f
Decouples evaluation of a piecewise_function from the function itself ( #5344 )
2024-09-10 10:11:17 -07:00
Andrej730
34aed93b7b
Fix 2 segfaults creating IfcEllipseProfileDef
...
1) taxonomy::ellipse was missing matrix so create_shape was segfaulting either was if Position was set or was not (segfaulting on line - https://github.com/IfcOpenShell/IfcOpenShell/blob/5616367a03ea397885e93523e55788da82238742/src/ifcgeom/kernels/opencascade/loop.cpp#L92 )
2) was segfaulting when there was no default matrix
Removed fc->matrix assignment as matrix is already assigned to the curve.
2024-09-10 18:28:18 +05:00
Andrej730
6cf9875472
Fix error processing IfcCircle/IfcEllipse #5352
2024-09-10 12:54:44 +05:00
Andrej730
13ed4d3a6c
ifcopenshell to support styles assigned to IfcFaces #4038
2024-09-09 17:28:23 +05:00
Thomas Krijnen
680c73f15b
Less noisy faceset helper messages
2024-09-09 09:58:02 +02:00
Thomas Krijnen
89e3650d77
No need to check for manifoldness when processing boolean ops in 2d
2024-09-09 09:57:43 +02:00
Richard Brice
c9d2390d9a
Implements cant geometry
2024-09-06 10:02:08 -07:00
Thomas Krijnen
f8a2cce202
Use polygon_from_points() and handle Position for CSG Pyramid #5241
2024-09-01 15:14:22 +02:00
Thomas Krijnen
b786e129bd
Fix faceset helper stats
2024-09-01 15:12:43 +02:00
Thomas Krijnen
fea8e3a5c9
Perform similar face bound lenciency in cgal kernel
2024-08-24 20:03:44 +02:00
Thomas Krijnen
3137904055
Perform mapping in parallel (or --no-parallel-mapping)
2024-08-24 20:03:44 +02:00
Thomas Krijnen
5fdad744d3
Cgal kernel: Fail boolean op altogether when part conversion to Nef fails
2024-08-23 20:42:32 +02:00
Thomas Krijnen
ab6f408db4
Unify edge orientation logic among kernels
2024-08-23 20:41:42 +02:00
Thomas Krijnen
cdf8b9c038
Cgal kernel: taxonomy::line is intended to run along local Z
2024-08-23 20:41:17 +02:00
Thomas Krijnen
918fb41a7e
Unify face bound counting logic among kernels
2024-08-23 20:39:20 +02:00
Thomas Krijnen
1d8e39e55f
NB! For now let's use Epick for cgal-simple instead of actually Simple_cartesian
2024-08-23 20:38:38 +02:00
Thomas Krijnen
b0b65e550c
dispatch_curve_creation based on template magic instead of dynamic casting
2024-08-23 20:36:47 +02:00
Thomas Krijnen
d80bcd1a94
Unify variant storage ( #5118 )
2024-08-23 20:29:07 +02:00
Thomas Krijnen
45be17c25a
Remove duplicate UseMaterialNames setting binding #5191
2024-08-19 09:15:49 +02:00
Richard Brice
c31c34b7d2
reimplements piecewise_function using PIMPL idiom
...
PIMPL idiom allows implementaiton of piecewise_function to evolve without envoking systemwide recompile (unless the class definition changes)
2024-08-01 12:34:49 -07:00
Richard Brice
b22ecba179
Implements mutually exclusive access to mapping cache with a mutex
2024-08-01 07:15:22 -07:00
Thomas Krijnen
db5167bbaf
Prevent infinite recursion
2024-08-01 07:59:23 +02:00