Open CASCADE Technology contains TKMeshVS - a component completing the AIS classes from TKV3d component with capabilities to display mesh structures not necessarily bound to any TopoDS_Shape.
TKMeshVS does not define any own data structure for storing mesh information; instead, it defines quite flexible interface MeshVS_DataSource for accessing data from arbitrary sources implemented on application level.
The data sources and mesh presentation are separate concepts in TKMeshVS allowing to compute different presentations for the same mesh depending on application needs by implementing MeshVS_PrsBuilder interface. TKMeshVS also contains built-in presentation builders including normal shaded presentation (MeshVS_MeshPrsBuilder), shrink presentation (elements reduced in size) and presentations with colors assigned to nodes (MeshVS_NodalColorPrsBuilder) or elements (MeshVS_ElementalColorPrsBuilder).
The component is quite flexible and is not limited to surface meshes, but also supports meshes containing 3D elements.
Unfortunately, the evolution of this component has been thrown out of the board for many years - with only minor efforts. Being designed for working with mesh data of specific sizes (quite small nowadays), standard presentation builders suffer from performance and memory usage issues.
There are two main reasons for this - no visible interest of this component from perspective of new projects and community, and overall complexity of the component supporting rarely used features such as 3D elements.
We still believe that this component might be quite useful and its evolution should be stimulated. However, to reduce our efforts, we would like to focus on the main use case for this component - supporting of surface meshes. So now we consider the following features to be removed in the nearest future:
- Support for 3D mesh elements
- Support for 2D mesh elements other than triangles and quadrangles
Note that MeshVS architecture allows implementing corresponding functionality outside OCCT at application level if needed.
Additional architectural changes might be also considered to improve working with big data sets from presentation builders and selection, which would require considerable porting efforts for existing applications using TKMeshVS component right now.
We would like to ask community for a feedback upon proposed changes in TKMeshVS component and general information if this component is used or not in your projects.