Program Listing for File BilinearFastBox.hpp

Return to documentation for file (include/lvr2/reconstruction/BilinearFastBox.hpp)

#ifndef _LVR2_RECONSTRUCTION_BILINEARFASTBOX_H_
#define _LVR2_RECONSTRUCTION_BILINEARFASTBOX_H_

#include "lvr2/reconstruction/FastBox.hpp"
#include "lvr2/reconstruction/PointsetSurface.hpp"

namespace lvr2
{

template<typename BaseVecT>
class BilinearFastBox : public FastBox<BaseVecT>
{
public:
    BilinearFastBox(BaseVecT center);
    virtual ~BilinearFastBox();

    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
    );

    void optimizePlanarFaces(BaseMesh<BaseVecT>& mesh, size_t kc);

    // the point set surface
    static PointsetSurfacePtr<BaseVecT> m_surface;


private:
    vector<FaceHandle> m_faces;
    int m_mcIndex;

};

template<typename BaseVecT>
struct BoxTraits<BilinearFastBox<BaseVecT>>
{
    static const string type;
};



} // namespace lvr2

#include "lvr2/reconstruction/BilinearFastBox.tcc"

#endif /* _LVR2_RECONSTRUCTION_BILINEARFASTBOX_H_ */