本文整理汇总了C++中HalfEdge::f_end方法的典型用法代码示例。如果您正苦于以下问题:C++ HalfEdge::f_end方法的具体用法?C++ HalfEdge::f_end怎么用?C++ HalfEdge::f_end使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HalfEdge
的用法示例。
在下文中一共展示了HalfEdge::f_end方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: renderizaArestas
void Render::renderizaArestas()
{
QPainter buff(frontBuffer);
QPoint p;
HalfEdge *partida;
HalfEdge::iterator it;
buff.setPen(vizinhoScreen);
if(vsel != NULL)
partida = vsel->getEdge();
if(hsel != NULL)
partida = hsel;
if(fsel != NULL)
partida = fsel->getHalfEdge();
if(vsel != NULL || hsel != NULL)
{
for(it = partida->v_begin(); it != partida->v_end(); ++it)
{
buff.drawLine(transforma(it->getOrigem()->getPoint()), transforma(it->getDestino()->getPoint()));
}
if(hsel != NULL)
{
partida = partida->getTwin();
for(it = partida->v_begin(); it != partida->v_end(); ++it)
{
buff.drawLine(transforma(it->getOrigem()->getPoint()), transforma(it->getDestino()->getPoint()));
}
}else
buff.drawLine(transforma(partida->getOrigem()->getPoint()), transforma(partida->getDestino()->getPoint()));
}
QVector<HalfEdge *> *v;
if(fsel != NULL)
{
if(interface.isExterna(fsel))
v = &(interface.componentesFaceExterna);
else
{
v = new QVector<HalfEdge *>();
v->push_back(partida->getTwin());
}
for(int i = 0; i < v->size(); ++i)
{
partida = v->at(i)->getTwin();
for(it = partida->f_begin(); it != partida->f_end(); ++it)
{
buff.drawLine(transforma(it->getOrigem()->getPoint()), transforma(it->getDestino()->getPoint()));
}
buff.drawLine(transforma(partida->getOrigem()->getPoint()), transforma(partida->getDestino()->getPoint()));
}
if(!interface.isExterna(fsel))
delete v;
}
}
示例2: renderizaFaces
void Render::renderizaFaces()
{
HalfEdge *partida;
HalfEdge::iterator it;
bool renderizaExterna = false;
if(vsel != NULL)
partida = vsel->getEdge();
if(hsel != NULL)
partida = hsel;
if(fsel != NULL)
partida = fsel->getHalfEdge();
if(vsel != NULL)
{
if(interface.isExterna(partida->getFace()))
renderizaExterna = true;
else
renderizaFace(partida, frontBuffer,vizinhoScreen);
for(it = partida->v_begin(); it != partida->v_end(); ++it)
{
if(interface.isExterna(it->getFace()))
renderizaExterna = true;
else
renderizaFace(&it, frontBuffer,vizinhoScreen);
}
}
if(hsel != NULL)
{
if(interface.isExterna(partida->getFace()))
renderizaExterna = true;
else
renderizaFace(partida, frontBuffer,vizinhoScreen);
if(interface.isExterna(partida->getTwin()->getFace()))
renderizaExterna = true;
else
renderizaFace(partida->getTwin(), frontBuffer,vizinhoScreen);
}
QVector<HalfEdge *> *v;
QSet<Face*> f;
if(fsel != NULL)
{
if(interface.isExterna(fsel))
v = &(interface.componentesFaceExterna);
else
{
v = new QVector<HalfEdge *>();
v->push_back(partida->getTwin());
}
for(int i = 0; i < v->size(); ++i)
{
partida = v->at(i)->getTwin();
if(interface.isExterna(partida->getTwin()->getFace()))
renderizaExterna = true;
else
renderizaFace(partida->getTwin(), frontBuffer,vizinhoScreen);
for(it = partida->f_begin(); it != partida->f_end(); ++it)
{
if(interface.isExterna(it->getTwin()->getFace()))
renderizaExterna = true;
else
f.insert(it->getTwin()->getFace());
}
}
if(!interface.isExterna(fsel))
delete v;
QSet<Face*>::iterator jt;
for(jt = f.begin(); jt != f.end(); ++jt)
renderizaFace((*jt)->getHalfEdge(), frontBuffer,vizinhoScreen);
}
if(renderizaExterna)
renderizaFaceExterna(&vizinhoScreen);
}