#ifndef ABSTRACTELEMENTDEFINITION_SEEN #define ABSTRACTELEMENTDEFINITION_SEEN #include #include #include #include "nomdElements.h" using namespace std; class abstractElement { protected : bool parmelaOk_; bool transportOk_; int nbParam_; string* parametersString_; // double phaseStep_; // a recuperer dans les parametres globaux (methode setPhaseStep) double phaseStepMax_; double defaultLength_; double defaultAperture_; string label_; nomdElements elementName_; double lenghtElem_; // cm double aperture_; // cm double stepmaxcm_; // bool curvedTrajectory_; void setDefaultValues(); void setDefaults(); public : abstractElement(); abstractElement(string lab); virtual ~abstractElement(); void setParameters(double ll,double aper); void setLabel(string lab); string getLabel() const; // typedElement getName() const; nomdElements getName() const; // string getNameOfElement(); // string getNameString() const; double getLenghtOfElement() const; int getNbParams() const; bool is_parmela_element() const; bool is_transport_element() const; virtual void setPhaseStep(double); virtual double getInitialKineticEnergy() const; virtual void setParametersString(string* param) = 0; virtual string* getParametersString() const = 0; virtual string parmelaOutputFlow() const = 0; virtual string transportOutputFlow() const = 0; virtual string FileOutputFlow() const = 0; virtual void FileInput(ifstream& ifs) = 0; }; #endif