1 #ifndef TRIANGLE_SAMPLER_H 2 #define TRIANGLE_SAMPLER_H 4 #include <KrisLibrary/math3d/Triangle2D.h> 5 #include <KrisLibrary/math3d/Triangle3D.h> 7 #include <KrisLibrary/math/sample.h> 19 void Clear() { tris.clear(); areas.clear(); sumAreas.clear(); }
20 inline Real TotalArea()
const {
return sumAreas.back(); }
21 inline int SampleTri()
const {
return CumulativeWeightedSample(sumAreas); }
22 void SamplePointOnTri(
int tri,Vector2& pt)
const;
23 void SamplePoint(Vector2& pt)
const;
24 void SamplePoints(
int num,std::vector<Vector2>& pts)
const;
25 void SamplePoints(
int num,std::vector<int>& tris,std::vector<Vector2>& pts)
const;
27 std::vector<Triangle2D> tris;
28 std::vector<Real> areas;
29 std::vector<Real> sumAreas;
40 void Clear() { tris.clear(); areas.clear(); sumAreas.clear(); }
41 inline Real TotalArea()
const {
return sumAreas.back(); }
42 inline int SampleTri()
const {
return CumulativeWeightedSample(sumAreas); }
43 void SamplePointOnTri(
int tri,Vector3& pt)
const;
44 void SamplePoint(Vector3& pt)
const;
45 void SamplePoints(
int num,std::vector<Vector3>& pts)
const;
46 void SamplePoints(
int num,std::vector<int>& tris,std::vector<Vector3>& pts)
const;
48 std::vector<Triangle3D> tris;
49 std::vector<Real> areas;
50 std::vector<Real> sumAreas;
Samples points in a list of 3d triangles.
Definition: TriangleSampler.h:37
Samples points in a list of 2d triangles.
Definition: TriangleSampler.h:16