Salome HOME
refs #80 - Sketch base GUI: create/draw point, circle and arc
[modules/shaper.git] / src / SketchPlugin / SketchPlugin_Point.cpp
index 63cf747a21c43b0a05195795a76a424e386396b6..6df2b536bad40f21b91a6bdf4fbfd97c9cb65b8a 100644 (file)
@@ -26,13 +26,14 @@ void SketchPlugin_Point::execute()
 const boost::shared_ptr<GeomAPI_Shape>& SketchPlugin_Point::preview()
 {
   SketchPlugin_Sketch* aSketch = sketch();
-  // compute a point in 3D view
-  boost::shared_ptr<GeomDataAPI_Point2D> aPoint = 
-    boost::dynamic_pointer_cast<GeomDataAPI_Point2D>(data()->attribute(POINT_ATTR_COORD));
-  boost::shared_ptr<GeomAPI_Pnt> aPoint3D(aSketch->to3D(aPoint->x(), aPoint->y()));
-  // make a visible point
-  boost::shared_ptr<GeomAPI_Shape> aPointShape = GeomAlgoAPI_PointBuilder::point(aPoint3D);
-  setPreview(aPointShape);
-
+  if (aSketch) {
+    // compute a point in 3D view
+    boost::shared_ptr<GeomDataAPI_Point2D> aPoint = 
+      boost::dynamic_pointer_cast<GeomDataAPI_Point2D>(data()->attribute(POINT_ATTR_COORD));
+    boost::shared_ptr<GeomAPI_Pnt> aPoint3D(aSketch->to3D(aPoint->x(), aPoint->y()));
+    // make a visible point
+    boost::shared_ptr<GeomAPI_Shape> aPointShape = GeomAlgoAPI_PointBuilder::point(aPoint3D);
+    setPreview(aPointShape);
+  }
   return getPreview();
 }