EGSnrc C++ class library  Report PIRS-898 (2021)
Iwan Kawrakow, Ernesto Mainegra-Hing, Frederic Tessier, Reid Townson and Blake Walters
egs_geometry_tester.h
Go to the documentation of this file.
1 /*
2 ###############################################################################
3 #
4 # EGSnrc egs++ geometry tester headers
5 # Copyright (C) 2015 National Research Council Canada
6 #
7 # This file is part of EGSnrc.
8 #
9 # EGSnrc is free software: you can redistribute it and/or modify it under
10 # the terms of the GNU Affero General Public License as published by the
11 # Free Software Foundation, either version 3 of the License, or (at your
12 # option) any later version.
13 #
14 # EGSnrc is distributed in the hope that it will be useful, but WITHOUT ANY
15 # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
16 # FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for
17 # more details.
18 #
19 # You should have received a copy of the GNU Affero General Public License
20 # along with EGSnrc. If not, see <http://www.gnu.org/licenses/>.
21 #
22 ###############################################################################
23 #
24 # Author: Iwan Kawrakow, 2005
25 #
26 # Contributors:
27 #
28 ###############################################################################
29 */
30 
31 
37 #ifndef EGS_GEOMETRY_TESTER_
38 #define EGS_GEOMETRY_TESTER_
39 
40 #include "egs_libconfig.h"
41 
42 class EGS_Input;
43 class EGS_Vector;
44 class EGS_PrivateTester;
45 class EGS_BaseGeometry;
46 
78 
79 public:
80 
83 
85  virtual ~EGS_GeometryTester();
86 
115  void testInside(EGS_BaseGeometry *g);
116 
128  void testInsideTime(EGS_BaseGeometry *);
129 
144  void testHownear(int ntry, EGS_BaseGeometry *g);
145 
156  void testHownearTime(EGS_BaseGeometry *);
157 
172  void testHowfar(EGS_BaseGeometry *);
173 
185  void testHowfarTime(EGS_BaseGeometry *);
186 
196  virtual void printPosition(const EGS_Vector &x);
197 
248  static EGS_GeometryTester *getGeometryTester(EGS_Input *i);
249 
250 protected:
251 
252  EGS_PrivateTester *p;
253 
254 };
255 
256 
257 #endif
#define EGS_EXPORT
Export symbols from the egspp library.
Definition: egs_libconfig.h:90
A class for testing geometries.
EGS_PrivateTester * p
Hides the implementation details.
A class representing 3D vectors.
Definition: egs_vector.h:56
Base geometry class. Every geometry class must be derived from EGS_BaseGeometry.
A class for storing information in a tree-like structure of key-value pairs. This class is used throu...
Definition: egs_input.h:182
Defines the EGS_EXPORT and EGS_LOCAL macros.