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
G4CurvePoint.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 G4CurvePoint
31//
32// Class Description:
33//
34// Class capable of storing both the parametric and the non-parametric
35// representation of a point on a curve.
36// The representation is evaluated lazily for efficiency.
37
38// Author: J.Sulkimo, P.Urban.
39// Revisions by: L.Broglia, G.Cosmo.
40// ----------------------------------------------------------------------
41#ifndef included_G4CurvePoint
42#define included_G4CurvePoint
43
44#include "G4Curve.hh"
45#include "G4Point3D.hh"
46
48{
49
50public: // with description
51
53 // Constructor, taking a curve as argument.
54
55 virtual ~G4CurvePoint();
56 // Empty destructor.
57
58 G4CurvePoint(const G4CurvePoint& cp);
60 // Copy constructor and assignment operator.
61
62 inline void Init(G4Curve& c0);
63 // Initialises a G4CurvePoint. Called by the constructor.
64
65 inline G4Curve& GetCurve() const;
66 // Returns the curve which the point belongs to.
67
68 inline void Reset();
69 inline void Reset(G4double u0);
70 inline void Reset(const G4Point3D& p0);
71 inline void Reset(G4double u0, const G4Point3D& p0);
72 // Resets point's attributes.
73
75 inline const G4Point3D& GetPoint();
76 // Returns point as parameter or as point in space.
77
78protected:
79
81 // Protected default constructor.
82
83protected:
84
85 // data
86
88
91
93 static const G4int pFlag;
94 static const G4int uFlag;
95 static const G4int allFlags;
96
97};
98
99#include "G4CurvePoint.icc"
100
101#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
G4Curve * c
Definition: G4CurvePoint.hh:87
G4double GetPPoint()
void Reset(const G4Point3D &p0)
G4CurvePoint & operator=(const G4CurvePoint &cp)
Definition: G4CurvePoint.cc:61
static const G4int allFlags
Definition: G4CurvePoint.hh:95
void Init(G4Curve &c0)
static const G4int uFlag
Definition: G4CurvePoint.hh:94
const G4Point3D & GetPoint()
void Reset(G4double u0)
virtual ~G4CurvePoint()
Definition: G4CurvePoint.cc:52
void Reset(G4double u0, const G4Point3D &p0)
G4Point3D p
Definition: G4CurvePoint.hh:89
G4double u
Definition: G4CurvePoint.hh:90
G4Curve & GetCurve() const
G4int notComputed
Definition: G4CurvePoint.hh:92
static const G4int pFlag
Definition: G4CurvePoint.hh:93