25# ifndef __BITPIT_LEVELSET_COMPLEMENT_OBJECT_HPP__
26# define __BITPIT_LEVELSET_COMPLEMENT_OBJECT_HPP__
30# include "levelSetCommon.hpp"
31# include "levelSetProxyObject.hpp"
37template<
typename SourceLevelSetObject>
41 const SourceLevelSetObject * m_sourceObject;
46 void replaceSourceObject(
const SourceLevelSetObject *current,
const SourceLevelSetObject *updated)
override;
51 double _evalCellValue(
long id,
bool signedLevelSet)
const override;
52 std::array<double,3>
_evalCellGradient(
long id,
bool signedLevelSet)
const override;
54 short _evalSign(
const std::array<double,3> &point)
const override;
55 double _evalValue(
const std::array<double,3> &point,
bool signedLevelSet)
const override;
56 std::array<double,3>
_evalGradient(
const std::array<double,3> &point,
bool signedLevelSet)
const override;
59 bool empty()
const override;
63 const SourceLevelSetObject *
getReferenceObject(
const std::array<double, 3> &point)
const override;
70template<
typename SourceLevelSetObject>
Base class that allows to evaluate the complement of a LevelSetObjects.
std::array< double, 3 > _evalGradient(const std::array< double, 3 > &point, bool signedLevelSet) const override
const SourceLevelSetObject * getReferenceObject(const std::array< double, 3 > &point) const override
double _evalValue(const std::array< double, 3 > &point, bool signedLevelSet) const override
const SourceLevelSetObject * getCellReferenceObject(long id) const override
std::array< double, 3 > _evalCellGradient(long id, bool signedLevelSet) const override
virtual const SourceLevelSetObject * getSourceObject() const
short _evalCellSign(long id) const override
double _evalCellValue(long id, bool signedLevelSet) const override
void replaceSourceObject(const SourceLevelSetObject *current, const SourceLevelSetObject *updated) override
LevelSetComplementBaseObject(int id, const SourceLevelSetObject *source)
bool empty() const override
short _evalSign(const std::array< double, 3 > &point) const override
std::vector< const SourceLevelSetObject * > getSourceObjects() const override
void fillCellPropagatedSignCache() override
Class that allows to evaluate the complement of a LevelSetObjects.
Interface class for all objects with respect to whom the levelset function may be computed.
Interface class for all objects, which depend on other LevelSetObjects.