44 #ifndef Foam_searchableSurface_H 45 #define Foam_searchableSurface_H 126 word surfaceType(is);
131 namedIO().rename(readName);
154 const word& surfaceType,
167 virtual bool global()
const 203 virtual label
size()
const = 0;
375 const bool keepNonLocal,
400 struct is_globalIOobject<searchableSurface> : std::true_type {};
autoPtr< IOobject > clone() const
Clone.
A class for handling file names.
virtual const wordList & regions() const =0
Names of regions.
fileName globalFilePath(const word &typeName, const bool search=true) const
Redirect to fileHandler filePath, searching up if in parallel.
virtual fileName filePath() const
Return complete path + object name if the file exists.
virtual tmp< pointField > coordinates() const =0
Get representative set of element coordinates.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
TypeName("searchableSurface")
Runtime type information.
An Istream is an abstract base class for all input systems (streams, files, token lists etc)...
scalarField samples(nIntervals, Zero)
declareRunTimeSelectionTable(autoPtr, searchableSurface, dict,(const IOobject &io, const dictionary &dict),(io, dict))
A bounding box defined in terms of min/max extrema points.
Base class of (analytical or triangulated) surface. Encapsulates all the search routines. WIP.
Class used for the read-construction of.
An enumeration wrapper for classification of a location as being inside/outside of a volume...
virtual void findLineAny(const pointField &start, const pointField &end, List< pointIndexHit > &) const =0
Return any intersection on segment from start to end.
virtual const boundBox & bounds() const
Return const reference to boundBox.
virtual void getField(const List< pointIndexHit > &, labelList &values) const
WIP. From a set of hits (points and.
Pair< int > faceMap(const label facePi, const face &faceP, const label faceNi, const face &faceN)
List< T > values(const HashTable< T, Key, Hash > &tbl, const bool doSort=false)
List of values from HashTable, optionally sorted.
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
virtual bool hasVolumeType() const
Whether supports volume type (below).
virtual bool global() const
Is object global.
virtual void findNearest(const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &) const =0
virtual void findLineAll(const pointField &start, const pointField &end, List< List< pointIndexHit >> &) const =0
Get all intersections in order from start to end.
A class for handling words, derived from Foam::string.
virtual bool overlaps(const boundBox &bb) const =0
Does any part of the surface overlap the supplied bound box?
virtual label globalSize() const
Range of global indices that can be returned.
InfoProxy< IOobject > info() const noexcept
Return info proxy, for printing information to a stream.
virtual autoPtr< searchableSurface > clone() const
Clone.
virtual tmp< pointField > points() const =0
Get the points that define the surface.
constexpr auto end(C &c) -> decltype(c.end())
Return iterator to the end of the container c.
Basic run-time type information using word as the type's name. Used to enhance the standard RTTI to c...
virtual volumeType outsideVolumeType() const =0
If surface supports volume queries, what is type of points outside.
static autoPtr< searchableSurface > New(const word &surfaceType, const IOobject &io, const dictionary &dict)
Return a reference to the selected searchableSurface.
virtual void getVolumeType(const pointField &, List< volumeType > &) const =0
Determine type (inside/outside) for point.
virtual void getRegion(const List< pointIndexHit > &, labelList ®ion) const =0
From a set of points and indices get the region.
regIOobject is an abstract class derived from IOobject to handle automatic object registration with t...
Pointer management similar to std::unique_ptr, with some additional methods and type checking...
Macros to ease declaration of run-time selection tables.
virtual label size() const =0
Range of local indices that can be returned.
List< label > labelList
A List of labels.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
A class for managing temporary objects.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
Defines the attributes of an object for which implicit objectRegistry management is supported...
virtual void distribute(const List< treeBoundBox > &, const bool keepNonLocal, autoPtr< mapDistribute > &faceMap, autoPtr< mapDistribute > &pointMap)
Set bounds of surface. Bounds currently set as list of.
virtual ~searchableSurface()=default
Destructor.
virtual void setField(const labelList &values)
WIP. Store element-wise field.
virtual void getNormal(const List< pointIndexHit > &, vectorField &normal) const =0
From a set of points and indices get the normal.
autoPtr< searchableSurface > operator()(Istream &is) const
virtual void findLine(const pointField &start, const pointField &end, List< pointIndexHit > &) const =0
Find first intersection on segment from start to end.
virtual void boundingSpheres(pointField ¢res, scalarField &radiusSqr) const =0
Get bounding spheres (centre and radius squared), one per element.