CORSIKA  @c8_version@
The framework to simulate particle cascades for astroparticle physics
Plane.hpp
1 /*
2  * (c) Copyright 2020 CORSIKA Project, corsika-project@lists.kit.edu
3  *
4  * This software is distributed under the terms of the GNU General Public
5  * Licence version 3 (GPL Version 3). See file LICENSE for a full version of
6  * the license.
7  */
8 
9 #pragma once
10 
12 #include <corsika/framework/core/PhysicalGeometry.hpp>
13 #include <corsika/framework/geometry/Point.hpp>
14 #include <corsika/framework/geometry/Vector.hpp>
15 
16 #include <string>
17 
18 namespace corsika {
19 
20  class Plane {
21 
22  public:
23  Plane(Point const& vCenter, DirectionVector const& vNormal)
24  : center_(vCenter)
25  , normal_(vNormal.normalized()) {}
26 
27  bool isAbove(Point const& vP) const;
28 
29  LengthType getDistanceTo(Point const& vP) const;
30 
31  Point const& getCenter() const;
32 
33  DirectionVector const& getNormal() const;
34 
35  std::string asString() const;
36 
37  public:
38  Point const center_;
39  DirectionVector const normal_;
40  };
41 
42 } // namespace corsika
43 
44 #include <corsika/detail/framework/geometry/Plane.inl>
Import and extend the phys::units package.
`, since they are used everywhere as integral part of the framework.