Program Listing for File TetraederBox.hpp
↰ Return to documentation for file (include/lvr2/reconstruction/TetraederBox.hpp)
#ifndef TETRAEDERBOX_H_
#define TETRAEDERBOX_H_
#include "FastBox.hpp"
namespace lvr2
{
template<typename BaseVecT>
class TetraederBox : public FastBox<BaseVecT>
{
public:
TetraederBox(BaseVecT center);
virtual ~TetraederBox();
virtual void getSurface(
BaseMesh<BaseVecT>& mesh,
vector<QueryPoint<BaseVecT>>& query_points,
uint &globalIndex
);
// virtual void getSurface(
// BaseMesh<BaseVecT>& mesh,
// vector<QueryPoint<BaseVecT>>& query_points,
// uint& globalIndex,
// BoundingBox<BaseVecT>& bb,
// vector<unsigned int>& duplicates,
// float comparePrecision
// );
private:
int calcPatternIndex(float distances[4])
{
int index = 0;
for(int i = 0; i < 4; i++)
{
if(distances[i] > 0) index |= (1 << i);
}
return index;
}
inline void interpolateIntersections(
int tetraNumber,
BaseVecT positions[4],
float distances[4]
);
OptionalVertexHandle m_intersections[19];
BaseVecT m_intersectionPositionsTetraeder[6];
};
} /* namespace lvr */
#include "TetraederBox.tcc"
#endif /* TETRAEDERBOX_H_ */