40#ifndef topoDistanceData_H
41#define topoDistanceData_H
102 inline const Type&
data()
const
111 template<
class TrackingData>
112 inline bool valid(TrackingData&
td)
const;
115 template<
class TrackingData>
126 template<
class TrackingData>
131 const label patchFacei,
132 const point& faceCentre,
137 template<
class TrackingData>
142 const label patchFacei,
143 const point& faceCentre,
148 template<
class TrackingData>
157 template<
class TrackingData>
161 const label thisCelli,
162 const label neighbourFacei,
169 template<
class TrackingData>
173 const label thisFacei,
174 const label neighbourCelli,
181 template<
class TrackingData>
185 const label thisFacei,
192 template<
class TrackingData>
202 template<
class TrackingData>
227 friend Ostream& operator<< <Type>
232 friend Istream&
operator>> <Type>
248struct is_contiguous_label<topoDistanceData<Type>> :
249 is_contiguous_label<Type> {};
An Istream is an abstract base class for all input systems (streams, files, token lists etc)....
An Ostream is an abstract base class for all output systems (streams, files, token lists,...
Mesh consisting of general polyhedral cells.
A patch is a list of labels that address the faces in the global face list.
For use with FaceCellWave. Determines topological distance to starting faces. Templated on passive tr...
void transform(const polyMesh &, const tensor &, TrackingData &td)
Apply rotation matrix to any coordinates.
void enterDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Reverse of leaveDomain.
bool updateFace(const polyMesh &, const label thisFacei, const label neighbourCelli, const topoDistanceData< Type > &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring cell.
bool updateCell(const polyMesh &, const label thisCelli, const label neighbourFacei, const topoDistanceData< Type > &neighbourInfo, const scalar tol, TrackingData &td)
Influence of neighbouring face.
bool operator!=(const topoDistanceData< Type > &) const
bool sameGeometry(const polyMesh &, const topoDistanceData< Type > &, const scalar, TrackingData &td) const
Check for identical geometrical data (eg, cyclics checking).
topoDistanceData()
Construct null with invalid (-1) for distance, null constructor.
bool equal(const topoDistanceData< Type > &, TrackingData &td) const
Test for equality, with TrackingData.
bool valid(TrackingData &td) const
Changed or contains original (invalid) value.
bool interpolate(const polyMesh &, const point &pt, const label i0, const topoDistanceData< Type > &f0, const label i1, const topoDistanceData< Type > &f1, const scalar weight, const scalar tol, TrackingData &td)
Interpolate between two values (lerp). Returns true if causes changes. Not sure if needs to be specia...
void leaveDomain(const polyMesh &, const polyPatch &, const label patchFacei, const point &faceCentre, TrackingData &td)
Convert any absolute coordinates into relative to (patch)face.
const Type & data() const
bool operator==(const topoDistanceData< Type > &) const
wallPoints::trackData td(isBlockedFace, regionToBlockSize)
Ostream & operator<<(Ostream &, const boundaryPatch &p)
Write boundaryPatch as dictionary entries (without surrounding braces).
Istream & operator>>(Istream &, directionInfo &)
vector point
Point is a vector.
A template class to specify if a data type is composed solely of Foam::label elements.
A template class to specify if a data type is composed solely of Foam::scalar elements.
A template class to specify that a data type can be considered as being contiguous in memory.