PointGenerator3.h
Go to the documentation of this file.
1 /*************************************************************************
2 > File Name: PointGenerator3.h
3 > Project Name: CubbyFlow
4 > Author: Chan-Ho Chris Ohk
5 > Purpose: Abstract base class for 3-D point generator.
6 > Created Time: 2017/06/02
7 > Copyright (c) 2018, Chan-Ho Chris Ohk
8 *************************************************************************/
9 #ifndef CUBBYFLOW_POINT_GENERATOR3_H
10 #define CUBBYFLOW_POINT_GENERATOR3_H
11 
12 #include <Core/Array/Array1.h>
14 
15 #include <functional>
16 
17 namespace CubbyFlow
18 {
27  {
28  public:
30 
31  virtual ~PointGenerator3();
32 
35  void Generate(const BoundingBox3D& boundingBox, double spacing, Array1<Vector3D>* points) const;
36 
48  virtual void ForEachPoint(const BoundingBox3D& boundingBox, double spacing,
49  const std::function<bool(const Vector3D&)>& callback) const = 0;
50  };
51 
53  using PointGenerator3Ptr = std::shared_ptr<PointGenerator3>;
54 }
55 
56 #endif
3-D vector class.
Definition: Vector3.h:26
virtual void ForEachPoint(const BoundingBox3D &boundingBox, double spacing, const std::function< bool(const Vector3D &)> &callback) const =0
Iterates every point within the bounding box with specified point pattern and invokes the callback fu...
std::shared_ptr< PointGenerator3 > PointGenerator3Ptr
Shared pointer for the PointGenerator3 type.
Definition: PointGenerator3.h:53
void Generate(const BoundingBox3D &boundingBox, double spacing, Array1< Vector3D > *points) const
1-D array class.
Definition: Array1.h:29
Definition: pybind11Utils.h:24
3-D axis-aligned bounding box class.
Definition: BoundingBox3.h:44
Abstract base class for 3-D point generator.
Definition: PointGenerator3.h:26