/** * @brief CutArc cut arc into two arcs. * @param length length first arc. * @param arc1 first arc. * @param arc2 second arc. * @return point cutting */ QPointF VArc::CutArc(const qreal &length, VArc &arc1, VArc &arc2) const { //Always need return two arcs, so we must correct wrong length. qreal len = 0; if (length < this->GetLength()*0.02) { len = this->GetLength()*0.02; } else if ( length > this->GetLength()*0.98) { len = this->GetLength()*0.98; } else { len = length; } qreal n = (len*180)/(M_PI*d->radius); QLineF line(GetCenter().toQPointF(), GetP1()); line.setAngle(line.angle()+n); arc1 = VArc (d->center, d->radius, d->formulaRadius, d->f1, d->formulaF1, line.angle(), QString().setNum(line.angle()), getIdObject(), getMode()); arc2 = VArc (d->center, d->radius, d->formulaRadius, line.angle(), QString().setNum(line.angle()), d->f2, d->formulaF2, getIdObject(), getMode()); return line.p2(); }
static void removeEvictedItensHashTable(THashTable* hashTable, unsigned int idPeer, void *vListDisposed){ TListObject *listDisposed = vListDisposed; TItemHashTable* item; TObject *disposed; TIdObject idVideo; item = createItemHashTable(); TIteratorListObject *it = createIteratorListObject(listDisposed); it->reset(it); disposed = it->current(it); while(disposed){ getIdObject(disposed, idVideo); // setItemHashTable(item, idPeer, NULL, idVideo, NULL); removeItemHashTable(hashTable, item); it->next(it); disposed = it->current(it); } item->dispose(item); it->ufree(it); }