cadmpeg-codec-catia
Decoder for Dassault Systèmes CATIA V5 .CATPart files.
What is implemented
A .CATPart is a V5_CFV2 container: an outer file header with a big-endian
directory offset/length pair, and (for most parts) a nested V5_CFV2
sub-container whose CATIA_V5 CB0001 directory catalogues named logical
streams as extent lists. The geometry is stored in one of five distinct
families, each with its own decode path. This codec:
- [
CatiaCodec::detect] recognizes the uniqueV5_CFV2\0outer magic; - [
CatiaCodec::inspect] parses the outer header, reconstructs the inner stream directory, enumerates its named streams, and identifies the storage variant (spec §1) — this works for every variant; - [
CatiaCodec::decode] decodes standard-nested05 08 01vertex points, tag-bridged planes, and inline analytic carriers fromSurfacicReps; it also decodes directly framed analytic carriers in zero-entitya9 03streams, E5 circle/cone/torus carriers, anda8/a5freeform NURBS carrier pools where present.
What is decoded, and what is reported as loss
Standard-nested geometry decodes vertices, analytic carriers, compatible circle/line carriers, and faces when their stored senses are available. Zero-entity, E5, and object-stream families transfer their directly framed carriers. Remaining carrier-to-topology bindings are reported as loss rather than fabricated.