Namespaces | |
distance_octree | |
pe | |
Typedefs | |
typedef OpenMesh::PolyMesh_ArrayKernelT< OpenMesh::Python::MeshTraits > | PythonPolyMesh |
typedef OpenMesh::PolyMesh_ArrayKernelT< RealTraits > | PolyMesh |
typedef OpenMesh::PolyMesh_ArrayKernelT< FloatTraits > | FloatPolyMesh |
typedef OpenMesh::TriMesh_ArrayKernelT< OpenMesh::Python::MeshTraits > | PythonTriangleMesh |
typedef OpenMesh::TriMesh_ArrayKernelT< RealTraits > | TriangleMesh |
typedef OpenMesh::TriMesh_ArrayKernelT< FloatTraits > | FloatTriangleMesh |
Functions | |
template<typename DistanceObject > | |
ExcludeMeshExterior< DistanceObject > | makeExcludeMeshExterior (const shared_ptr< DistanceObject > &distanceObject, const real_t maxError) |
template<typename DistanceObject > | |
ExcludeMeshInterior< DistanceObject > | makeExcludeMeshInterior (const shared_ptr< DistanceObject > &distanceObject, const real_t maxError) |
template<typename DistanceObject > | |
ExcludeMeshInteriorRefinement< DistanceObject > | makeExcludeMeshInteriorRefinement (const shared_ptr< DistanceObject > &distanceObject, const real_t maxError) |
template<typename MeshType > | |
shared_ptr< StructuredBlockForest > | createStructuredBlockStorageInsideMesh (const shared_ptr< mesh::DistanceOctree< MeshType > > &distanceOctree, const real_t dx, const Vector3< uint_t > &blockSize) |
template<typename MeshType > | |
shared_ptr< StructuredBlockForest > | createStructuredBlockStorageOutsideMesh (const AABB &aabb, const shared_ptr< mesh::DistanceOctree< MeshType > > &distanceOctree, const real_t dx, const Vector3< uint_t > &blockSize) |
template<typename MeshType > | |
shared_ptr< StructuredBlockForest > | createStructuredBlockStorageInsideMesh (const shared_ptr< mesh::DistanceOctree< MeshType > > &distanceOctree, const real_t dx, const uint_t targetNumRootBlocks) |
template<typename MeshType > | |
shared_ptr< StructuredBlockForest > | createStructuredBlockStorageOutsideMesh (const AABB &aabb, const shared_ptr< mesh::DistanceOctree< MeshType > > &distanceOctree, const real_t dx, const uint_t targetNumRootBlocks) |
template<typename DistanceObject > | |
MeshWorkloadMemory< DistanceObject > | makeMeshWorkloadMemory (const shared_ptr< DistanceObject > &distanceObject, const Vector3< typename DistanceObject::Scalar > &cellSize) |
template<typename DistanceObject > | |
MeshWorkloadMemory< DistanceObject > | makeMeshWorkloadMemory (const shared_ptr< DistanceObject > &distanceObject, const typename DistanceObject::Scalar cellSize) |
template<typename DistanceObject > | |
RefinementSelection< DistanceObject > | makeRefinementSelection (const shared_ptr< DistanceObject > &distanceObject, const uint_t level, const real_t distance, real_t maxError) |
template<typename OpenMeshType > | |
void | convertOpenMeshToWalberla (const OpenMeshType &omMesh, geometry::TriangleMesh &wbMesh, bool clear=false) |
Converts an OpenMesh to a geometry::TriangleMesh. More... | |
template<typename OpenMeshType > | |
void | convertWalberlaToOpenMesh (const geometry::TriangleMesh &wbMesh, OpenMeshType &omMesh, bool clear=false) |
Converts a geometry::TriangleMesh to an OpenMesh. More... | |
template<typename S > | |
OpenMesh::VectorT< S, 3 > | operator* (const math::Matrix3< S > &lhs, const OpenMesh::VectorT< S, 3 > &rhs) |
template<typename S > | |
math::Vector3< S > | toWalberla (const OpenMesh::VectorT< S, 3 > &v) |
template<typename S > | |
OpenMesh::VectorT< S, 3 > | toOpenMesh (const math::Vector3< S > &v) |
template<typename SWB , typename SOM > | |
math::Vector3< SWB > | toWalberlaNumericCast (const OpenMesh::VectorT< SOM, 3 > &v) |
template<typename SOM , typename SWB > | |
OpenMesh::VectorT< SOM, 3 > | toOpenMeshNumericCast (const math::Vector3< SWB > &v) |
template<typename MeshType > | |
bool | readFromStream (std::istream &inputStream, MeshType &mesh, const std::string &extension, bool binaryFile=false) |
Reads a mesh from a generic input stream. More... | |
template<typename MeshType > | |
void | readAndBroadcast (const std::string &filename, MeshType &mesh, bool binaryFile=false) |
Loads an OpenMesh in parallel. More... | |
template<typename MeshType > | |
void | readFromFile (const std::string &filename, MeshType &mesh, bool binaryFile=false) |
Read a mesh from a file. More... | |
template<typename MeshType > | |
math::GenericAABB< typename MeshType::Scalar > | computeAABB (const MeshType &mesh) |
template<typename MeshType , typename InputIterator > | |
math::GenericAABB< typename MeshType::Scalar > | computeAABBForVertices (const MeshType &mesh, InputIterator beginVh, InputIterator endVh) |
template<typename MeshType , typename InputIterator > | |
math::GenericAABB< typename MeshType::Scalar > | computeAABBForFaces (const MeshType &mesh, InputIterator beginFh, InputIterator endFh) |
template<typename MeshType > | |
void | translate (MeshType &mesh, const Vector3< typename MeshType::Scalar > &offset) |
template<typename MeshType > | |
void | scale (MeshType &mesh, const Vector3< typename MeshType::Scalar > &scaleFactors) |
template<typename MeshType > | |
void | rotate (MeshType &mesh, Vector3< typename MeshType::Scalar > axis, typename MeshType::Scalar angle, Vector3< typename MeshType::scalar > axis_foot) |
template<typename MeshType > | |
MeshType::Scalar | computeVolume (const MeshType &mesh) |
template<typename MeshType > | |
MeshType::Scalar | computeSurfaceArea (const MeshType &mesh) |
template<typename MeshType > | |
MeshType::Point | computeCentroid (const MeshType &mesh) |
template<typename MeshType > | |
Matrix3< typename MeshType::Scalar > | computeInertiaTensor (const MeshType &mesh) |
template<typename MeshType > | |
MeshType::Point | computeCentroid (const MeshType &mesh, const typename MeshType::FaceHandle fh) |
template<typename MeshType > | |
MeshType::Scalar | computeBoundingSphereRadius (const MeshType &mesh, const typename MeshType::Point &referencePoint) |
template<typename MeshType , typename InputIterator > | |
std::vector< typename MeshType::VertexHandle > | findConnectedVertices (const MeshType &mesh, InputIterator facesBegin, InputIterator facesEnd) |
template<typename MeshType > | |
void | findConnectedVertices (const MeshType &mesh, const typename MeshType::FaceHandle &face, std::vector< typename MeshType::VertexHandle > &outVertices) |
template<typename DistanceObject , typename T , typename U > | |
walberla::optional< bool > | isIntersecting (const DistanceObject &distanceObject, const math::GenericAABB< T > &aabb, const T &maxError) |
template<typename DistanceObject , typename T , typename U > | |
walberla::optional< bool > | fullyCoversAABB (const DistanceObject &distanceObject, const math::GenericAABB< T > &aabb, const T &maxError) |
template<typename DistanceObject , typename T , typename U , typename V > | |
walberla::optional< bool > | intersectsSurface (const DistanceObject &distanceObject, const math::GenericAABB< T > &aabb, const U &maxError, const V &surfaceDistance) |
template<typename MeshType , typename InputIterator > | |
MeshType::Point | principalComponent (const MeshType &mesh, InputIterator beginFh, InputIterator endFh, const uint_t iterations=uint_t(10)) |
template<typename MeshType > | |
MeshType::Point | principalComponent (const MeshType &mesh, const uint_t iterations=uint_t(10)) |
template<typename MeshType > | |
void | rotate (MeshType &mesh, Vector3< typename MeshType::Scalar > axis, typename MeshType::Scalar angle, Vector3< typename MeshType::Scalar > axis_foot) |
template<typename MeshType > | |
void | computeMassProperties (const MeshType &mesh, typename MeshType::Scalar density, Vector3< typename MeshType::Scalar > ¢roid, Matrix3< typename MeshType::Scalar > &inertiaTensor, typename MeshType::Scalar &mass) |
Computes all mass properties (mass, centroid, inertia tensor at once). More... | |
template<typename DistanceObject , typename T , typename U > | |
walberla::optional< bool > | isIntersecting (const DistanceObject &distanceObject, const math::GenericAABB< T > &aabb, const U &maxError) |
template<typename DistanceObject , typename T , typename U > | |
walberla::optional< bool > | fullyCoversAABB (const DistanceObject &distanceObject, const math::GenericAABB< T > &aabb, const U &maxError) |
template<typename MeshType > | |
shared_ptr< MeshType > | convexHull (const Vector3< real_t > &points) |
template<typename MeshType > | |
shared_ptr< MeshType > | convexHull (const MeshType &mesh) |
template<typename MeshType > | |
void | getVertexHandles (const MeshType &mesh, const typename MeshType::FaceHandle fh, typename MeshType::VertexHandle &vh0, typename MeshType::VertexHandle &vh1, typename MeshType::VertexHandle &vh2) |
template<typename MeshType > | |
void | getVertexPositions (const MeshType &mesh, const typename MeshType::FaceHandle fh, typename MeshType::Point &v0, typename MeshType::Point &v1, typename MeshType::Point &v2) |
template<typename MeshType > | |
MeshType::VertexHandle | getVertexHandle (const MeshType &mesh, const typename MeshType::FaceHandle fh, const unsigned int vertexIdx) |
template<typename MeshType > | |
MeshType::HalfedgeHandle | getHalfedgeHandle (const MeshType &mesh, const typename MeshType::FaceHandle fh, const unsigned int fromVertexIdx, const unsigned int toVertexIdx) |
typedef OpenMesh::PolyMesh_ArrayKernelT<FloatTraits> walberla::mesh::FloatPolyMesh |
typedef OpenMesh::TriMesh_ArrayKernelT<FloatTraits> walberla::mesh::FloatTriangleMesh |
typedef OpenMesh::PolyMesh_ArrayKernelT<RealTraits> walberla::mesh::PolyMesh |
typedef OpenMesh::PolyMesh_ArrayKernelT<OpenMesh::Python::MeshTraits> walberla::mesh::PythonPolyMesh |
typedef OpenMesh::TriMesh_ArrayKernelT<OpenMesh::Python::MeshTraits> walberla::mesh::PythonTriangleMesh |
typedef OpenMesh::TriMesh_ArrayKernelT<RealTraits> walberla::mesh::TriangleMesh |
math::GenericAABB< typename MeshType::Scalar > walberla::mesh::computeAABB | ( | const MeshType & | mesh | ) |
math::GenericAABB< typename MeshType::Scalar > walberla::mesh::computeAABBForFaces | ( | const MeshType & | mesh, |
InputIterator | beginFh, | ||
InputIterator | endFh | ||
) |
math::GenericAABB< typename MeshType::Scalar > walberla::mesh::computeAABBForVertices | ( | const MeshType & | mesh, |
InputIterator | beginVh, | ||
InputIterator | endVh | ||
) |
MeshType::Scalar walberla::mesh::computeBoundingSphereRadius | ( | const MeshType & | mesh, |
const typename MeshType::Point & | referencePoint | ||
) |
MeshType::Point walberla::mesh::computeCentroid | ( | const MeshType & | mesh | ) |
MeshType::Point walberla::mesh::computeCentroid | ( | const MeshType & | mesh, |
const typename MeshType::FaceHandle | fh | ||
) |
Matrix3< typename MeshType::Scalar > walberla::mesh::computeInertiaTensor | ( | const MeshType & | mesh | ) |
void walberla::mesh::computeMassProperties | ( | const MeshType & | mesh, |
typename MeshType::Scalar | density, | ||
Vector3< typename MeshType::Scalar > & | centroid, | ||
Matrix3< typename MeshType::Scalar > & | inertiaTensor, | ||
typename MeshType::Scalar & | mass | ||
) |
Computes all mass properties (mass, centroid, inertia tensor at once).
This function computes the mass, centroid and the inertia tensor relative to the calculated centroid. Source: https://www.cs.upc.edu/~virtual/SGI/docs/3.%20Further%20Reading/Polyhedral%20Mass%20Properties%20Revisited.pdf
MeshType |
mesh | Triangular input mesh. |
density | Density of the mesh. |
centroid | Output centroid point. |
inertiaTensor | Output inertia matrix. |
mass | Output mass. |
MeshType::Scalar walberla::mesh::computeSurfaceArea | ( | const MeshType & | mesh | ) |
MeshType::Scalar walberla::mesh::computeVolume | ( | const MeshType & | mesh | ) |
void walberla::mesh::convertOpenMeshToWalberla | ( | const OpenMeshType & | omMesh, |
geometry::TriangleMesh & | wbMesh, | ||
bool | clear = false |
||
) |
Converts an OpenMesh to a geometry::TriangleMesh.
Only the basic topology is converted. Additional mesh attributes like normals are ignored.
MeshType | The type of the OpenMesh |
omMesh | The OpenMesh source mesh |
wbMesh | The waLBerla target mesh |
clear | If true, the waLBerla mesh is cleared before data from omMesh is added |
void walberla::mesh::convertWalberlaToOpenMesh | ( | const geometry::TriangleMesh & | wbMesh, |
OpenMeshType & | omMesh, | ||
bool | clear = false |
||
) |
Converts a geometry::TriangleMesh to an OpenMesh.
Only the basic topology is converted. Additional mesh attributes like normals are ignored.
MeshType | The type of the OpenMesh |
|
inline |
|
inline |
shared_ptr<StructuredBlockForest> walberla::mesh::createStructuredBlockStorageInsideMesh | ( | const shared_ptr< mesh::DistanceOctree< MeshType > > & | distanceOctree, |
const real_t | dx, | ||
const uint_t | targetNumRootBlocks | ||
) |
shared_ptr<StructuredBlockForest> walberla::mesh::createStructuredBlockStorageInsideMesh | ( | const shared_ptr< mesh::DistanceOctree< MeshType > > & | distanceOctree, |
const real_t | dx, | ||
const Vector3< uint_t > & | blockSize | ||
) |
shared_ptr<StructuredBlockForest> walberla::mesh::createStructuredBlockStorageOutsideMesh | ( | const AABB & | aabb, |
const shared_ptr< mesh::DistanceOctree< MeshType > > & | distanceOctree, | ||
const real_t | dx, | ||
const uint_t | targetNumRootBlocks | ||
) |
shared_ptr<StructuredBlockForest> walberla::mesh::createStructuredBlockStorageOutsideMesh | ( | const AABB & | aabb, |
const shared_ptr< mesh::DistanceOctree< MeshType > > & | distanceOctree, | ||
const real_t | dx, | ||
const Vector3< uint_t > & | blockSize | ||
) |
void walberla::mesh::findConnectedVertices | ( | const MeshType & | mesh, |
const typename MeshType::FaceHandle & | face, | ||
std::vector< typename MeshType::VertexHandle > & | outVertices | ||
) |
std::vector< typename MeshType::VertexHandle > walberla::mesh::findConnectedVertices | ( | const MeshType & | mesh, |
InputIterator | facesBegin, | ||
InputIterator | facesEnd | ||
) |
walberla::optional< bool > walberla::mesh::fullyCoversAABB | ( | const DistanceObject & | distanceObject, |
const math::GenericAABB< T > & | aabb, | ||
const T & | maxError | ||
) |
walberla::optional< bool > walberla::mesh::fullyCoversAABB | ( | const DistanceObject & | distanceObject, |
const math::GenericAABB< T > & | aabb, | ||
const U & | maxError | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |
walberla::optional< bool > walberla::mesh::intersectsSurface | ( | const DistanceObject & | distanceObject, |
const math::GenericAABB< T > & | aabb, | ||
const U & | maxError, | ||
const V & | surfaceDistance | ||
) |
walberla::optional< bool > walberla::mesh::isIntersecting | ( | const DistanceObject & | distanceObject, |
const math::GenericAABB< T > & | aabb, | ||
const T & | maxError | ||
) |
walberla::optional< bool > walberla::mesh::isIntersecting | ( | const DistanceObject & | distanceObject, |
const math::GenericAABB< T > & | aabb, | ||
const U & | maxError | ||
) |
ExcludeMeshExterior<DistanceObject> walberla::mesh::makeExcludeMeshExterior | ( | const shared_ptr< DistanceObject > & | distanceObject, |
const real_t | maxError | ||
) |
ExcludeMeshInterior<DistanceObject> walberla::mesh::makeExcludeMeshInterior | ( | const shared_ptr< DistanceObject > & | distanceObject, |
const real_t | maxError | ||
) |
ExcludeMeshInteriorRefinement<DistanceObject> walberla::mesh::makeExcludeMeshInteriorRefinement | ( | const shared_ptr< DistanceObject > & | distanceObject, |
const real_t | maxError | ||
) |
MeshWorkloadMemory< DistanceObject > walberla::mesh::makeMeshWorkloadMemory | ( | const shared_ptr< DistanceObject > & | distanceObject, |
const typename DistanceObject::Scalar | cellSize | ||
) |
MeshWorkloadMemory< DistanceObject > walberla::mesh::makeMeshWorkloadMemory | ( | const shared_ptr< DistanceObject > & | distanceObject, |
const Vector3< typename DistanceObject::Scalar > & | cellSize | ||
) |
|
inline |
|
inline |
MeshType::Point walberla::mesh::principalComponent | ( | const MeshType & | mesh, |
const uint_t | iterations = uint_t( 10 ) |
||
) |
MeshType::Point walberla::mesh::principalComponent | ( | const MeshType & | mesh, |
InputIterator | beginFh, | ||
InputIterator | endFh, | ||
const uint_t | iterations = uint_t(10) |
||
) |
void walberla::mesh::readAndBroadcast | ( | const std::string & | filename, |
MeshType & | mesh, | ||
bool | binaryFile = false |
||
) |
Loads an OpenMesh in parallel.
The mesh is read from disk by a single process and then broadcasted. This ensures a scalable load process that does not put to much pressure on the file system at large scale.
MeshType | The type of the OpenMesh |
filename | filename of the mesh to be loaded |
mesh | The mesh data structure to be written to |
void walberla::mesh::readFromFile | ( | const std::string & | filename, |
MeshType & | mesh, | ||
bool | binaryFile = false |
||
) |
Read a mesh from a file.
MeshType | The type of the OpenMesh |
filename | Filename of the mesh to be loaded |
mesh | The mesh data structure to be written to |
bool walberla::mesh::readFromStream | ( | std::istream & | inputStream, |
MeshType & | mesh, | ||
const std::string & | extension, | ||
bool | binaryFile = false |
||
) |
Reads a mesh from a generic input stream.
MeshType | The type of the OpenMesh |
inputStream | The input stream from which the mesh should be read |
mesh | The mesh data structure to be written to |
extension | The mesh file's extension |
void walberla::mesh::rotate | ( | MeshType & | mesh, |
Vector3< typename MeshType::Scalar > | axis, | ||
typename MeshType::Scalar | angle, | ||
Vector3< typename MeshType::scalar > | axis_foot | ||
) |
void walberla::mesh::rotate | ( | MeshType & | mesh, |
Vector3< typename MeshType::Scalar > | axis, | ||
typename MeshType::Scalar | angle, | ||
Vector3< typename MeshType::Scalar > | axis_foot | ||
) |
void walberla::mesh::scale | ( | MeshType & | mesh, |
const Vector3< typename MeshType::Scalar > & | scaleFactors | ||
) |
|
inline |
|
inline |
|
inline |
|
inline |