Mixin interface implemented by user objects that can classify a query point against a closed surface (or a union of closed surfaces). More...
#include <PointInSurfaceCheckInterface.h>
Public Member Functions | |
| virtual | ~PointInSurfaceCheckInterface ()=default |
| virtual SurfaceGeometry::SurfaceSide | sideness (const libMesh::Point &p) const =0 |
| Classify a point as INSIDE, ON, or OUTSIDE the surface(s). | |
| bool | contains (const libMesh::Point &p) const |
| Whether the point is inside or on the surface(s). ON maps to true. | |
Mixin interface implemented by user objects that can classify a query point against a closed surface (or a union of closed surfaces).
This is deliberately NOT a UserObject: keeping it a plain abstract class lets a concrete object multiply-inherit it alongside either GeneralUserObject (for the mesh-based, thread-safe checkers) or ThreadedGeneralUserObject (for checkers that evaluate a Function and therefore need a per-thread copy). Deriving the interface itself from GeneralUserObject would create a diamond in the threaded case, so it carries no base and no data.
Consumers hold objects polymorphically as PointInSurfaceCheckInterface and, to fetch one by name, dynamic_cast the UserObjectBase to this interface – the same pattern MOOSE uses for role mixins such as BlockRestrictable.
Definition at line 34 of file PointInSurfaceCheckInterface.h.
|
virtualdefault |
|
inline |
Whether the point is inside or on the surface(s). ON maps to true.
Definition at line 43 of file PointInSurfaceCheckInterface.h.
Referenced by PointInPolyhedronCheckUO::spatialValue(), PointInSignedFunctionCheckUO::spatialValue(), and PointInUnionCheckUO::spatialValue().
|
pure virtual |
Classify a point as INSIDE, ON, or OUTSIDE the surface(s).
Referenced by contains().