diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/GLActorVisitor.cpp b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/GLActorVisitor.cpp index 9c1eacade2fa..86b081a18b28 100644 --- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/GLActorVisitor.cpp +++ b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/GLActorVisitor.cpp @@ -1,6 +1,73 @@ #include "GLActorVisitor.h" #include "GLActor.h" +#include "GLActorCollection.h" #include "ComponentActor.h" +#include "CompAssemblyActor.h" +#include "ObjCompAssemblyActor.h" +#include "InstrumentActor.h" +#include "RectangularDetectorActor.h" + +// Default visit implementations just call visit(GLActor*) + +bool GLActorVisitor::visit(GLActorCollection* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorVisitor::visit(CompAssemblyActor* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorVisitor::visit(ObjCompAssemblyActor* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorVisitor::visit(ComponentActor* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorVisitor::visit(InstrumentActor* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorVisitor::visit(RectangularDetectorActor* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorConstVisitor::visit(const GLActorCollection* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorConstVisitor::visit(const CompAssemblyActor* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorConstVisitor::visit(const ObjCompAssemblyActor* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorConstVisitor::visit(const ComponentActor* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorConstVisitor::visit(const InstrumentActor* actor) +{ + return this->visit( static_cast( actor ) ); +} + +bool GLActorConstVisitor::visit(const RectangularDetectorActor* actor) +{ + return this->visit( static_cast( actor ) ); +} bool SetAllVisibleVisitor::visit(GLActor* actor) { diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/GLActorVisitor.h b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/GLActorVisitor.h index 652a33a5c16e..b8d4cebc5cce 100644 --- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/GLActorVisitor.h +++ b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/GLActorVisitor.h @@ -19,29 +19,14 @@ class GLActorVisitor virtual ~GLActorVisitor(){} /// Abstract method that must be implemented in sub-classes virtual bool visit(GLActor*) = 0; - virtual bool visit(GLActorCollection*) = 0; - virtual bool visit(CompAssemblyActor*) = 0; - virtual bool visit(ObjCompAssemblyActor*) = 0; - virtual bool visit(ComponentActor*) = 0; - virtual bool visit(InstrumentActor*) = 0; - virtual bool visit(RectangularDetectorActor*) = 0; + virtual bool visit(GLActorCollection*); + virtual bool visit(CompAssemblyActor*); + virtual bool visit(ObjCompAssemblyActor*); + virtual bool visit(ComponentActor*); + virtual bool visit(InstrumentActor*); + virtual bool visit(RectangularDetectorActor*); }; -#define SAME_VISITS \ -bool visit(GLActorCollection *actor ){return visit( (GLActor*) actor);}\ -bool visit(CompAssemblyActor *actor){return visit( (GLActor*) actor);}\ -bool visit(ObjCompAssemblyActor *actor){return visit( (GLActor*) actor);}\ -bool visit(ComponentActor *actor){return visit( (GLActor*) actor);}\ -bool visit(RectangularDetectorActor *actor){return visit( (GLActor*) actor);}\ -bool visit(InstrumentActor *actor){return visit( (GLActor*) actor);} - -#define SAME_VISITS_BUT_COMPONENTACTOR \ -bool visit(GLActorCollection *actor ){return visit( (GLActor*) actor);}\ -bool visit(CompAssemblyActor *actor){return visit( (GLActor*) actor);}\ -bool visit(ObjCompAssemblyActor *actor){return visit( (GLActor*) actor);}\ -bool visit(RectangularDetectorActor *actor){return visit( (GLActor*) actor);}\ -bool visit(InstrumentActor *actor){return visit( (GLActor*) actor);} - /** * A base class for an actor visitor (const version). */ @@ -52,12 +37,12 @@ class GLActorConstVisitor virtual ~GLActorConstVisitor(){} /// Abstract method that must be implemented in sub-classes virtual bool visit(const GLActor*) = 0; - virtual bool visit(const GLActorCollection*) = 0; - virtual bool visit(const CompAssemblyActor*) = 0; - virtual bool visit(const ObjCompAssemblyActor*) = 0; - virtual bool visit(const ComponentActor*) = 0; - virtual bool visit(const InstrumentActor*) = 0; - virtual bool visit(const RectangularDetectorActor*) = 0; + virtual bool visit(const GLActorCollection*); + virtual bool visit(const CompAssemblyActor*); + virtual bool visit(const ObjCompAssemblyActor*); + virtual bool visit(const ComponentActor*); + virtual bool visit(const InstrumentActor*); + virtual bool visit(const RectangularDetectorActor*); }; @@ -82,7 +67,6 @@ class SetAllVisibleVisitor: public SetVisibilityVisitor SetAllVisibleVisitor(bool showNonDet):m_showNonDet(showNonDet){} bool visit(GLActor*); bool visit(ComponentActor *actor); - SAME_VISITS_BUT_COMPONENTACTOR private: bool m_showNonDet; }; diff --git a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InstrumentActor.h b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InstrumentActor.h index 16f560050a57..faa6fb1f79d0 100644 --- a/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InstrumentActor.h +++ b/Code/Mantid/MantidPlot/src/Mantid/InstrumentWidget/InstrumentActor.h @@ -254,7 +254,6 @@ class SetVisibleNonDetectorVisitor: public SetVisibilityVisitor /// @param on :: If true then all non-detectors will be made visible or invisible if false. SetVisibleNonDetectorVisitor(bool on):m_on(on){} bool visit(GLActor*); - SAME_VISITS private: bool m_on; }; @@ -267,7 +266,6 @@ class FindComponentVisitor: public GLActorVisitor public: FindComponentVisitor(const Mantid::Geometry::ComponentID id):m_id(id),m_actor(NULL){} bool visit(GLActor*); - SAME_VISITS ComponentActor* getActor()const{return m_actor;} private: Mantid::Geometry::ComponentID m_id;