Program Listing for File SDFFunctions.h

Return to documentation for file (SPlisHSPlasH/Utilities/SDFFunctions.h)

#ifndef SDFFunctions_H
#define SDFFunctions_H

#include "../Common.h"
#include "Discregrid/All"

namespace Utilities
{
    class SDFFunctions
    {
    public:
        static Discregrid::CubicLagrangeDiscreteGrid* generateSDF(const unsigned int numVertices,
            const Vector3r *vertices, const unsigned int numFaces, const unsigned int *faces,
            const AlignedBox3r &bbox, const std::array<unsigned int, 3> &resolution, const bool invert=false);

        static AlignedBox3r computeBoundingBox(const unsigned int numVertices, const Vector3r *vertices);

        static double distance(Discregrid::CubicLagrangeDiscreteGrid* sdf, const Vector3r &x,
            const Real thickness, Vector3r &normal, Vector3r &nextSurfacePoint);

        static double distance(Discregrid::CubicLagrangeDiscreteGrid* sdf,
            const Vector3r &x, const Real thickness);

    };
}

#endif // SDFFunctions_H