00001 //-------------------------------------------------------------------- 00002 // 00003 // File: TxAccelIfc.h 00004 // 00005 // Purpose: 00006 // Pure virtual interface to define the interaction with a particle 00007 // accelerator model needed for use with the Tech-X QScimpl 00008 // graphics package. This interface does not depend on QT. 00009 // 00010 // Version: $Id: TxAccelIfc.h,v 1.6 2001/12/07 00:14:47 kgl Exp $ 00011 // 00012 // Copyright (c) 2000 by Tech-X Corporation. All rights reserved. 00013 // 00014 //-------------------------------------------------------------------- 00015 00016 #ifndef TX_ACCEL_IFC_H 00017 #define TX_ACCEL_IFC_H 00018 00019 // txmodel includes 00020 #include "TxNldIfc.h" 00021 #include "TxLinePlotData.h" 00022 00032 class TxAccelIfc : public virtual TxNldIfc { 00033 00034 00035 public: 00036 00037 00041 virtual void addLayoutElements() = 0; 00042 00049 virtual void visitBeamLine(int index, TxAttributeSet *beamLine, 00050 TxAttributeSet *beamLineData) = 0; 00051 00055 virtual void addElementNames() = 0; 00056 00060 virtual void addTwissLayoutElements() = 0; 00061 00066 virtual int readRNG(istream& fl) = 0; 00067 00072 virtual int readMAD(istream& fl) = 0; 00073 00079 virtual int writeMAD(ostream& ostrm) const =0; 00080 00085 virtual TxLinePlotData* getTwissPlotVisitor() = 0; 00086 00091 virtual TxLinePlotData* getMcTwissPlot() =0; 00092 00097 virtual TxLinePlotData* getDispPlotVisitor() =0; 00098 00099 00100 protected: 00101 00102 00103 private: 00104 00105 00106 }; 00107 00108 #endif // TX_ACCEL_IFC_H
Copyright Tech-X Corporation, all rights reserved.