Files
geant4/source/geometry/solids/BREPS/include/G4CurveRayIntersection.hh
T
2016-06-01 15:25:35 +02:00

66 lines
1.1 KiB
C++

#ifndef included_G4CurveRayIntersection
#define included_G4CurveRayIntersection
#include "G4CurvePoint.hh"
#include "G4Ray.hh"
class G4CurveRayIntersection: public G4CurvePoint {
// at first, the interface similar to that of G4CurvePoint:
public:
G4CurveRayIntersection();
// must be followed by Init!
// only the distance is set (to infinity)
G4CurveRayIntersection(G4Curve& c0, const G4Ray& r0);
void Init(G4Curve& c0, const G4Ray& r0);
const G4Ray& GetRay() const;
void Reset();
void ResetPPoint(G4double u0);
void Reset(const G4Point3D& p0);
void Reset(G4double u0, const G4Point3D& p0);
void ResetDistance(G4double d0);
void Reset(G4double u0, G4double d0);
void Reset(const G4Point3D& p0, G4double d0);
void Reset(G4double u0, const G4Point3D& p0, G4double d0);
G4double GetPPoint();
const G4Point3D& GetPoint();
G4double GetDistance();
protected:
const G4Ray* r;
G4double d;
static const G4int dFlag;
// now the additional functionality
public:
void Update(G4CurveRayIntersection& is);
void UpdateWithPointOnCurve(G4CurveRayIntersection& is);
};
#include "G4CurveRayIntersection.icc"
#endif