diff --git a/src/Mod/Raytracing/App/LuxFeature.cpp b/src/Mod/Raytracing/App/LuxFeature.cpp index 9a963768d4..930fe12b7b 100644 --- a/src/Mod/Raytracing/App/LuxFeature.cpp +++ b/src/Mod/Raytracing/App/LuxFeature.cpp @@ -52,6 +52,17 @@ LuxFeature::LuxFeature(void) ADD_PROPERTY(Transparency,(0)); } +short LuxFeature::mustExecute() const +{ + if (Source.isTouched()) + return 1; + if (Color.isTouched()) + return 1; + if (Transparency.isTouched()) + return 1; + return RaySegment::mustExecute(); +} + App::DocumentObjectExecReturn *LuxFeature::execute(void) { std::stringstream result; diff --git a/src/Mod/Raytracing/App/LuxFeature.h b/src/Mod/Raytracing/App/LuxFeature.h index 469c0d1772..3fb30981ad 100644 --- a/src/Mod/Raytracing/App/LuxFeature.h +++ b/src/Mod/Raytracing/App/LuxFeature.h @@ -53,6 +53,7 @@ public: /** @name methods override Feature */ //@{ + short mustExecute() const; /// recalculate the Feature App::DocumentObjectExecReturn *execute(void); diff --git a/src/Mod/Raytracing/App/RayFeature.cpp b/src/Mod/Raytracing/App/RayFeature.cpp index 413b369518..cdd2cb6dc1 100644 --- a/src/Mod/Raytracing/App/RayFeature.cpp +++ b/src/Mod/Raytracing/App/RayFeature.cpp @@ -50,6 +50,17 @@ RayFeature::RayFeature(void) ADD_PROPERTY(Transparency,(0)); } +short RayFeature::mustExecute() const +{ + if (Source.isTouched()) + return 1; + if (Color.isTouched()) + return 1; + if (Transparency.isTouched()) + return 1; + return RaySegment::mustExecute(); +} + App::DocumentObjectExecReturn *RayFeature::execute(void) { std::stringstream result; diff --git a/src/Mod/Raytracing/App/RayFeature.h b/src/Mod/Raytracing/App/RayFeature.h index f0f2af933f..33d7e9f146 100644 --- a/src/Mod/Raytracing/App/RayFeature.h +++ b/src/Mod/Raytracing/App/RayFeature.h @@ -53,6 +53,7 @@ public: /** @name methods override Feature */ //@{ + short mustExecute() const; /// recalculate the Feature App::DocumentObjectExecReturn *execute(void);