waLBerla 7.3
Loading...
Searching...
No Matches
walberla::geometry::ContainmentOctree< DistanceObjectT > Class Template Reference

#include <ContainmentOctree.h>

Public Types

using Scalar = typename DistanceObjectT::Scalar
using Point = typename DistanceObjectT::Point
using AABB = math::GenericAABB<Scalar>
using KahanAccumulator = math::KahanAccumulator<Scalar>
using DistanceObject = DistanceObjectT
using Node = containment_octree::Node<ContainmentOctree>
using InsideLeafNode = containment_octree::InsideLeafNode<ContainmentOctree>
using OutsideLeafNode = containment_octree::OutsideLeafNode<ContainmentOctree>
using IndeterminateLeafNode = containment_octree::IndeterminateLeafNode<ContainmentOctree>
using BranchNode = containment_octree::BranchNode<ContainmentOctree>

Public Member Functions

 ContainmentOctree (const shared_ptr< const DistanceObject > &distanceObject, const Scalar epsilon=Scalar(0), const uint_t maxDepth=6u, const Scalar minAABBVolume=Scalar(0))
 ContainmentOctree (const shared_ptr< const DistanceObject > &distanceObject, const AABB &aabb, const Scalar epsilon=Scalar(0), const uint_t maxDepth=6u, const Scalar minAABBVolume=Scalar(0))
bool contains (const Point &p) const
Scalar sqSignedDistance (const Point &p) const
uint_t height () const
uint_t numNodes () const
void numNodes (uint_t &numInside, uint_t &numOutside, uint_t &numIndeterminate, uint_t &numBranch) const
void volumes (Scalar &insideVolume, Scalar &outsideVolume, Scalar &indeterminateVolume) const
size_t memory () const
const DistanceObjectT & getDistanceObject () const
AABB getAABB () const
void writeVTKOutput (const std::string &filestem) const

Static Public Member Functions

static Point toPoint (const Vector3< Scalar > &p)
static Vector3< ScalarfromPoint (const Point &p)
static Scalar toScalar (const real_t &x)
static real_t fromScalar (const Scalar &x)

Protected Attributes

shared_ptr< const NoderootNode_
shared_ptr< const DistanceObjectT > distanceObject_
AABB aabb_

Private Member Functions

void init (Scalar epsilon, const uint_t maxDepth, const Scalar minBoxVolume)

Member Typedef Documentation

◆ AABB

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::AABB = math::GenericAABB<Scalar>

◆ BranchNode

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::BranchNode = containment_octree::BranchNode<ContainmentOctree>

◆ DistanceObject

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::DistanceObject = DistanceObjectT

◆ IndeterminateLeafNode

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::IndeterminateLeafNode = containment_octree::IndeterminateLeafNode<ContainmentOctree>

◆ InsideLeafNode

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::InsideLeafNode = containment_octree::InsideLeafNode<ContainmentOctree>

◆ KahanAccumulator

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::KahanAccumulator = math::KahanAccumulator<Scalar>

◆ Node

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::Node = containment_octree::Node<ContainmentOctree>

◆ OutsideLeafNode

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::OutsideLeafNode = containment_octree::OutsideLeafNode<ContainmentOctree>

◆ Point

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::Point = typename DistanceObjectT::Point

◆ Scalar

template<typename DistanceObjectT>
using walberla::geometry::ContainmentOctree< DistanceObjectT >::Scalar = typename DistanceObjectT::Scalar

Constructor & Destructor Documentation

◆ ContainmentOctree() [1/2]

template<typename DistanceObjectT>
walberla::geometry::ContainmentOctree< DistanceObjectT >::ContainmentOctree ( const shared_ptr< const DistanceObject > & distanceObject,
const Scalar epsilon = Scalar(0),
const uint_t maxDepth = 6u,
const Scalar minAABBVolume = Scalar(0) )
inline

◆ ContainmentOctree() [2/2]

template<typename DistanceObjectT>
walberla::geometry::ContainmentOctree< DistanceObjectT >::ContainmentOctree ( const shared_ptr< const DistanceObject > & distanceObject,
const AABB & aabb,
const Scalar epsilon = Scalar(0),
const uint_t maxDepth = 6u,
const Scalar minAABBVolume = Scalar(0) )
inline

Member Function Documentation

◆ contains()

template<typename DistanceObjectT>
bool walberla::geometry::ContainmentOctree< DistanceObjectT >::contains ( const Point & p) const
inline

◆ fromPoint()

template<typename DistanceObjectT>
Vector3< Scalar > walberla::geometry::ContainmentOctree< DistanceObjectT >::fromPoint ( const Point & p)
inlinestatic

◆ fromScalar()

template<typename DistanceObjectT>
real_t walberla::geometry::ContainmentOctree< DistanceObjectT >::fromScalar ( const Scalar & x)
inlinestatic

◆ getAABB()

template<typename DistanceObjectT>
AABB walberla::geometry::ContainmentOctree< DistanceObjectT >::getAABB ( ) const
inline

◆ getDistanceObject()

template<typename DistanceObjectT>
const DistanceObjectT & walberla::geometry::ContainmentOctree< DistanceObjectT >::getDistanceObject ( ) const
inline

◆ height()

template<typename DistanceObjectT>
uint_t walberla::geometry::ContainmentOctree< DistanceObjectT >::height ( ) const
inline

◆ init()

template<typename DistanceObjectT>
void walberla::geometry::ContainmentOctree< DistanceObjectT >::init ( Scalar epsilon,
const uint_t maxDepth,
const Scalar minBoxVolume )
inlineprivate

◆ memory()

template<typename DistanceObjectT>
size_t walberla::geometry::ContainmentOctree< DistanceObjectT >::memory ( ) const

◆ numNodes() [1/2]

template<typename DistanceObjectT>
uint_t walberla::geometry::ContainmentOctree< DistanceObjectT >::numNodes ( ) const
inline

◆ numNodes() [2/2]

template<typename DistanceObjectT>
void walberla::geometry::ContainmentOctree< DistanceObjectT >::numNodes ( uint_t & numInside,
uint_t & numOutside,
uint_t & numIndeterminate,
uint_t & numBranch ) const

◆ sqSignedDistance()

template<typename DistanceObjectT>
Scalar walberla::geometry::ContainmentOctree< DistanceObjectT >::sqSignedDistance ( const Point & p) const
inline

◆ toPoint()

template<typename DistanceObjectT>
Point walberla::geometry::ContainmentOctree< DistanceObjectT >::toPoint ( const Vector3< Scalar > & p)
inlinestatic

◆ toScalar()

template<typename DistanceObjectT>
Scalar walberla::geometry::ContainmentOctree< DistanceObjectT >::toScalar ( const real_t & x)
inlinestatic

◆ volumes()

template<typename DistanceObjectT>
void walberla::geometry::ContainmentOctree< DistanceObjectT >::volumes ( Scalar & insideVolume,
Scalar & outsideVolume,
Scalar & indeterminateVolume ) const

◆ writeVTKOutput()

template<typename DistanceObjectT>
void walberla::geometry::ContainmentOctree< DistanceObjectT >::writeVTKOutput ( const std::string & filestem) const
inline

Member Data Documentation

◆ aabb_

template<typename DistanceObjectT>
AABB walberla::geometry::ContainmentOctree< DistanceObjectT >::aabb_
protected

◆ distanceObject_

template<typename DistanceObjectT>
shared_ptr<const DistanceObjectT> walberla::geometry::ContainmentOctree< DistanceObjectT >::distanceObject_
protected

◆ rootNode_

template<typename DistanceObjectT>
shared_ptr<const Node > walberla::geometry::ContainmentOctree< DistanceObjectT >::rootNode_
protected

The documentation for this class was generated from the following file:
  • /builds/administration/walberla-website/walberla/src/geometry/containment_octree/ContainmentOctree.h