7 #include "imstkRenderDelegateObjectFactory.h" 8 #include "imstkCapsule.h" 9 #include "imstkCylinder.h" 10 #include "imstkGeometry.h" 11 #include "imstkHexahedralMesh.h" 12 #include "imstkImageData.h" 13 #include "imstkLineMesh.h" 14 #include "imstkLogger.h" 15 #include "imstkOrientedBox.h" 16 #include "imstkPlane.h" 17 #include "imstkRenderMaterial.h" 18 #include "imstkSphere.h" 19 #include "imstkSurfaceMesh.h" 20 #include "imstkTetrahedralMesh.h" 21 #include "imstkVisualModel.h" 22 #include "imstkVTKAxesRenderDelegate.h" 23 #include "imstkVTKCapsuleRenderDelegate.h" 24 #include "imstkVTKCylinderRenderDelegate.h" 25 #include "imstkVTKFluidRenderDelegate.h" 26 #include "imstkVTKHexahedralMeshRenderDelegate.h" 27 #include "imstkVTKImageDataRenderDelegate.h" 28 #include "imstkVTKLineMeshRenderDelegate.h" 29 #include "imstkVTKOrientedBoxRenderDelegate.h" 30 #include "imstkVTKPlaneRenderDelegate.h" 31 #include "imstkVTKPointSetRenderDelegate.h" 32 #include "imstkVTKSphereRenderDelegate.h" 33 #include "imstkVTKSurfaceMeshRenderDelegate.h" 34 #include "imstkVTKSurfaceNormalRenderDelegate.h" 35 #include "imstkVTKTetrahedralMeshRenderDelegate.h" 36 #include "imstkVTKTextRenderDelegate.h" 37 #include "imstkVTKVertexLabelRenderDelegate.h" 44 IMSTK_REGISTER_RENDERDELEGATE(SurfaceMesh, VTKSurfaceMeshRenderDelegate)
45 IMSTK_REGISTER_RENDERDELEGATE(Cylinder, VTKCylinderRenderDelegate)
46 IMSTK_REGISTER_RENDERDELEGATE(TetrahedralMesh, VTKTetrahedralMeshRenderDelegate)
47 IMSTK_REGISTER_RENDERDELEGATE(LineMesh, VTKLineMeshRenderDelegate)
48 IMSTK_REGISTER_RENDERDELEGATE(HexahedralMesh, VTKHexahedralMeshRenderDelegate)
49 IMSTK_REGISTER_RENDERDELEGATE(PointSet, VTKPointSetRenderDelegate)
50 IMSTK_REGISTER_RENDERDELEGATE(Plane, VTKPlaneRenderDelegate)
51 IMSTK_REGISTER_RENDERDELEGATE(Sphere, VTKSphereRenderDelegate)
52 IMSTK_REGISTER_RENDERDELEGATE(Capsule, VTKCapsuleRenderDelegate)
53 IMSTK_REGISTER_RENDERDELEGATE(OrientedBox, VTKOrientedCubeRenderDelegate)
54 IMSTK_REGISTER_RENDERDELEGATE(ImageData, VTKImageDataRenderDelegate)
55 IMSTK_REGISTER_RENDERDELEGATE(VertexLabel, VTKVertexLabelRenderDelegate)
56 IMSTK_REGISTER_RENDERDELEGATE(TextRenderDelegate, VTKTextRenderDelegate)
60 RenderDelegateRegistrar<VTKFluidRenderDelegate> _imstk_registerrenderdelegate_fluid(
"Fluid");
61 RenderDelegateRegistrar<VTKSurfaceNormalRenderDelegate> _imstk_registerrenderdelegate_surfacenormals(
"SurfaceNormals");
63 std::shared_ptr<VTKRenderDelegate>
66 if (visualModel ==
nullptr)
68 LOG(FATAL) <<
"RenderDelegate::makeDelegate error: Called with null visualModel";
73 const std::string& delegateHint = visualModel->getDelegateHint();
74 if (delegateHint ==
"")
76 LOG(FATAL) <<
"RenderDelegate::makeDelegate error: No hint defined for visualModel " 77 << visualModel->getName();
83 LOG(FATAL) <<
"RenderDelegate::makeDelegate error: can't find delegate with hint: " 84 << delegateHint <<
" for visual model " << visualModel->getName();
89 return create(delegateHint);
RenderDelegateRegistrar< VTKAxesRenderDelegate > _imstk_registerrenderdelegate_axes("AxesModel")
static bool contains(const std::string &name)
static std::shared_ptr< VTKRenderDelegate > create(const std::string &name, Args &&... args)
tries to construct the object give name, it will forward the given paramters
static std::shared_ptr< VTKRenderDelegate > makeRenderDelegate(std::shared_ptr< VisualModel > visualModel)
attempt to create a delegate for the given visual model