Skip to content

Ambiguous mesh triangulation #299

@mezlondr

Description

@mezlondr

I have found out in certain cases MeshOps::retriangulateMeshSetForExport produces different (and wrong) result in each run.

While I am not certain if that is a bug in the triangulation or perhaps in loading in CSG (as the bugs are wall openings), as iterating one single face (result of geometry converter without invoking triangulation) produces non-planar 3D representation, which has ambiguous surface, therefore the triangulation can't be properly done.

Consider this mesh consisting of single face which produces incorrect result:

Image

There is no way of telling which part of the mesh should be filled, which I believe causes the bugs:

Image

These are the points:

startX =[12         ,12         ,12   ,12   ,10   ,10         ,10         ,10   ,10   ,12]
startY =[-0.12      ,1.73472e-18,0.15 ,0.15 ,0.15 ,0.15       ,1.73472e-18,-0.12,-0.12,-0.12]
startZ =[3          ,3          ,3    ,-0.05,-0.05,3          ,3          ,3    ,-0.05,-0.05]
endX   =[12         ,12         ,12   ,10   ,10   ,10         ,10         ,10   ,12   ,12]
endY   =[1.73472e-18,0.15       ,0.15 ,0.15 ,0.15 ,1.73472e-18,-0.12      ,-0.12,-0.12,-0.12]
endZ   =[3          ,3          ,-0.05,-0.05,3    ,3          ,3          ,-0.05,-0.05,3]

Or is there a proper way to determine the orientation of the face?

In case it helps I can send the ifc file in question.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions