chombo-discharge
CD_PerlinSlabSdf.H
Go to the documentation of this file.
1 /* chombo-discharge
2  * Copyright © 2021 SINTEF Energy Research.
3  * Please refer to Copyright.txt and LICENSE in the chombo-discharge root directory.
4  */
5 
12 #ifndef CD_PerlinSlabSdf_H
13 #define CD_PerlinSlabSdf_H
14 
15 // Chombo includes
16 #include <BaseIF.H>
17 
18 // Our includes
19 #include <CD_NamespaceHeader.H>
20 
24 class PerlinSlabSdf : public BaseIF
25 {
26 public:
30  PerlinSlabSdf() = delete;
31 
47  PerlinSlabSdf(const RealVect a_ccPoint,
48  const RealVect a_normal,
49  const RealVect a_xyz,
50  const RealVect a_noiseFreq,
51  const int a_octaves,
52  const Real a_noiseAmp,
53  const Real a_persistence,
54  const Real a_cornerCurv,
55  const bool a_reseed,
56  const bool a_fluidInside);
57 
61  PerlinSlabSdf(const PerlinSlabSdf& a_inputIF);
62 
66  virtual ~PerlinSlabSdf();
67 
72  virtual Real
73  value(const RealVect& a_pos) const override;
74 
78  virtual BaseIF*
79  newImplicitFunction() const override;
80 
81 protected:
85  RefCountedPtr<BaseIF> m_baseif;
86 
91 };
92 
93 #include <CD_NamespaceFooter.H>
94 
95 #endif
Implicit function class describing a slab (box) with surface noise on the top.
Definition: CD_PerlinSlabSdf.H:25
PerlinSlabSdf()=delete
No weak constructor allowed, use the full constructor.
virtual BaseIF * newImplicitFunction() const override
Factory function.
Definition: CD_PerlinSlabSdf.cpp:98
bool m_fluidInside
Fluid on inside or not.
Definition: CD_PerlinSlabSdf.H:90
virtual ~PerlinSlabSdf()
Destructor (does nothing)
Definition: CD_PerlinSlabSdf.cpp:82
RefCountedPtr< BaseIF > m_baseif
Implicit function. This is a union between cutting planes and a perlin plane.
Definition: CD_PerlinSlabSdf.H:85
virtual Real value(const RealVect &a_pos) const override
Value function. Returns distance to object.
Definition: CD_PerlinSlabSdf.cpp:86