As discussed here and in this earlier topic, the first parts of this have been merged. The change that has been merged adds new classes (in smtk/geometry
and smtk/extension/vtk/source
) but does not remove smtk/model/Tessellation
yet.
If a resource (1) inherits smtk::geometry::Resource
and (2) provides an smtk::geometry::Geometry
object (via methods defined in the new resource class), then that geometric data will be used instead of any model Tessellation objects. Otherwise, model tessellation objects will be used to produce VTK data. The new classes allow resources to provide renderable geometry without the overhead of conversion to/from SMTK’s neutral format. This will improve the responsiveness of SMTK and ModelBuilder in some cases. However, there is another change that must occur before large datasets are handled smoothly in most cases: because the vtkResourceMultiBlockSource
(and its subclasses) are re-run when any component in the resource has modified geometry, VTK’s composite polydata mapper must be updated to avoid re-sending unmodified geometry to the GPU.
For more information, see
- the new documentation
- this test, which is a simple example of its use; and
- the polygon session which provides geometry for the VTK backend.