Beispiel #1
0
AABB_2r::AABB_2r(const PointSet_3r &pointset) {
    rational minx, miny, maxx, maxy;
    minx = maxx = pointset.points()[0]->x();
    miny = maxy = pointset.points()[0]->y();

    for (auto point : pointset.points()) {
        minx = std::min(point->x(), minx);
        miny = std::min(point->y(), miny);
        maxx = std::max(point->x(), maxx);
        maxy = std::max(point->y(), maxy);
    }

    min_.set_x(minx);
    min_.set_y(miny);
    max_.set_x(maxx);
    max_.set_y(maxy);
}
Beispiel #2
0
RegionalTerrain_3r DelaunayTerrain(const PointSet_3r& samples,
                                   IGeometryObserver* obs) {
    RegionalTerrain_3r terrain;
    terrain.AddObserver(obs);

    terrain.Initialize(AABB_2r(samples));

    for (auto sample : samples.points()) {
        terrain.AddSample(*sample);
    }

    return terrain;
}