Program Listing for File RegularTriangleSampling.h
↰ Return to documentation for file (SPlisHSPlasH/Utilities/RegularTriangleSampling.h)
#ifndef __RegularTriangleSampling_H__
#define __RegularTriangleSampling_H__
#include "../Common.h"
#include <vector>
namespace SPH
{
class RegularTriangleSampling
{
public:
RegularTriangleSampling();
static void sampleMesh(const unsigned int numVertices, const Vector3r *vertices, const unsigned int numFaces, const unsigned int *faces,
const Real maxDistance, std::vector<Vector3r> &samples);
private:
using Vector2ui = Eigen::Matrix<unsigned int, 2, 1, Eigen::DontAlign>;
static void appendVertexSamples(const unsigned int numVertices, const Vector3r * vertices, std::vector<Vector3r> &samples);
static void appendEdgeSamples(const Real d, const Vector3r * vertices, const std::vector<Vector2ui> & edges, std::vector<Vector3r> &samples, bool skipVertices = true);
static void appendFaceSamples(const Real d, const Vector3r * vertices, const unsigned int numFaces, const unsigned int * faces, std::vector<Vector3r> &samples, bool skipEdges = true);
static std::vector<Vector2ui> uniqueEdges(unsigned int numFaces, const unsigned int *faces);
};
}
#endif // __RegularTriangleSampling_H__