35 #ifndef UTILITIES_NEKMESH_PROCESSPROJECTCAD 36 #define UTILITIES_NEKMESH_PROCESSPROJECTCAD 40 #include <boost/geometry.hpp> 41 #include <boost/geometry/geometries/point.hpp> 42 #include <boost/geometry/geometries/box.hpp> 44 #include <boost/geometry/index/rtree.hpp> 46 namespace bg = boost::geometry;
47 namespace bgi = boost::geometry::index;
49 typedef bg::model::point<float, 3, bg::cs::cartesian>
point;
50 typedef bg::model::box<point>
box;
51 typedef std::pair<box, unsigned>
boxI;
81 bool IsNotValid(std::vector<NekMeshUtils::ElementSharedPtr> &els);
bg::model::point< float, 3, bg::cs::cartesian > point
ProcessProjectCAD(NekMeshUtils::MeshSharedPtr m)
static std::shared_ptr< Module > create(NekMeshUtils::MeshSharedPtr m)
Creates an instance of this class.
std::shared_ptr< Mesh > MeshSharedPtr
Shared pointer to a mesh.
bool IsNotValid(std::vector< NekMeshUtils::ElementSharedPtr > &els)
static NekMeshUtils::ModuleKey className
std::pair< box, unsigned > boxI
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
std::pair< box, unsigned int > boxI
virtual ~ProcessProjectCAD()
bool findAndProject(bgi::rtree< boxI, bgi::quadratic< 16 > > &rtree, Array< OneD, NekDouble > in, int &surf)
Abstract base class for processing modules.
virtual void Process()
Write mesh to output file.
std::pair< ModuleType, std::string > ModuleKey
bg::model::box< point > box