|
static math::MarsenneTwisterRNG & | SamplingRandomGenerator () |
|
static unsigned int | RandomInt (unsigned int i) |
|
static double | RandomDouble01 () |
|
static double | LnFac (int n) |
|
static int | PoissonRatioUniforms (double L) |
|
static int | Poisson (double lambda) |
|
static void | AllVertex (MeshType &m, VertexSampler &ps) |
|
static void | AllVertex (MeshType &m, VertexSampler &ps, bool onlySelected) |
|
static void | VertexWeighted (MeshType &m, VertexSampler &ps, int sampleNum) |
|
static void | VertexAreaUniform (MeshType &m, VertexSampler &ps, int sampleNum) |
|
static void | FillAndShuffleFacePointerVector (MeshType &m, std::vector< FacePointer > &faceVec) |
|
static void | FillAndShuffleVertexPointerVector (MeshType &m, std::vector< VertexPointer > &vertVec) |
|
static void | VertexUniform (MeshType &m, VertexSampler &ps, int sampleNum, bool onlySelected) |
| Sample the vertices in a uniform way. Each vertex has the same probabiltiy of being chosen.
|
|
static void | VertexUniform (MeshType &m, VertexSampler &ps, int sampleNum) |
|
static void | EdgeMeshUniform (MeshType &m, VertexSampler &ps, float radius, EdgeSamplingStrategy strategy=Floor) |
|
static void | VertexBorderCorner (MeshType &m, VertexSampler &ps, ScalarType angleRad) |
| Sample all the border corner vertices. More...
|
|
static void | VertexBorder (MeshType &m, VertexSampler &ps) |
| Sample all the border vertices. More...
|
|
static void | VertexCrease (MeshType &m, VertexSampler &ps) |
|
static void | FaceUniform (MeshType &m, VertexSampler &ps, int sampleNum) |
|
static void | AllFace (MeshType &m, VertexSampler &ps) |
|
static void | AllEdge (MeshType &m, VertexSampler &ps) |
|
static void | EdgeUniform (MeshType &m, VertexSampler &ps, int sampleNum, bool sampleFauxEdge=true) |
|
static CoordType | RandomBarycentric () |
|
static CoordType | RandomPointInTriangle (const FaceType &f) |
|
static void | StratifiedMontecarlo (MeshType &m, VertexSampler &ps, int sampleNum) |
|
static void | MontecarloPoisson (MeshType &m, VertexSampler &ps, int sampleNum) |
|
static void | EdgeMontecarlo (MeshType &m, VertexSampler &ps, int sampleNum, bool sampleAllEdges) |
|
static void | Montecarlo (MeshType &m, VertexSampler &ps, int sampleNum) |
|
static ScalarType | WeightedArea (FaceType &f, PerVertexFloatAttribute &wH) |
|
static void | WeightedMontecarlo (MeshType &m, VertexSampler &ps, int sampleNum, float variance) |
|
static int | SingleFaceSubdivision (int sampleNum, const CoordType &v0, const CoordType &v1, const CoordType &v2, VertexSampler &ps, FacePointer fp, bool randSample) |
|
static void | FaceSubdivision (MeshType &m, VertexSampler &ps, int sampleNum, bool randSample) |
| Compute a sampling of the surface where the points are regularly scattered over the face surface using a recursive longest-edge subdivision rule.
|
|
static int | SingleFaceSubdivisionOld (int sampleNum, const CoordType &v0, const CoordType &v1, const CoordType &v2, VertexSampler &ps, FacePointer fp, bool randSample) |
|
static void | FaceSubdivisionOld (MeshType &m, VertexSampler &ps, int sampleNum, bool randSample) |
| Compute a sampling of the surface where the points are regularly scattered over the face surface using a recursive longest-edge subdivision rule.
|
|
static int | SingleFaceSimilar (FacePointer fp, VertexSampler &ps, int n_samples_per_edge) |
|
static int | SingleFaceSimilarDual (FacePointer fp, VertexSampler &ps, int n_samples_per_edge, bool randomFlag) |
|
static void | FaceSimilar (MeshType &m, VertexSampler &ps, int sampleNum, bool dualFlag, bool randomFlag) |
|
static void | SingleFaceRaster (typename MeshType::FaceType &f, VertexSampler &ps, const Point2< typename MeshType::ScalarType > &v0, const Point2< typename MeshType::ScalarType > &v1, const Point2< typename MeshType::ScalarType > &v2, bool correctSafePointsBaryCoords=true) |
|
static bool | checkPoissonDisk (SampleSHT &sht, const Point3< ScalarType > &p, ScalarType radius) |
|
static VertexPointer | getSampleFromCell (Point3i &cell, MontecarloSHT &samplepool) |
|
static VertexPointer | getBestPrecomputedMontecarloSample (Point3i &cell, MontecarloSHT &samplepool, ScalarType diskRadius, const PoissonDiskParam &pp) |
|
static ScalarType | ComputePoissonDiskRadius (MeshType &origMesh, int sampleNum) |
| Estimate the radius r that you should give to get a certain number of samples in a Poissson Disk Distribution of radius r.
|
|
static int | ComputePoissonSampleNum (MeshType &origMesh, ScalarType diskRadius) |
|
static void | InitRadiusHandleFromQuality (MeshType &sampleMesh, PerVertexFloatAttribute &rH, ScalarType diskRadius, ScalarType radiusVariance, bool invert) |
|
static void | InitSpatialHashTable (MeshType &montecarloMesh, MontecarloSHT &montecarloSHT, ScalarType diskRadius, struct PoissonDiskParam pp=PoissonDiskParam()) |
|
static void | PoissonDiskPruningByNumber (VertexSampler &ps, MeshType &m, size_t sampleNum, ScalarType &diskRadius, PoissonDiskParam &pp, float tolerance=0.04, int maxIter=20) |
|
static void | PoissonDiskPruning (VertexSampler &ps, MeshType &montecarloMesh, ScalarType diskRadius, PoissonDiskParam &pp) |
|
static void | HierarchicalPoissonDisk (MeshType &origMesh, VertexSampler &ps, MeshType &montecarloMesh, ScalarType diskRadius, const struct PoissonDiskParam pp=PoissonDiskParam()) |
|
static void | Texture (MeshType &m, VertexSampler &ps, int textureWidth, int textureHeight, bool correctSafePointsBaryCoords=true) |
|
static void | RegularRecursiveOffset (MeshType &m, std::vector< CoordType > &pvec, ScalarType offset, float minDiag) |
|
static void | SubdivideAndSample (MeshType &m, std::vector< CoordType > &pvec, const Box3< ScalarType > bb, RRParam &rrp, float curDiag) |
|
template<class MeshType, class VertexSampler = TrivialSampler< MeshType>>
class vcg::tri::SurfaceSampling< MeshType, VertexSampler >
Main Class of the Sampling framework.
This class allows you to perform various kind of random/procedural point sampling over a triangulated surface. The class is templated over the PointSampler object that allows to customize the use of the generated samples.