13 #include "libmesh/plane.h" 14 #include "libmesh/point.h" 15 #include "libmesh/mesh.h" 16 #include "libmesh/elem.h" 25 const MeshBase & mesh,
26 std::vector<const Elem *> & intersected_elems)
29 for (
const auto & elem :
mesh.element_ptr_range())
31 bool intersected =
false;
34 const Node & node0 = elem->node_ref(0);
35 bool node0_above_plane = plane.above_surface(node0);
38 for (
unsigned int i = 1; i < elem->n_nodes(); ++i)
40 const Node & node = elem->node_ref(i);
42 bool node_above_plane = plane.above_surface(node);
43 if (node0_above_plane != node_above_plane)
48 intersected_elems.push_back(elem);
55 const MeshBase & mesh,
56 std::vector<const Elem *> & intersected_elems)
59 intersected_elems.clear();
62 Plane plane(p0, normal);
72 const MeshBase & mesh,
73 std::vector<const Elem *> & intersected_elems)
76 intersected_elems.clear();
79 Plane plane(p0, p1, p2);
void findElementsIntersectedByPlane(const Plane &plane, const MeshBase &mesh, std::vector< const Elem *> &intersected_elems)
void elementsIntersectedByPlane(const Point &p0, const Point &normal, const MeshBase &mesh, std::vector< const Elem *> &intersected_elems)
Find all of the elements intersected by a plane.
MOOSE now contains C++17 code, so give a reasonable error message stating what the user can do to add...