GEOS
SimpleGeometricObjectBase.hpp
1 /*
2  * ------------------------------------------------------------------------------------------------------------
3  * SPDX-License-Identifier: LGPL-2.1-only
4  *
5  * Copyright (c) 2016-2024 Lawrence Livermore National Security LLC
6  * Copyright (c) 2018-2024 TotalEnergies
7  * Copyright (c) 2018-2024 The Board of Trustees of the Leland Stanford Junior University
8  * Copyright (c) 2023-2024 Chevron
9  * Copyright (c) 2019- GEOS/GEOSX Contributors
10  * All rights reserved
11  *
12  * See top level LICENSE, COPYRIGHT, CONTRIBUTORS, NOTICE, and ACKNOWLEDGEMENTS files for details.
13  * ------------------------------------------------------------------------------------------------------------
14  */
15 
16 /*
17  * @file SimpleGeometricObjectBase.hpp
18  */
19 
20 #ifndef GEOS_MESH_SIMPLEGEOMETRICOBJECTS_SIMPLEGEOMETRICOBJECTBASE_HPP_
21 #define GEOS_MESH_SIMPLEGEOMETRICOBJECTS_SIMPLEGEOMETRICOBJECTBASE_HPP_
22 
23 #include "dataRepository/Group.hpp"
26 
27 class Function;
28 
29 namespace geos
30 {
31 namespace dataRepository
32 {
33 namespace keys
34 {
35 string const geometricObjects( "GeometricObjects" );
36 }
37 }
38 
44 {
45 public:
46 
51 
57  explicit SimpleGeometricObjectBase( string const & name,
58  Group * const parent );
59 
64 
66 
71 
76  static string catalogName() { return "SimpleGeometricObjectBase"; }
77 
82 
87 
89 
95  virtual bool isCoordInObject( real64 const ( &coord ) [3] ) const = 0;
96 
97 };
98 
99 
100 }
101 #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:99