GEOSX
SimpleGeometricObjectBase.hpp
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2018-2020 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2020 The Board of Trustees of the Leland Stanford Junior University
7  * Copyright (c) 2018-2020 TotalEnergies
8  * Copyright (c) 2019- GEOSX Contributors
9  * All rights reserved
10  *
11  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
12  * ------------------------------------------------------------------------------------------------------------
13  */
14 
15 /*
16  * @file SimpleGeometricObjectBase.hpp
17  */
18 
19 #ifndef GEOS_MESH_SIMPLEGEOMETRICOBJECTS_SIMPLEGEOMETRICOBJECTBASE_HPP_
20 #define GEOS_MESH_SIMPLEGEOMETRICOBJECTS_SIMPLEGEOMETRICOBJECTBASE_HPP_
21 
22 #include "dataRepository/Group.hpp"
23 #include "codingUtilities/StringUtilities.hpp"
25 
26 class Function;
27 
28 namespace geos
29 {
30 namespace dataRepository
31 {
32 namespace keys
33 {
34 string const geometricObjects( "GeometricObjects" );
35 }
36 }
37 
43 {
44 public:
45 
50 
56  explicit SimpleGeometricObjectBase( string const & name,
57  Group * const parent );
58 
63 
65 
70 
75  static string catalogName() { return "SimpleGeometricObjectBase"; }
76 
81 
86 
88 
94  virtual bool isCoordInObject( real64 const ( &coord ) [3] ) const = 0;
95 
96 };
97 
98 
99 }
100 #endif /* GEOS_MESH_SIMPLEGEOMETRICOBJECTS_SIMPLEGEOMETRICOBJECTBASE_HPP_ */
Base class for the geometric objects (box, plane, cylinder).
SimpleGeometricObjectBase(string const &name, Group *const parent)
Constructor.
virtual ~SimpleGeometricObjectBase()
Default destructor.
static CatalogInterface::CatalogType & getCatalog()
Get the catalog name.
static string catalogName()
Get the catalog name.
virtual bool isCoordInObject(real64 const (&coord)[3]) const =0
Check if the input coordinates are in the object.
This class provides the base class/interface for the catalog value objects.
std::unordered_map< std::string, std::unique_ptr< CatalogInterface< BASETYPE, ARGS... > > > CatalogType
This is the type that will be used for the catalog. The catalog is actually instantiated in the BASET...
double real64
64-bit floating point type.
Definition: DataTypes.hpp:139