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
G4ControlPoints.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 G4ControlPoints
31//
32// Class Description:
33//
34// G4ControlPoints defines an array of G4PointRat which in turn
35// are made of G4Point3D.
36
37// Author: J.Sulkimo, P.Urban.
38// Revisions by: A.Floquet, L.Broglia, G.Cosmo.
39// ----------------------------------------------------------------------
40#ifndef __G4ControlPoints_h
41#define __G4ControlPoints_h 1
42
43#include "G4PointRat.hh"
44
46{
47public: // with description
48
53 // Constructors.
54
56 // Destructor.
57
59 // Assignment operator.
60
61 void SetWeights(G4double*);
62
63 void CalcValues(G4double k1, G4double param, G4Point3D& pts1,
64 G4double k2, G4Point3D& pts2);
65 void CalcValues(G4double k1, G4double param, G4PointRat& pts1,
66 G4double k2, G4PointRat& pts2);
67
68 inline G4int GetRows() const;
69 inline G4int GetCols() const;
70
71 inline void put(G4int i, G4int j, const G4Point3D &tmp);
72 inline void put(G4int i, G4int j, const G4PointRat& tmp);
73 // Put control point into matrix location (i,j).
74
75 inline G4Point3D Get3D(G4int i, G4int j) const;
76 inline G4PointRat& GetRat(G4int i, G4int j) const;
77 // Retrieve control point from matrix location (i,j);
78
80
81
82private:
83
84 inline G4double Calc(G4double k1, G4double par, G4double old_val,
85 G4double k2, G4double new_val );
86
87 G4PointRat** data;
88 // G4PointRat datas are made of
89 // - a point 3D
90 // - an additional value: the scale factor which is set to 1 by default.
91
92 G4int nr, nc;
93};
94
95#include "G4ControlPoints.icc"
96
97#endif
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
void put(G4int i, G4int j, const G4PointRat &tmp)
G4int GetCols() const
G4int GetRows() const
void SetWeights(G4double *)
G4Point3D Get3D(G4int i, G4int j) const
G4double ClosestDistanceToPoint(const G4Point3D &)
G4ControlPoints & operator=(const G4ControlPoints &)
G4PointRat & GetRat(G4int i, G4int j) const
void CalcValues(G4double k1, G4double param, G4Point3D &pts1, G4double k2, G4Point3D &pts2)
void put(G4int i, G4int j, const G4Point3D &tmp)