Bayeux  3.4.1
Core Foundation library for SuperNEMO
i_find_intercept.h
Go to the documentation of this file.
1 /* i_find_intercept.h
2  * Author(s): Francois Mauger <mauger@lpccaen.in2p3.fr>
3  * Creation date: 2015-02-27
4  * Last modified: 2015-02-27
5  *
6  * License:
7  *
8  * Description:
9  *
10  * Interface for an object for which the find_intercept method
11  * is provided (2D and 3D shapes)
12  *
13  * History:
14  *
15  */
16 
17 #ifndef GEOMTOOLS_I_FIND_INTERCEPT_H
18 #define GEOMTOOLS_I_FIND_INTERCEPT_H 1
19 
20 // This project:
21 #include <geomtools/utils.h>
24 
25 namespace geomtools {
26 
27  // Forward declaration:
28  class placement;
29 
33  {
34  public:
35 
38 
40  virtual ~i_find_intercept();
41 
50  virtual bool find_intercept(const vector_3d & a_from,
51  const vector_3d & a_direction,
52  face_intercept_info & a_intercept,
53  double a_skin = GEOMTOOLS_PROPER_TOLERANCE) const = 0;
54 
63  bool find_intercept_self(const vector_3d & a_from,
64  const vector_3d & a_direction,
65  face_intercept_info & a_intercept,
66  double a_skin = GEOMTOOLS_PROPER_TOLERANCE) const;
67 
78  bool find_intercept(const vector_3d & a_from,
79  const vector_3d & a_direction,
80  const placement & a_placement,
81  face_intercept_info & a_intercept,
82  double a_skin = GEOMTOOLS_PROPER_TOLERANCE) const;
83 
84  };
85 
86 } // end of namespace geomtools
87 
88 #endif // GEOMTOOLS_I_FIND_INTERCEPT_H
89 
90 /*
91 ** Local Variables: --
92 ** mode: c++ --
93 ** c-file-style: "gnu" --
94 ** tab-width: 2 --
95 ** End: --
96 */
Abstract interface for all objects for which we can compute the intercept with a ray emitted from a p...
Definition: i_find_intercept.h:32
virtual bool find_intercept(const vector_3d &a_from, const vector_3d &a_direction, face_intercept_info &a_intercept, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const =0
The face_intercept_info class hosts the parameters of.
Definition: face_intercept_info.h:31
#define GEOMTOOLS_PROPER_TOLERANCE
Definition: geomtools_config.h:26
bool find_intercept_self(const vector_3d &a_from, const vector_3d &a_direction, face_intercept_info &a_intercept, double a_skin=GEOMTOOLS_PROPER_TOLERANCE) const
i_find_intercept()
Default constructor.
CLHEP::Hep3Vector vector_3d
Alias for the CLHEP 3D-vector class.
Definition: clhep.h:63
The placement for a geometry volume with its translation and rotation with respect to some mother ref...
Definition: placement.h:34
virtual ~i_find_intercept()
Destructor.
Top-level namespace of the Bayeux/geomtools module library.
Definition: electromagnetic_field_manager.h:39