54 lines
824 B
C++
54 lines
824 B
C++
#ifndef included_G4CurvePoint
|
|
#define included_G4CurvePoint
|
|
|
|
// A class capable of storing both the parametric and the non-parametric
|
|
// representation of a point on a curve.
|
|
// The representation is evaluated lazily for efficiency.
|
|
|
|
#include "G4Curve.hh"
|
|
#include "G4Point3D.hh"
|
|
|
|
class G4CurvePoint
|
|
{
|
|
|
|
public:
|
|
|
|
G4CurvePoint(G4Curve& c0);
|
|
|
|
void Init(G4Curve& c0);
|
|
|
|
G4Curve& GetCurve() const;
|
|
|
|
void Reset();
|
|
|
|
void Reset(G4double u0);
|
|
|
|
void Reset(const G4Point3D& p0);
|
|
|
|
void Reset(G4double u0, const G4Point3D& p0);
|
|
|
|
G4double GetPPoint();
|
|
|
|
const G4Point3D& GetPoint();
|
|
|
|
|
|
protected:
|
|
|
|
G4CurvePoint() { }
|
|
|
|
G4Curve* c;
|
|
|
|
G4Point3D p;
|
|
G4double u;
|
|
|
|
G4int notComputed;
|
|
static const G4int pFlag;
|
|
static const G4int uFlag;
|
|
static const G4int allFlags;
|
|
|
|
};
|
|
|
|
#include "G4CurvePoint.icc"
|
|
|
|
#endif
|