Example #1
0
static void paintLinesToChildren( QGraphicsItem * qgi,
				  QPainter * painter,
				  QPen const & pen )
{
    typedef QList<QGraphicsItem*> QGIL;
    QGIL ch( qboard::childItems(qgi) );

    if( ch.isEmpty() ) return;
    QRectF prect( qgi->boundingRect() );
    QPointF mid( prect.left() + (prect.width() / 2),
		 prect.top() + (prect.height() / 2) );
    painter->save();
    for( QGIL::iterator it = ch.begin();
	 ch.end() != it; ++it )
    {
	QGraphicsItem * x = *it;
	QRectF xr( x->boundingRect() );
	QPointF xmid( xr.center() );
	//xmid = x->mapToParent( xmid );
	xmid = qgi->mapFromItem( x, xmid );
	painter->setPen( pen );
	painter->drawLine( QLineF( mid, xmid ) );
    }
    painter->restore();
}
Example #2
0
/// return the index of the MHM domain of a fracture
int TPZFracSet::MHMDomain(TPZFracture &frac)
{
    TPZManVector<REAL,3> x1(3), x2(3), xmid(3);
    fNodeVec[frac.fNodes[0]].GetCoordinates(x1);
    fNodeVec[frac.fNodes[1]].GetCoordinates(x2);
    std::pair<uint32_t,uint32_t> key0 = NodeKey(frac.fNodes[0]);
    std::pair<uint32_t,uint32_t> key1 = NodeKey(frac.fNodes[1]);
    if(key0.first == key1.first && key0.first%fMHMSpacingInt[0] == 0)
    {
        return -1;
    }
    if(key0.second == key1.second && key0.second%fMHMSpacingInt[1] == 0)
    {
        return -1;
    }
    for (int i=0; i<3; i++) {
        xmid[i] = (x1[i]+x2[i])*0.5-fLowLeft[i];
    }
    int numfacex = (fTopRight[0]-fLowLeft[0])/fMHMSpacing[0];

    int numx = (xmid[0])/fMHMSpacing[0];
    int numy = (xmid[1])/fMHMSpacing[1];
    return numy*numfacex+numx;
}