Implement new representation of topology and BRep into OCCT.
New foundation represent 2 levels:
BRepGraph - public interfaces which making the topology graph representation
BRepGraphInc - internal structure which represent topology as an incident tables.
The foundation provides basic logic for conversion from TopoDS_Shape to BRepGraph and back.
The foundation provides the iteration and exploring interfaces to travel in both directions on any level of topology.
The internal id type of inc tables is 'int', which is not for long term and can be updated, better to use typed id aliases, even for the iterations, they provide all necessary operators.
The access to the BRepGraph is done using multiple View classes available by methods from main class.
The extensions on graphs is possible with 'Layer' and 'Cache', where first is persistent, second - temporary,
Some basic operations on graph also provided for compact, analyze and copy.
- Deleted GeomProp_Surface, GeomProp_SurfaceAnalysisTools, GeomProp_SurfaceOfExtrusion, GeomProp_SurfaceOfRevolution, and GeomProp_Torus classes along with their implementation files.
- Removed references to the GeomProp module from the CMake package configuration.
Add new BRepProp package to TKBRep as a thin wrapper over GeomProp:: free
functions for computing local differential properties of BRep edges and faces
without exceptions. Replaces the legacy BRepLProp macro-based (.gxx) pattern.
New package BRepProp (TKBRep) provides:
- BRepProp_Curve: Local curve property evaluator for BRep edges.
Delegates derivative computation to BRepAdaptor_Curve and passes results
to GeomProp::ComputeTangent, ComputeCurvature, ComputeNormal,
ComputeCentreOfCurvature. Three Initialize overloads: from TopoDS_Edge
(owning), from BRepAdaptor_Curve reference (non-owning), and from
occ::handle<BRepAdaptor_Curve> (shared ownership). Includes static
Continuity() methods for regularity analysis at curve junctions
(replaces BRepLProp::Continuity).
- BRepProp_Surface: Local surface property evaluator for BRep faces.
Delegates derivative computation to BRepAdaptor_Surface and passes results
to GeomProp::ComputeSurfaceNormal, ComputeSurfaceCurvatures,
ComputeMeanGaussian. Same three Initialize overloads as BRepProp_Curve.
Key design decisions:
- No variant dispatch needed: BRepAdaptor_Curve/Surface handle geometry-type
dispatch internally via virtual methods, so BRepProp is a thin wrapper
calling adaptor D1/D2/D3 then GeomProp:: free functions.
- Ownership pattern: occ::handle for owning case + raw const pointer for
non-owning case, consistent with GeomProp_Curve/Surface.
- Returns result structs with IsDefined flags instead of throwing exceptions.
18 GTests: 11 unit tests (line, circle, box, cylinder, sphere) and
7 cross-validation tests against BRepLProp_CLProps/BRepLProp_SLProps.
Reorganizing structure to have Module/TK/Package/FILES structure.
New structure reflect the structure inside IDE.
Migrate FILES, PACKAGES, EXTRLIB to CMake version to handle changes on updates.
No changes were done to installation layout, all installation result keep as before.
The migration was done using python script, see PR, which refactor automatically the structure.
Updated doc generation to have valid path to modules, toolkits and packages.
In case of PR into new version, IR-790 can be used as a target for the previous version.