GEOS
Cylinder.hpp
Go to the documentation of this file.
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 Total, S.A
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 
21 #ifndef GEOS_MESH_SIMPLEGEOMETRICOBJECTS_CYLINDER_HPP_
22 #define GEOS_MESH_SIMPLEGEOMETRICOBJECTS_CYLINDER_HPP_
23 
24 #include "SimpleGeometricObjectBase.hpp"
25 
26 namespace geos
27 {
28 
34 {
35 public:
36 
41 
47  Cylinder( const string & name,
48  Group * const parent );
49 
53  virtual ~Cylinder() override;
54 
56 
61 
66  static string catalogName() { return "Cylinder"; }
67 
69 
70  bool isCoordInObject( real64 const ( &coord ) [3] ) const override final;
71 
73 
74  struct viewKeyStruct
75  {
76  static constexpr char const * point1String() { return "firstFaceCenter"; }
77  static constexpr char const * point2String() { return "secondFaceCenter"; }
78  static constexpr char const * radiusString() { return "outerRadius"; }
79  static constexpr char const * innerRadiusString() { return "innerRadius"; }
80  };
81 
83 
84 private:
85 
87  R1Tensor m_point1;
88 
90  R1Tensor m_point2;
91 
93  real64 m_radius = 0.0;
94 
96  real64 m_innerRadius = 0.0;
97 
98 };
99 } /* namespace geos */
100 
101 #endif /* GEOS_MESH_SIMPLEGEOMETRICOBJECTS_CYLINDER_HPP_
102  */
Class to represent a geometric cylinder in GEOSX.
Definition: Cylinder.hpp:34
virtual ~Cylinder() override
Default destructor.
Cylinder(const string &name, Group *const parent)
Constructor.
static string catalogName()
Get the catalog name.
Definition: Cylinder.hpp:66
bool isCoordInObject(real64 const (&coord)[3]) const override final
Check if the input coordinates are in the object.
Base class for the geometric objects (box, plane, cylinder).
double real64
64-bit floating point type.
Definition: DataTypes.hpp:99
Structure to hold scoped key names.
Definition: Group.hpp:1442