本文整理汇总了C++中HalfEdge::getFace方法的典型用法代码示例。如果您正苦于以下问题:C++ HalfEdge::getFace方法的具体用法?C++ HalfEdge::getFace怎么用?C++ HalfEdge::getFace使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HalfEdge
的用法示例。
在下文中一共展示了HalfEdge::getFace方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getFaceNear
Face* Interface::getFaceNear(QPointF p)
{
HalfEdge *min = getArestaNear(p);
if(isExterna(min->getFace()))
min = min->getTwin();
if(dentroFace(min,p))
return min->getFace();
if(isExterna(min->getTwin()->getFace()) || dentroFace(min->getTwin(),p))
return min->getTwin()->getFace();
return NULL;
}
示例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);
}