Main Page   Namespace List   Class Hierarchy   Compound List   File List   Compound Members   File Members  

CompositeMedium.h

Go to the documentation of this file.
00001 //  $Id: CompositeMedium.h,v 1.3 2001/01/23 03:41:32 burnett Exp $
00002 //
00003 // This file is part of Gismo 2
00004 //
00005 #ifndef GISMO_COMPOSITEMEDIUM_H
00006 #define GISMO_COMPOSITEMEDIUM_H
00007 
00008 
00009 #include "gismo/Medium.h"
00010 
00011 #include <vector>
00012 
00013 typedef std::vector<Medium*> MediumList;
00014 
00025 class CompositeMedium  : public Medium , public MediumList
00026 {
00027  public:
00028 
00030    CompositeMedium(Medium* =0, float size=100);
00031 
00033 
00039    CompositeMedium(Medium* mother, Shape* vol, const char* mat= "vacuum", Detector * det= 0);
00041    virtual ~CompositeMedium();
00042 
00044    virtual Medium&  addMedium(Medium* nextMedium);
00046    virtual Medium& removeMedium (Medium* oldMedium);
00048    void deleteInnerMedia();
00049 
00051    int innerMediaCount()const  {return size();}
00053    unsigned int size()const { return MediumList::size();}
00054 
00056    const Medium* innerMedium(int i)const{return operator[](i);}
00058    const char* nameOf() const;
00060    int isComposite() const;
00061 
00063    virtual Medium&      setKECutOff(float keCut);
00065    virtual Medium&      setMaxStep(float mxStep);
00067    virtual Medium&      setField(Field* );
00068 
00070 
00071    GeomObject& transform(const CoordTransform& );
00072 
00074    virtual double distanceToLeave( const Ray& r, 
00075                                    const Medium*& 
00076                                    newstuff,
00077                                    double maxStep ) const;
00079 
00081    virtual const Medium * inside(const Point& r)const;
00082 
00083 
00084    virtual void clear();
00085    virtual void generateResponse();
00086    virtual void accept(DetectorVisitor&);
00087    virtual void readData(std::istream&);
00088    virtual void writeData(std::ostream&);
00089    virtual void notify();
00090 
00091 
00093    virtual void printOn( std::ostream& os = std::cout ) const;
00095    virtual void printResponse(std::ostream& = std::cout) const;
00096 
00097 //     Methods associated with GUI and Printing and I/O
00098 
00100    virtual void createDetectorView(gui::DisplayRep& v);
00102    virtual void createResponseView(gui::DisplayRep& v);
00103 
00104 
00105  private:
00106 
00107 };
00108 
00109 
00110 #endif
00111 

Generated at Wed Nov 21 12:20:25 2001 by doxygen1.2.3 written by Dimitri van Heesch, © 1997-2000