66 #ifndef searchableSurfaceWithGaps_H 67 #define searchableSurfaceWithGaps_H 82 class searchableSurfaceWithGaps
84 public searchableSurface
94 UPtrList<searchableSurface> subGeom_;
109 static label countMisses
115 static label countMisses
133 TypeName(
"searchableSurfaceWithGaps");
176 virtual label
size()
const 307 subGeom_[0].setField(
values);
virtual ~searchableSurfaceWithGaps()=default
Destructor.
virtual void findLineAll(const pointField &start, const pointField &end, List< List< pointIndexHit >> &) const
Get all intersections in order from start to end.
virtual bool hasVolumeType() const
Whether supports volume type (below)
searchableSurface using multiple slightly shifted underlying surfaces to make sure pierces don't go t...
virtual const wordList & regions() const =0
Names of regions.
virtual void boundingSpheres(pointField ¢res, scalarField &radiusSqr) const
Get bounding spheres (centre and radius squared), one per element.
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...
virtual const wordList & regions() const
Name of regions.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
virtual void getRegion(const List< pointIndexHit > &info, labelList ®ion) const
From a set of points and indices get the region.
scalarField samples(nIntervals, Zero)
virtual tmp< pointField > coordinates() const
Get representative set of element coordinates.
A bounding box defined in terms of min/max extrema points.
Base class of (analytical or triangulated) surface. Encapsulates all the search routines. WIP.
virtual void setField(const labelList &values)
Set bounds of surface. Bounds currently set as list of.
TypeName("searchableSurfaceWithGaps")
Runtime type information.
virtual void getField(const List< pointIndexHit > &, labelList &values) const
WIP. From a set of hits (points and.
const searchableSurface & surface() const
The underlying searchableSurface.
List< T > values(const HashTable< T, Key, Hash > &tbl, const bool doSort=false)
List of values from HashTable, optionally sorted.
virtual bool hasVolumeType() const
Whether supports volume type (below).
virtual volumeType outsideVolumeType() const
What is type of points outside bounds.
An ordered pair of two objects of type <T> with first() and second() elements.
virtual void findNearest(const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &) const =0
virtual bool overlaps(const boundBox &bb) const =0
Does any part of the surface overlap the supplied bound box?
virtual void findNearest(const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &info) const
Find nearest on original surface. Note:does not use perturbation.
virtual label size() const
Range of local indices that can be returned.
virtual void getField(const List< pointIndexHit > &info, labelList &values) const
WIP. From a set of hits (points and.
InfoProxy< IOobject > info() const noexcept
Return info proxy, for printing information to a stream.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
virtual void findLineAny(const pointField &start, const pointField &end, List< pointIndexHit > &) const
Return any intersection on segment from start to end.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
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.
OBJstream os(runTime.globalPath()/outputName)
virtual void getVolumeType(const pointField &samples, List< volumeType > &info) const
Determine type (inside/outside/mixed) for points.
virtual void getNormal(const List< pointIndexHit > &info, vectorField &normal) const
From a set of points and indices get the normal.
virtual tmp< pointField > points() const
Get the points that define the surface.
virtual bool overlaps(const boundBox &bb) const
Does any part of the surface overlap the supplied bound box?
virtual volumeType outsideVolumeType() const =0
If surface supports volume queries, what is type of points outside.
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.
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.
virtual void findLine(const pointField &start, const pointField &end, List< pointIndexHit > &) const
Find first intersection on segment from start to end.
virtual bool writeData(Ostream &) const =0
Pure virtual writeData function.
Defines the attributes of an object for which implicit objectRegistry management is supported...
virtual void getNormal(const List< pointIndexHit > &, vectorField &normal) const =0
From a set of points and indices get the normal.
bool writeData(Ostream &os) const
Pure virtual writeData function.
virtual void boundingSpheres(pointField ¢res, scalarField &radiusSqr) const =0
Get bounding spheres (centre and radius squared), one per element.