From 7a2c185f29748ee91a7186c81d8d9fde7c7c6c87 Mon Sep 17 00:00:00 2001 From: nds Date: Wed, 11 Feb 2015 14:15:18 +0300 Subject: [PATCH] An attempt to correct the linux runtime problem after the previous integration. --- src/SketchPlugin/SketchPlugin_Feature.cpp | 19 ++++++++++--------- src/SketchPlugin/SketchPlugin_Feature.h | 13 ++++++++++--- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/SketchPlugin/SketchPlugin_Feature.cpp b/src/SketchPlugin/SketchPlugin_Feature.cpp index b89f5d425..5842df8a0 100644 --- a/src/SketchPlugin/SketchPlugin_Feature.cpp +++ b/src/SketchPlugin/SketchPlugin_Feature.cpp @@ -8,20 +8,21 @@ #include #include +/// It is important. +/// +/// Before writing a new method implementation in this file, please check the next rule: +/// exported public methods must not be implemented in this source file. They should be inline and +/// placed in the header file. +/// Because it leads to the runtime problem on the Linux OS. +/// +/// The reason is that this is an abstract interface. An interface of this class can be used in +/// outside libraries through casting without a link to the current library. + SketchPlugin_Feature::SketchPlugin_Feature() { mySketch = 0; } -void SketchPlugin_Feature::erase() -{ - SketchPlugin_Sketch* aSketch = sketch(); - if (aSketch) - aSketch->removeFeature(this); - - ModelAPI_Feature::erase(); -} - SketchPlugin_Sketch* SketchPlugin_Feature::sketch() { if (!mySketch) { diff --git a/src/SketchPlugin/SketchPlugin_Feature.h b/src/SketchPlugin/SketchPlugin_Feature.h index 5174eff40..7a50ef4e3 100644 --- a/src/SketchPlugin/SketchPlugin_Feature.h +++ b/src/SketchPlugin/SketchPlugin_Feature.h @@ -67,8 +67,8 @@ class SketchPlugin_Feature : public ModelAPI_Feature, public GeomAPI_ICustomPrs /// Customize presentation of the feature virtual void customisePresentation(AISObjectPtr thePrs) { - // if this is an edge or vertex - if ((thePrs->getShapeType() == 6) || (thePrs->getShapeType() == 7)) { + // if this is an edge + if (thePrs->getShapeType() == 6) { thePrs->setWidth(3); if (isExternal()) thePrs->setColor(0,255,0); @@ -79,7 +79,14 @@ class SketchPlugin_Feature : public ModelAPI_Feature, public GeomAPI_ICustomPrs } /// removes also all sub-sketch elements - SKETCHPLUGIN_EXPORT virtual void erase(); + SKETCHPLUGIN_EXPORT virtual void erase() + { + /*SketchPlugin_Sketch* aSketch = sketch(); + if (aSketch) + aSketch->removeFeature(this); + */ + ModelAPI_Feature::erase(); + } /// Returns the sketch of this feature SketchPlugin_Sketch* sketch(); -- 2.39.2