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