00001 //-------------------------------------------------------------------------- 00002 // File and Version Information: 00003 // $Id: TrkGeomTrajVisitor.h,v 1.1.1.1 2005/07/18 05:51:56 codeman Exp $ 00004 // 00005 // Description: 00006 // Part of Visitor pattern for TrkGeomTraj class hierarchy. This is 00007 // the base class for any Visitor that will visit a TrkGeomTraj. As 00008 // new GeomTraj's are introduced, they must have an appropriate 00009 // visitXXXX function added here and in all derived Visitors. 00010 // 00011 // Environment: 00012 // Software developed for the BaBar Detector at the SLAC B-Factory. 00013 // 00014 // Author(s): Steve Schaffner 00015 // 00016 //------------------------------------------------------------------------ 00017 00018 #ifndef TRKGEOMTRAJVISITOR_H 00019 #define TRKGEOMTRAJVISITOR_H 00020 00021 class TrkLineTraj; 00022 class TrkPieceLineTraj; 00023 //SKIP class TrkParabolaTraj; 00024 class BesHelixTraj; 00025 00026 // Class interface // 00027 class TrkGeomTrajVisitor { 00028 00029 public: 00030 TrkGeomTrajVisitor(); 00031 virtual ~TrkGeomTrajVisitor(); 00032 00033 virtual void visitLine(const TrkLineTraj*) = 0; 00034 // virtual void visitParabola(const TrkParabolaTraj*) = 0; 00035 virtual void visitPieceLine(const TrkPieceLineTraj*) = 0; 00036 virtual void visitHelix(const BesHelixTraj*) = 0; 00037 00038 private: 00039 00040 // Preempt 00041 TrkGeomTrajVisitor& operator= (const TrkGeomTrajVisitor&); 00042 TrkGeomTrajVisitor(const TrkGeomTrajVisitor &); 00043 }; 00044 00045 #endif 00046 00047 00048 00049 00050 00051 00052