LevelSetSolver3.h
Go to the documentation of this file.
1 /*************************************************************************
2 > File Name: LevelSetSolver3.h
3 > Project Name: CubbyFlow
4 > Author: Chan-Ho Chris Ohk
5 > Purpose: Abstract base class for 3-D level set solver.
6 > Created Time: 2017/08/29
7 > Copyright (c) 2018, Chan-Ho Chris Ohk
8 *************************************************************************/
9 #ifndef CUBBYFLOW_LEVEL_SET_SOLVER3_H
10 #define CUBBYFLOW_LEVEL_SET_SOLVER3_H
11 
14 #include <Core/Grid/ScalarGrid3.h>
15 
16 #include <memory>
17 
18 namespace CubbyFlow
19 {
22  {
23  public:
26 
28  virtual ~LevelSetSolver3();
29 
37  virtual void Reinitialize(
38  const ScalarGrid3& inputSDF,
39  double maxDistance,
40  ScalarGrid3* outputSDF) = 0;
41 
50  virtual void Extrapolate(
51  const ScalarGrid3& input,
52  const ScalarField3& sdf,
53  double maxDistance,
54  ScalarGrid3* output) = 0;
55 
65  virtual void Extrapolate(
66  const CollocatedVectorGrid3& input,
67  const ScalarField3& sdf,
68  double maxDistance,
69  CollocatedVectorGrid3* output) = 0;
70 
80  virtual void Extrapolate(
81  const FaceCenteredGrid3& input,
82  const ScalarField3& sdf,
83  double maxDistance,
84  FaceCenteredGrid3* output) = 0;
85  };
86 
88  using LevelSetSolver3Ptr = std::shared_ptr<LevelSetSolver3>;
89 }
90 
91 #endif
Abstract base class for 3-D collocated vector grid structure.
Definition: CollocatedVectorGrid3.h:19
LevelSetSolver3()
Default constructor.
Abstract base class for 3-D level set solver.
Definition: LevelSetSolver3.h:21
virtual ~LevelSetSolver3()
Default destructor.
3-D face-centered (a.k.a MAC or staggered) grid.
Definition: FaceCenteredGrid3.h:25
Definition: pybind11Utils.h:24
virtual void Extrapolate(const ScalarGrid3 &input, const ScalarField3 &sdf, double maxDistance, ScalarGrid3 *output)=0
Abstract base class for 3-D scalar field.
Definition: ScalarField3.h:21
virtual void Reinitialize(const ScalarGrid3 &inputSDF, double maxDistance, ScalarGrid3 *outputSDF)=0
Abstract base class for 3-D scalar grid structure.
Definition: ScalarGrid3.h:21
std::shared_ptr< LevelSetSolver3 > LevelSetSolver3Ptr
Shared pointer type for the LevelSetSolver3.
Definition: LevelSetSolver3.h:88