Hello Author,
Thanks for asking feedback on MeshVS. Let me offer some of it.
We used to use MeshVS in early years of our product but then dropped. Indeed, its API (DataSource) does not formally enforce any predefined data container. However the API itself which prescribes construction of packaged data maps effectively does enforce that - even if your underlying data structure may not be using them (and most likely not), you have to implement this API. This leads to essential growth of the memory footprint - by creating these packed data maps. XSDRAWSTLVRML_DataSource is an example of this. Based on StlMesh_Mesh it has to populate and store these maps to interoperate with MeshVS.
Obviously this has performance and footprint penalties when working with larger models.
We ended up with creation of simpler subsclasses of AIS_InteractiveObject implementing visualization (and selection) for polygonal representations. These are more streamlined and easier to understand and maintain comparing to MeshVS-based classes.
We still periodically refer to MeshVS for recommended use of primitives (e.g. Graphic3d_ArrayOfSegments vs OfPolylines), selection (#27180) and like. In this sense it serves as reference implementation.
Bottom-line: there is still a value in this component either direct or indirect. Given that you actively invest into visualization you likely do need an example of efficient use of non BRep-based geometries. A separate library (not embedded into TKV3d) does offer a very reasonable approach being optional part of the library.
My 2 cents. Hope this helps.
Commenter-1