chombo-discharge
Loading...
Searching...
No Matches
CD_PerlinSlabSdf.H
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2021-2026 SINTEF Energy Research
3 *
4 * SPDX-License-Identifier: GPL-3.0-or-later
5 */
6
13#ifndef CD_PERLINSLABSDF_H
14#define CD_PERLINSLABSDF_H
15
16// Chombo includes
17#include <BaseIF.H>
18
19// Our includes
20#include <CD_NamespaceHeader.H>
21
25class PerlinSlabSdf : public BaseIF
26{
27public:
31 PerlinSlabSdf() = delete;
32
48 PerlinSlabSdf(const RealVect& a_ccPoint,
49 const RealVect& a_normal,
50 const RealVect& a_xyz,
51 const RealVect& a_noiseFreq,
52 const int a_octaves,
53 const Real a_noiseAmp,
54 const Real a_persistence,
55 const Real a_cornerCurv,
56 const bool a_reseed,
57 const bool a_fluidInside);
58
63 PerlinSlabSdf(const PerlinSlabSdf& a_inputIF);
64
68 virtual ~PerlinSlabSdf();
69
75 virtual Real
76 value(const RealVect& a_pos) const override;
77
82 virtual BaseIF*
83 newImplicitFunction() const override;
84
85protected:
89 RefCountedPtr<BaseIF> m_baseif;
90
95};
96
97#include <CD_NamespaceFooter.H>
98
99#endif
Implicit function class describing a slab (box) with surface noise on the top.
Definition CD_PerlinSlabSdf.H:26
PerlinSlabSdf()=delete
No weak constructor allowed, use the full constructor.
virtual BaseIF * newImplicitFunction() const override
Factory function.
Definition CD_PerlinSlabSdf.cpp:96
bool m_fluidInside
Fluid on inside or not.
Definition CD_PerlinSlabSdf.H:94
virtual ~PerlinSlabSdf()
Destructor (does nothing)
RefCountedPtr< BaseIF > m_baseif
Implicit function. This is a union between cutting planes and a perlin plane.
Definition CD_PerlinSlabSdf.H:89
virtual Real value(const RealVect &a_pos) const override
Value function. Returns distance to object.
Definition CD_PerlinSlabSdf.cpp:84