Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4CurveRayIntersection.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29// ----------------------------------------------------------------------
30// Class G4CurveRayIntersection
31//
32// Class Description:
33//
34// Class capable of storing both the parametric and the non-parametric
35// representation of a intersection point on a curve. It's subclassed
36// from G4CurvePoint.
37
38// Author: J.Sulkimo, P.Urban.
39// Revisions by: L.Broglia, G.Cosmo.
40// ----------------------------------------------------------------------
41#ifndef included_G4CurveRayIntersection
42#define included_G4CurveRayIntersection
43
44#include "G4CurvePoint.hh"
45#include "G4Ray.hh"
46
48{
49
50public: // with description
51
53 // Default constructor. Sets only distance to infinity.
54 // Must be followed by Init!
55
56 G4CurveRayIntersection(G4Curve& c0, const G4Ray& r0);
57 // Constructor taking a curve and a ray.
58
60 // Empty destructor.
61
64 // Copy constructor and assignment operator.
65
66 inline void Init(G4Curve& c0, const G4Ray& r0);
67 // Initialises a G4CurveRayIntersection. Called by the constructor above.
68
69 inline const G4Ray& GetRay() const;
70 // Returns the ray of intersection.
71
72 inline void Reset();
73 inline void ResetPPoint(G4double u0);
74 inline void Reset(const G4Point3D& p0);
75 inline void Reset(G4double u0, const G4Point3D& p0);
76 inline void ResetDistance(G4double d0);
77 inline void Reset(G4double u0, G4double d0);
78 inline void Reset(const G4Point3D& p0, G4double d0);
79 inline void Reset(G4double u0, const G4Point3D& p0, G4double d0);
80 // Resets point's attributes.
81
83 inline const G4Point3D& GetPoint();
84 // Returns point as parameter or as point in space.
85
87 // Returns intersection's distance.
88
89public: // without description
90
91 // additional functionalities
92
95
96protected:
97
98 // data
99
100 const G4Ray* r;
103 static const G4int dFlag;
104
105};
106
107#include "G4CurveRayIntersection.icc"
108
109#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
void Reset(G4double u0, const G4Point3D &p0, G4double d0)
void ResetPPoint(G4double u0)
const G4Point3D & GetPoint()
void Init(G4Curve &c0, const G4Ray &r0)
void Reset(G4double u0, G4double d0)
void Reset(const G4Point3D &p0)
G4CurveRayIntersection & operator=(const G4CurveRayIntersection &cr)
void Reset(const G4Point3D &p0, G4double d0)
void Reset(G4double u0, const G4Point3D &p0)
const G4Ray & GetRay() const
void UpdateWithPointOnCurve(G4CurveRayIntersection &is)
void Update(G4CurveRayIntersection &is)
void ResetDistance(G4double d0)
Definition: G4Ray.hh:49