00001
00002
00003
00004
00005
00006
00007 #ifndef GEAR_GEARDISTANCEPROPERTIES_H
00008 #define GEAR_GEARDISTANCEPROPERTIES_H 1
00009
00010 #include <string>
00011 #include <vector>
00012
00013 #include "GEAR.h"
00014
00015 namespace gear {
00016
00017 class Point3D;
00018
00028 class GearDistanceProperties {
00029
00030 public:
00032 virtual ~GearDistanceProperties() { ; }
00033
00036 virtual const std::vector<std::string> & getMaterialNames(const Point3D & p0, const Point3D & p1) const throw (NotImplementedException, std::exception ) = 0;
00037
00041 virtual const std::vector<double> & getMaterialThicknesses(const Point3D & p0, const Point3D & p1) const throw (NotImplementedException, std::exception ) = 0;
00042
00045 virtual double getNRadlen(const Point3D & p0, const Point3D & p1) const throw (NotImplementedException, std::exception ) = 0;
00046
00049 virtual double getNIntlen(const Point3D & p0, const Point3D & p1) const throw (NotImplementedException, std::exception ) = 0;
00050
00053 virtual double getBdL(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00054
00057 virtual double getEdL(const Point3D & pos) const throw (NotImplementedException, std::exception ) = 0;
00058 };
00059 }
00060 #endif