Esempio n. 1
0
    bool DelPoly() {
        if (poly_.size() == Settings::MinPolygons)
            return false;

        int idx = RangeRand(poly_.size());
        PolyIt it = poly_.begin();
        std::advance(it, idx);
        poly_.erase(it);
        return true;
    }
Esempio n. 2
0
void dtEndComplexShape() {
  if (currentComplex->getBase().getPointer() == 0) {
    Point *ptr = new Point[pointBuf.size()];
    copy(pointBuf.begin(), pointBuf.end(), ptr);
    currentComplex->setBase(ptr, true);
    pointBuf.erase(pointBuf.begin(), pointBuf.end());
  }
  currentComplex->finish(polyList.size(), &polyList[0]);
  polyList.erase(polyList.begin(), polyList.end());
  complexList.push_back(currentComplex);
  currentComplex = 0;
}
Esempio n. 3
0
    bool MovePoly() {
        int origpos = RangeRand(poly_.size());
        int newpos  = RangeRand(poly_.size());

        if (newpos == origpos)
            return false;

        PolyIt it = poly_.begin();
        std::advance(it, origpos);
        DnaPolygon p(*it);
        poly_.erase(it);
        it = poly_.begin();
        std::advance(it, newpos);
        poly_.insert(it, p);

        return true;
    }