summaryrefslogblamecommitdiff
path: root/src/main/ElementVisitor.h
blob: 81b2f4414458731aed114a175f96a977ffb60c80 (plain) (tree)
1
2
3
4
5
6
7
8
9
10









                           

               







                                                                                                                        





                                  
                                       
                                                                      
 
                                    
                                                                   
 
                                
                                                           




                              
/*
 * ElementVisitor.h
 *
 *  Created on: Apr 2, 2011
 *      Author: jakob
 */

#ifndef ELEMENTVISITOR_H_
#define ELEMENTVISITOR_H_

namespace vhc {

class StraightElement; //forward declaration
class Quadrupole; //forward declaration
class Dipole; //forward declaration

/** Represente un visiteur d'elements.
 *  Le motif de conception des visiteurs est utilise pour ajouter des fonctionalites a des elements sans changer leur
 *  implementation. Il s'avere etre extremement utile pour des structures recursives, telles que les elements composees.
 *  @see http://fr.wikipedia.org/wiki/Visiteur_%28motif_de_conception%29 */
class ElementVisitor {

public:
	ElementVisitor();
	virtual ~ElementVisitor();

	/** Visite un element droit. */
	virtual void visit(const StraightElement* straight) const = 0;

	/** Visite un quadrupole. */
	virtual void visit(const Quadrupole* quadrupole) const = 0;

	/** Visite un dipole. */
	virtual void visit(const Dipole* dipole) const = 0;
};

}

#endif /* ELEMENTVISITOR_H_ */