Go to the documentation of this file.
53 #ifndef triSurfaceMesh_H
54 #define triSurfaceMesh_H
78 public searchableSurface,
79 public objectRegistry,
81 public triSurfaceRegionSearch
95 mutable autoPtr<indexedOctree<treeDataEdge>>
edgeTree_;
235 return triSurface::size();
344 virtual bool global()
const
Defines the attributes of an object for which implicit objectRegistry management is supported,...
void operator=(const triSurfaceMesh &)=delete
No copy assignment.
static fileName relativeFilePath(const IOobject &, const fileName &, const bool isGlobal)
Return fileName. If fileName is relative gets treated local to.
A class for handling words, derived from Foam::string.
A class for handling file names.
A class for managing temporary objects.
scalar minQuality_
Optional min triangle quality. Triangles below this get.
autoPtr< indexedOctree< treeDataEdge > > edgeTree_
Search tree for boundary edges.
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
virtual void getNormal(const List< pointIndexHit > &, vectorField &normal) const
From a set of points and indices get the normal.
List< T > values(const HashTable< T, Key, Hash > &tbl, const bool doSort=false)
List of values from HashTable, optionally sorted.
virtual void getRegion(const List< pointIndexHit > &, labelList ®ion) const
From a set of points and indices get the region.
const indexedOctree< treeDataEdge > & edgeTree() const
Demand driven construction of octree for boundary edges.
TypeName("triSurfaceMesh")
Runtime type information.
An edge is a list of two point labels. The functionality it provides supports the discretisation on a...
bool typeGlobal< triSurfaceMesh >()
Template function for obtaining global status.
IOoject and searching on triSurface.
Helper class to search on triSurface. Creates an octree for each region of the surface and only searc...
virtual label size() const
Range of local indices that can be returned.
label surfaceClosed_
Is surface closed.
virtual volumeType outsideVolumeType() const
If surface is closed, what is type of points outside bounds.
virtual void findLineAny(const pointField &start, const pointField &end, List< pointIndexHit > &) const
Return any intersection on segment from start to end.
triSurfaceMesh(const triSurfaceMesh &)=delete
No copy construct.
virtual void movePoints(const pointField &)
Move points.
static fileName checkFile(const IOobject &io, const bool isGlobal)
Return fileName to load IOobject from.
List< word > wordList
A List of words.
Registry of regIOobjects.
#define NotImplemented
Issue a FatalErrorIn for a function not currently implemented.
intWM_LABEL_SIZE_t label
A label is an int32_t or int64_t as specified by the pre-processor macro WM_LABEL_SIZE.
An enumeration wrapper for classification of a location as being inside/outside of a volume.
Representation of a major/minor version number.
Triangulated surface description with patch information.
fileName fName_
Supplied fileName override.
Base class of (analytical or triangulated) surface. Encapsulates all the search routines....
virtual void findLine(const pointField &start, const pointField &end, List< pointIndexHit > &) const
Find first intersection on segment from start to end.
Non-pointer based hierarchical recursive searching.
virtual void getField(const List< pointIndexHit > &, labelList &) const
WIP. From a set of hits (points and.
virtual const wordList & regions() const
Names of regions.
wordList regions_
Names of regions.
bool writeData(Ostream &) const
writeData function required by regIOobject but not used.
virtual void boundingSpheres(pointField ¢res, scalarField &radiusSqr) const
Get bounding spheres (centre and radius squared). Any point.
void clearOut()
Clear storage.
streamFormat
Data format (ascii | binary)
virtual fileName filePath() const
Return complete path + object name if the file exists.
fileName globalFilePath(const word &typeName, const bool search=true) const
Helper for filePath that searches up if in parallel.
A list of keyword definitions, which are a keyword followed by a number of values (eg,...
virtual tmp< pointField > points() const
Get the points that define the surface.
virtual tmp< pointField > coordinates() const
Get representative set of element coordinates.
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 void setField(const labelList &values)
WIP. Store element-wise field.
Pointer management similar to std::unique_ptr, with some additional methods and type checking.
virtual ~triSurfaceMesh()
Destructor.
virtual void findNearest(const pointField &sample, const scalarField &nearestDistSqr, List< pointIndexHit > &) const
static bool addFaceToEdge(const edge &, EdgeMap< label > &)
Helper function for isSurfaceClosed.
label ListType::const_reference const label start
fileName::Type type(const fileName &name, const bool followLink=true)
Return the file type: DIRECTORY or FILE, normally following symbolic links.
static word meshSubDir
Return the mesh sub-directory name (usually "triSurface")
virtual bool overlaps(const boundBox &bb) const
Does any part of the surface overlap the supplied bound box?
bool isSurfaceClosed() const
Check whether surface is closed without calculating any permanent.
A bounding box defined in terms of min/max extrema points.
compressionType
Compression treatment (UNCOMPRESSED | COMPRESSED)
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
virtual void getVolumeType(const pointField &points, List< volumeType > &volType) const
Determine type (inside/outside/mixed) for point.
const iterator & end()
iterator to signal the end for any HashTable
virtual bool writeObject(IOstream::streamFormat fmt, IOstream::versionNumber ver, IOstream::compressionType cmp, const bool valid) const
Write using given format, version and compression.
virtual bool hasVolumeType() const
Whether supports volume type (below) - i.e. whether is closed.
virtual bool global() const
Is object global.
virtual void findLineAll(const pointField &start, const pointField &end, List< List< pointIndexHit >> &) const
Get all intersections in order from start to end.
volumeType outsideVolType_
If surface is closed, what is type of outside points.