70#ifndef Foam_vf_voxelRaySearchEngine_H
71#define Foam_vf_voxelRaySearchEngine_H
116 const label nRayPerFace_;
119 const label nTriPerVoxelMax_;
122 const label depthMax_;
133 inline bool outOfBounds(
const labelVector&
ijk,
const label dir)
const;
135 inline point localPosition(
const vector& globalPosition)
const;
137 inline point globalPosition(
const vector& localPosition)
const;
139 inline void setVoxelDims(
const label i,
const label j,
const label
k);
141 inline void refineVoxelDims();
143 inline point voxelMin
150 inline point voxelMax
157 inline constexpr label sign0(
const scalar
x)
const;
170 void setCoarseTriangulation(
const fvMesh&
mesh);
208 const scalar minDistance = 1
e-6
218 void writeVoxels(
const word& fName)
const;
220 void writeTriBoundBoxes(
const word& fName)
const;
239 virtual ~voxel() =
default;
278#include "voxelRaySearchEngineI.H"
A 1D vector of objects of type <T> that resizes itself as necessary to accept the new objects.
A 1D array of objects of type <T>, where the size of the vector is known and used for subscript bound...
An OFstream that keeps track of vertices and provides convenience output methods for OBJ files.
Base class for ray search engines.
const fvMesh & mesh() const noexcept
Reference to the mesh.
const labelList & patchIDs() const noexcept
List of participating patch IDs.
raySearchEngine(const raySearchEngine &)=delete
No copy construct.
Ray search engine based on discretising space into uniform voxels.
label voxeli(const labelVector ijk) const noexcept
pointIndexHit hit(const point &origin, const vector &dir) const
voxel(const fvMesh &mesh, const dictionary &dict)
Constructor.
virtual void shootRays(labelList &rayStartFaceOut, labelList &rayEndFaceOut) const
Shoot rays; returns lists of ray start and end faces.
labelVector nijk() const noexcept
labelVector ijk(const label voxeli) const noexcept
label nVoxel() const noexcept
virtual ~voxel()=default
Destructor.
TypeName("voxel")
Runtime type information.
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,...
Mesh data needed to do the Finite Volume discretisation.
Triangulated surface description with patch information.
A class for handling words, derived from Foam::string.
OBJstream os(runTime.globalPath()/outputName)
A namespace for various viewFactor model implementations.
PointHit< point > pointHit
A PointHit with a 3D point.
List< label > labelList
A List of labels.
Vector< label > labelVector
Vector of labels.
vector point
Point is a vector.
PointIndexHit< point > pointIndexHit
A PointIndexHit with a 3D point.
#define TypeName(TypeNameString)
Declare a ClassName() with extra virtual type info.