54 #ifndef triSurfaceMesh_H 55 #define triSurfaceMesh_H 79 public searchableSurface,
80 public objectRegistry,
82 public triSurfaceRegionSearch
96 mutable autoPtr<indexedOctree<treeDataEdge>>
edgeTree_;
214 virtual label
size()
const 323 virtual bool global()
const
bool writeData(Ostream &) const
writeData function required by regIOobject but not used.
virtual void findLine(const pointField &start, const pointField &end, List< pointIndexHit > &) const
Find first intersection on segment from start to end.
virtual bool writeObject(IOstreamOption streamOpt, const bool valid) const
Write using stream options.
virtual tmp< pointField > coordinates() const
Get representative set of element coordinates.
void clearOut()
Clear storage.
fileName globalFilePath(const word &typeName, const bool search=true) const
Redirect to fileHandler filePath, searching up if in parallel.
A list of keyword definitions, which are a keyword followed by a number of values (eg...
virtual void boundingSpheres(pointField ¢res, scalarField &radiusSqr) const
Get bounding spheres (centre and radius squared). Any point.
virtual fileName filePath() const
Return complete path + object name if the file exists.
static void getNextIntersections(const indexedOctree< treeDataTriSurface > &octree, const point &start, const point &end, const vector &smallVec, DynamicList< pointIndexHit > &hits)
Steps to next intersection. Adds smallVec and starts tracking.
virtual tmp< pointField > points() const
Get the points that define the surface.
virtual ~triSurfaceMesh()
Destructor.
virtual void findNearest(const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &) const
virtual void setField(const labelList &values)
WIP. Store element-wise field.
static bool addFaceToEdge(const edge &, EdgeMap< label > &)
Helper function for isSurfaceClosed.
virtual bool overlaps(const boundBox &bb) const
Does any part of the surface overlap the supplied bound box?
A bounding box defined in terms of min/max extrema points.
A simple container for options an IOstream can normally have.
An enumeration wrapper for classification of a location as being inside/outside of a volume...
bool isSurfaceClosed() const
Check whether surface is closed without calculating any permanent.
iterator end() noexcept
iterator to signal the end (for any HashTable)
static word meshSubDir
Return the mesh sub-directory name (usually "triSurface")
IOoject and searching on triSurface.
virtual bool hasVolumeType() const
Whether supports volume type (below) - i.e. whether is closed.
virtual bool global() const
Is object global.
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.
volumeType outsideVolType_
If surface is closed, what is type of outside points.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, false)
virtual void getVolumeType(const pointField &points, List< volumeType > &volType) const
Determine type (inside/outside/mixed) for point.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects...
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
A class for handling words, derived from Foam::string.
virtual void findLineAll(const pointField &start, const pointField &end, List< List< pointIndexHit >> &) const
Get all intersections in order from start to end.
autoPtr< indexedOctree< treeDataEdge > > edgeTree_
Search tree for boundary edges.
An Ostream is an abstract base class for all output systems (streams, files, token lists...
void operator=(const triSurfaceMesh &)=delete
No copy assignment.
bool typeGlobal< triSurfaceMesh >()
Template function for obtaining global status.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
const indexedOctree< treeDataEdge > & edgeTree() const
Demand driven construction of octree for boundary edges.
virtual void getRegion(const List< pointIndexHit > &, labelList ®ion) const
From a set of points and indices get the region.
scalar minQuality_
Optional min triangle quality. Triangles below this get.
virtual void getNormal(const List< pointIndexHit > &, vectorField &normal) const
From a set of points and indices get the normal.
TypeName("triSurfaceMesh")
Runtime type information.
List< word > wordList
A List of words.
Non-pointer based hierarchical recursive searching.
virtual label size() const
Range of local indices that can be returned.
label surfaceClosed_
Is surface closed.
virtual void findLineAny(const pointField &start, const pointField &end, List< pointIndexHit > &) const
Return any intersection on segment from start to end.
virtual void movePoints(const pointField &)
Move points.
label size() const noexcept
The number of elements in the UList.
A class for managing temporary objects.
virtual volumeType outsideVolumeType() const
If surface is closed, what is type of points outside bounds.
triSurfaceMesh(const triSurfaceMesh &)=delete
No copy construct.
Triangulated surface description with patch information.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
fileName fName_
Supplied fileName override.
Defines the attributes of an object for which implicit objectRegistry management is supported...
virtual const wordList & regions() const
Names of regions.
wordList regions_
Names of regions.
virtual void getField(const List< pointIndexHit > &, labelList &) const
WIP. From a set of hits (points and.