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

◆ 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 >
static Vector3<Scalar> walberla::geometry::ContainmentOctree< DistanceObjectT >::fromPoint ( const Point p)
inlinestatic

◆ fromScalar()

template<typename DistanceObjectT >
static 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 >
static Point walberla::geometry::ContainmentOctree< DistanceObjectT >::toPoint ( const Vector3< Scalar > &  p)
inlinestatic

◆ toScalar()

template<typename DistanceObjectT >
static 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: