diff --git a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.cpp b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.cpp
index 5148c3a8679f41a11da92ed823468fa9e14d5ae3..e58257b4f196dd5ec952ba0fc361e2b422ef2c9d 100644
--- a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.cpp
+++ b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.cpp
@@ -31,9 +31,13 @@
 
 namespace VirtualRobot
 {
-    CoinVisualizationNode::CoinVisualizationNode(TriMeshModelPtr tri):
+    CoinVisualizationNode::CoinVisualizationNode(const TriMeshModelPtr& tri):
         CoinVisualizationNode(CoinVisualizationFactory::getCoinVisualization(tri))
     {}
+
+    CoinVisualizationNode::CoinVisualizationNode(const TriMeshModel& tri) :
+        CoinVisualizationNode(boost::make_shared<TriMeshModel>(tri))
+    {}
     /**
      * Store a reference to \p visualizationNode in the member
      * CoinVisualizationNode::visualization.
diff --git a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.h b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.h
index d3e37bc1579ea90c03480fe0b6a368b8549972e9..d9f5de0c9a032b9d53e99a32e001cb1efa6e6cfd 100644
--- a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.h
+++ b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationNode.h
@@ -43,7 +43,8 @@ namespace VirtualRobot
     {
         friend class CoinVisualizationFactory;
     public:
-        CoinVisualizationNode(TriMeshModelPtr tri);
+        CoinVisualizationNode(const TriMeshModelPtr &tri);
+        CoinVisualizationNode(const TriMeshModel& tri);
         CoinVisualizationNode(SoNode* visualizationNode, float margin = 0.0f);
         ~CoinVisualizationNode() override;
         TriMeshModelPtr getTriMeshModel() override;