3drepo / 3drepobouncer

A C++ library providing 3D Repo Scene Graph definition, repository management logic and manipulation logic. It is is essentially the refactored 3DRepoCore and (parts of) 3DRepoGUI
GNU Affero General Public License v3.0
29 stars 13 forks source link

ISSUE 651 - Missing Metadata #653

Closed sebjf closed 11 months ago

sebjf commented 11 months ago

This fixes #651

Description

This bug was caused by ODA outputting an OdGiDrawable for a MEP System Type, for each element connected to a system, where the geometry for an element appeared under the second drawable.

This PR adds a check which ignores any OdGiDrawable that derives from a MEP System Type (OdBmRbsSystemType). Since the Geometry Collector is set up by the prior (true) element, ignoring the metadata/geometry collector configuration in fillMeshData means the geometry output by the OdGsBaseMaterialView::draw(pDrawable) call ends up in the original element, along with its original metadata.

A unit test has been added containing elements for HVAC, Plumbing and Electrical Systems.

657 should be merged to staging first, as this branch has #647 merged into it so all the imports succeed.

Test cases

A minimal working example, rvtMeta3, has been added to the tests repo.