52#ifndef searchableDisk_H
53#define searchableDisk_H
93 const scalar nearestDistSqr
105 searchableDisk(
const searchableDisk&) =
delete;
108 void operator=(
const searchableDisk&) =
delete;
122 const point& originPoint,
123 const vector& normalVector,
124 const scalar outerRadius,
125 const scalar innerRadius = 0
158 virtual label
size()
const
179 virtual tmp<pointField>
points()
const
194 virtual void findNearest
201 virtual void findLine
Minimal example by using system/controlDict.functions:
Defines the attributes of an object for which implicit objectRegistry management is supported,...
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
A bounding box defined in terms of min/max extrema points.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
A class representing the concept of 1 (one) that can be used to avoid manipulating objects known to b...
Geometric class that creates a 3D plane and can return the intersection point between a line and the ...
plane()
Construct zero-initialised.
const point & origin() const noexcept
The plane base point.
Searching on circular disk given as origin, normal (gets normalised) and radius. Optionally it can be...
virtual label size() const
Range of local indices that can be returned.
virtual bool overlaps(const boundBox &bb) const
Does any part of the surface overlap the supplied bound box?
bool writeData(Ostream &) const
Pure virtual writeData function.
virtual ~searchableDisk()=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 void findLineAny(const pointField &start, const pointField &end, List< pointIndexHit > &) const
Return any intersection on segment from start to end.
virtual void boundingSpheres(pointField ¢res, scalarField &radiusSqr) const
Get bounding spheres (centre and radius squared), one per element.
TypeName("searchableDisk")
Runtime type information.
virtual void getVolumeType(const pointField &points, List< volumeType > &volType) const
Determine type (inside/outside/mixed) for point.
virtual tmp< pointField > coordinates() const
Get representative set of element coordinates.
virtual tmp< pointField > points() const
Get the points that define the surface.
virtual volumeType outsideVolumeType() const
What is type of points outside bounds.
virtual void getRegion(const List< pointIndexHit > &, labelList ®ion) const
From a set of points and indices get the region.
virtual const wordList & regions() const
Names of regions.
virtual bool hasVolumeType() const
Whether supports volume type (below).
virtual void getNormal(const List< pointIndexHit > &, vectorField &normals) const
From a set of points and indices get the normal.
Base class of (analytical or triangulated) surface. Encapsulates all the search routines....
virtual void findNearest(const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &) const =0
A class for managing temporary objects.
static tmp< T > New(Args &&... args)
Construct tmp with forwarding arguments.
An enumeration wrapper for classification of a location as being inside/outside of a volume.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
List< word > wordList
List of word.
List< label > labelList
A List of labels.
MinMax< scalar > scalarMinMax
A scalar min/max range.
Field< scalar > scalarField
Specialisation of Field<T> for scalar.
Field< vector > vectorField
Specialisation of Field<T> for vector.
vector point
Point is a vector.
vectorField pointField
pointField is a vectorField.
PointIndexHit< point > pointIndexHit
A PointIndexHit with a 3D point.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.