Dion Moult
a341ad29f3
port: SVG edge classification ( #3668 ) onto wgpu [worklist #114-120]
...
Ports the 7-commit v0.8.0 SVG edge-classification feature (f0970b90b +
6 follow-ups) onto wgpu's heavily-diverged serializer. Reconstructed
block-by-block rather than merged, because both sides rewrote
SvgSerializer (v0.8.0 +419, wgpu +778) and git's conflict alignment was
misleading.
Key wgpu adaptations reasoned per block:
- IfcUtil::IfcBaseEntity* (pointer identity) -> express::Base (value),
incl. as a std::map key in draw_hlr (express::Base has operator<);
nullptr fallback -> express::Base{}
- boost::optional -> std::optional (css_class, dash_array)
- hlr_calc::result_type pair -> 3-tuple (adds per-edge class label)
- draw_hlr restructured with a group_by_product map: ONE path_object per
product so multiple class buckets share a group and per-path classes
survive Bonsai's merge (NOT naive per-item threading, which fragments
groups -- caught during visual verification)
- settings wired into wgpu's apply_settings() (ctor-called), NOT the
feature's added ready() call which wgpu already solved differently
- logger_.Warning -> logger().warning in write(geometry_data)
Verified end-to-end via IfcConvert on a curved-geometry stress scene
(Suzanne/Torus/Sphere/Cube/Cone/...): edges classify into outline/sharp/
crease/boundary/flush with correct per-product grouping and CSS styling.
Requires the model's storey to carry an Elevation and --svg-project to
trigger the HLR projection.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-25 23:16:38 +10:00
Andrej730
34f8a2c54e
Serialized.setFile: use file ref instead of pointer for safety
2026-07-24 21:50:49 +05:00
Thomas Krijnen
561a23cfbc
After-merge clean-ups
2026-07-09 22:01:21 +02:00
Thomas Krijnen
7fc2d9a998
Merge remote-tracking branch 'origin/v0.8.0' into ifcviewer-wgpu
2026-07-09 13:21:39 +02:00
Thomas Krijnen
8bd22178f7
OCC_VER Compatibility
2026-06-29 11:30:37 +02:00
Frozen Forest Reality Technologies
7f49c945b9
OCCT 8.0 Update Part 3
2026-06-29 11:30:36 +02:00
Frozen Forest Reality Technologies
81f71e6418
OCCT 8.0 Update Part 2
2026-06-29 11:30:36 +02:00
Frozen Forest Reality Technologies
6318610bdb
OCCT Update to 8.0 Part 1
2026-06-29 11:30:36 +02:00
Thomas Krijnen
a7738eeb64
Pass around non-static logger instances and programmatic access to messages in-memory
2026-06-10 18:40:17 +02:00
Thomas Krijnen
a751fb956d
Introduce unique error codes
2026-06-10 18:40:17 +02:00
Thomas Krijnen
c3a10694ba
draw.py use settings instead of direct member methods
2026-05-09 21:19:55 +02:00
Thomas Krijnen
b599ee1040
More work on isolating into plug-ins
2026-04-18 15:46:21 +02:00
Thomas Krijnen
a07f56db6f
Restructure and rename
2026-03-31 15:32:36 +02:00
Thomas Krijnen
7098beb819
Work towards v1.0 data model with encapsulated weak_ptr as basis for instances
2026-01-05 21:42:01 +01:00
Thomas Krijnen
44ef409335
Don't check for drawing semantics on qto or predefpset #7304
2025-10-31 09:56:54 +01:00
Thomas Krijnen
9d9e9ed4cb
Merge remote-tracking branch 'origin/v0.8.0' into tfk-rocksdb-storage
2025-08-26 10:17:57 +02:00
Thomas Krijnen
7e2b9dc7f3
Warn about failure to create camera from IfcAnnotation/DRAWING in Svgserializer
2025-08-06 09:22:47 +02:00
Thomas Krijnen
360e08f268
SVG matrix #5676
2025-04-17 15:25:35 +02:00
Thomas Krijnen
ce4407ff3c
Some successes writing and reading
2025-02-27 22:07:31 +01:00
Thomas Krijnen
81bdb551ab
SvgSerializer fix: Z == 2
2024-08-23 20:43:27 +02:00
Thomas Krijnen
d80bcd1a94
Unify variant storage ( #5118 )
2024-08-23 20:29:07 +02:00
Thomas Krijnen
a689fc6377
Consistency TopExp_Explorer::Current()
2024-08-02 04:50:06 +02:00
Thomas Krijnen
a4532cc722
Remove assumptions on solid topology in SVG camera frustrum detection #4924
2024-07-03 20:04:52 +02:00
Thomas Krijnen
75b9e6cec9
setOnlyValid() option that skips and logs invalid topology #4130
2024-04-17 14:57:44 +02:00
Dion Moult
bceac22ca0
See #4389 . Accommodate null pset values when serializing to SVG.
2024-04-17 14:42:55 +02:00
Thomas Krijnen
7f37ba2fad
convert closed wires to faces prior to processing in svg serializer #4283
2024-04-17 13:41:05 +02:00
Thomas Krijnen
dc84f84e86
#3660 setSegmentProjection() / --svg-segment-projection options
2024-04-16 10:26:51 +02:00
Thomas Krijnen
0b673f725e
#3158 Fix unify inputs
2024-04-16 10:25:02 +02:00
Dion Moult
9cb3ce1f9a
See #2894 . Implement SVG mirroring options (typically used for RCPs or useful when converting to other things like DXF).
2024-04-16 10:24:54 +02:00
Thomas Krijnen
23d096be07
SVG serialization UnifyInputs option
2024-04-16 10:10:48 +02:00
Thomas Krijnen
09d7cd97c8
SVG prefiltering elements based on large faces
2024-04-15 13:28:13 +02:00
Thomas Krijnen
01ad84901c
#2942 Escape SVG text labels
2024-04-15 11:17:03 +02:00
Thomas Krijnen
65e874c67f
Drastic settings refactoring
2023-11-15 10:32:33 +01:00
Thomas Krijnen
65a5646bf0
Major update: taxonomy shared pointers, collection type safety, work towards hashing
2023-07-27 16:42:06 +08:00
Thomas Krijnen
c32c88b1a0
Merge remote-tracking branch 'origin/v0.7.0' into v0.8.0
2023-03-29 12:55:05 +02:00
Thomas Krijnen
2b1b79bf1c
Make occt optional
2023-03-22 11:17:14 +01:00
Thomas Krijnen
c78b2893de
Proceed with merge
2023-03-21 20:15:01 +01:00
Thomas Krijnen
d1217e61c4
#2822 svg: begin group lazily when data is actually being appended
2023-03-06 09:16:27 +01:00
Thomas Krijnen
b521b68fd8
svg: compiler warnings
2023-03-06 09:15:27 +01:00
Thomas Krijnen
c9302cde7c
svg: prevent garbage data on empty path
2023-03-06 09:14:40 +01:00
Thomas Krijnen
3736a8b4b4
Refactoring
2022-11-13 11:04:16 +01:00
Thomas Krijnen
2ab4e44248
#2256 try explicit cast for clang
2022-07-05 09:46:19 +02:00
Thomas Krijnen
461b78665a
OCCT 7.6 compatibility
2022-04-04 08:29:29 +00:00
Thomas Krijnen
96902bf38a
Safeguard against runtime error when invoking HLR without storey containment
2022-02-27 20:57:05 +01:00
Thomas Krijnen
5dfe85691b
#1153 Exclude walls and slabs in profile edges hack
2022-02-27 12:55:39 +01:00
Thomas Krijnen
3b7bf8844a
Update default SVG CSS for projections
2022-02-27 12:55:11 +01:00
Thomas Krijnen
eccf72ee8a
#1153 option to preprocess shape into sets of profile edges
2021-11-20 14:02:12 +01:00
Thomas Krijnen
c203b78d34
#1153 #1852 project points to form SVG HLR cut plane
2021-11-05 13:27:27 +01:00
Thomas Krijnen
5633445008
#1153 evenodd
2021-11-05 11:21:19 +01:00
Thomas Krijnen
06a988e141
#1153 boolean subtraction on parts
2021-11-05 11:04:46 +01:00