FMMLevelSetSolver3.h
Go to the documentation of this file.
1 /*************************************************************************
2 > File Name: FMMLevelSetSolver3.h
3 > Project Name: CubbyFlow
4 > Author: Chan-Ho Chris Ohk
5 > Purpose: Three-dimensional fast marching method (FMM) implementation.
6 > Created Time: 2017/09/01
7 > Copyright (c) 2018, Chan-Ho Chris Ohk
8 *************************************************************************/
9 #ifndef CUBBYFLOW_FMM_LEVEL_SET_SOLVER3_H
10 #define CUBBYFLOW_FMM_LEVEL_SET_SOLVER3_H
11 
13 
14 namespace CubbyFlow
15 {
27  class FMMLevelSetSolver3 final : public LevelSetSolver3
28  {
29  public:
32 
40  void Reinitialize(
41  const ScalarGrid3& inputSDF,
42  double maxDistance,
43  ScalarGrid3* outputSDF) override;
44 
53  void Extrapolate(
54  const ScalarGrid3& input,
55  const ScalarField3& sdf,
56  double maxDistance,
57  ScalarGrid3* output) override;
58 
68  void Extrapolate(
69  const CollocatedVectorGrid3& input,
70  const ScalarField3& sdf,
71  double maxDistance,
72  CollocatedVectorGrid3* output) override;
73 
83  void Extrapolate(
84  const FaceCenteredGrid3& input,
85  const ScalarField3& sdf,
86  double maxDistance,
87  FaceCenteredGrid3* output) override;
88 
89  private:
90  void Extrapolate(
91  const ConstArrayAccessor3<double>& input,
92  const ConstArrayAccessor3<double>& sdf,
93  const Vector3D& gridSpacing,
94  double maxDistance,
95  ArrayAccessor3<double> output);
96  };
97 
99  using FMMLevelSetSolver3Ptr = std::shared_ptr<FMMLevelSetSolver3>;
100 }
101 
102 #endif
3-D vector class.
Definition: Vector3.h:26
3-D array accessor class.
Definition: ArrayAccessor3.h:31
Abstract base class for 3-D collocated vector grid structure.
Definition: CollocatedVectorGrid3.h:19
Three-dimensional fast marching method (FMM) implementation.
Definition: FMMLevelSetSolver3.h:27
Abstract base class for 3-D level set solver.
Definition: LevelSetSolver3.h:21
3-D read-only array accessor class.
Definition: ArrayAccessor3.h:269
std::shared_ptr< FMMLevelSetSolver3 > FMMLevelSetSolver3Ptr
Shared pointer type for the FMMLevelSetSolver3.
Definition: FMMLevelSetSolver3.h:99
FMMLevelSetSolver3()
Default constructor.
3-D face-centered (a.k.a MAC or staggered) grid.
Definition: FaceCenteredGrid3.h:25
Definition: pybind11Utils.h:24
Abstract base class for 3-D scalar field.
Definition: ScalarField3.h:21
Abstract base class for 3-D scalar grid structure.
Definition: ScalarGrid3.h:21
void Extrapolate(const ScalarGrid3 &input, const ScalarField3 &sdf, double maxDistance, ScalarGrid3 *output) override
void Reinitialize(const ScalarGrid3 &inputSDF, double maxDistance, ScalarGrid3 *outputSDF) override