本文整理汇总了C++中HalfEdge::v_end方法的典型用法代码示例。如果您正苦于以下问题:C++ HalfEdge::v_end方法的具体用法?C++ HalfEdge::v_end怎么用?C++ HalfEdge::v_end使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HalfEdge
的用法示例。
在下文中一共展示了HalfEdge::v_end方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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: renderizaFaceExterna
void Render::renderizaFaceExterna(QPen *pen)
{
bool passa;
QVector<HalfEdge*> *list = &(interface.componentesFaceExterna);
QVector<HalfEdge*> temp;
HalfEdge *val;
HalfEdge::iterator it, jt;
QImage buffExt(buffer->width(), buffer->height(), QImage::Format_ARGB32_Premultiplied);
QPainter p;
p.begin(&buffExt);
p.setCompositionMode(QPainter::CompositionMode_Source);
p.fillRect(buffExt.rect(), pen->color());
p.end();
for(int i = 0; i < list->size(); ++i)
{
val = list->at(i);
passa = false;
for(it = val->v_begin(); it != val->v_end() ; ++it)
{
if(dentroFace(val->getTwin(),it->getDestino()->getPoint()))
{
passa = true;
break;
}
}
if( passa || componenteFaceUnica(&it))
renderizaComponente(val->getTwin(),&buffExt,QPen(Qt::transparent));
else
temp.push_back(val->getTwin());
}
for(int i = 0; i < temp.size(); ++i)
renderizaFace(temp[i],&buffExt,*pen);
p.begin(frontBuffer);
p.setCompositionMode(QPainter::CompositionMode_SourceOver);
p.drawImage(0,0, buffExt);
p.end();
}
示例3: 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);
}