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 319 const bool writeOnProc
323 virtual bool global()
const 341 struct is_globalIOobject<triSurfaceMesh> : std::true_type {};
bool writeData(Ostream &) const
The writeData function is 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 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.
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 vertex labels. This can correspond to a directed graph edge or an edge 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.
A Vector of values with scalar precision, where scalar is float/double depending on the compilation f...
label size() const noexcept
The number of elements in the container.
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
List of word.
Non-pointer based hierarchical recursive searching.
virtual label size() const
Range of local indices that can be returned.
virtual bool writeObject(IOstreamOption streamOpt, const bool writeOnProc) const
Write using stream options.
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.
IOobject io("surfaceFilmProperties", mesh.time().constant(), mesh, IOobject::READ_IF_PRESENT, IOobject::NO_WRITE, IOobject::NO_REGISTER)
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.