| 42 | } |
| 43 | |
| 44 | PointD GetRandomPointInsideTriangle(TriangleD const & t) |
| 45 | { |
| 46 | size_t constexpr kDistribMax = 1000; |
| 47 | |
| 48 | auto const seed = static_cast<uint32_t>(std::chrono::system_clock::now().time_since_epoch().count()); |
| 49 | std::default_random_engine engine{seed}; |
| 50 | std::uniform_int_distribution<size_t> distrib{0, kDistribMax}; |
| 51 | double const r1 = sqrt(static_cast<double>(distrib(engine)) / kDistribMax); |
| 52 | double const r2 = static_cast<double>(distrib(engine)) / kDistribMax; |
| 53 | return t.m_points[0] * (1.0 - r1) + t.m_points[1] * r1 * (1.0 - r2) + t.m_points[2] * r2 * r1; |
| 54 | } |
| 55 | |
| 56 | PointD GetRandomPointInsideTriangles(std::vector<TriangleD> const & v) |
| 57 | { |
no test coverage detected