本文整理汇总了C++中SmallPtrSet::Next方法的典型用法代码示例。如果您正苦于以下问题:C++ SmallPtrSet::Next方法的具体用法?C++ SmallPtrSet::Next怎么用?C++ SmallPtrSet::Next使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SmallPtrSet
的用法示例。
在下文中一共展示了SmallPtrSet::Next方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: normalFlips
//.........这里部分代码省略.........
}
if( !result )
{
normalize3D ((IV3D*)&u);
subtract3D ((IV3D*)&v3->v, (IV3D*)&v1->v, (IV3D*)&v);
if( isZero(&v) )
{
if(cost < NORMAL_FLIP_COST)
cost = NORMAL_FLIP_COST;
result = TRUE;
}
}
if( !result )
{
normalize3D ((IV3D*)&v);
crossprod ((IV3D*)&u, (IV3D*)&v, &oldNormal);
if( isZero(&oldNormal) )
{
if(cost < NORMAL_FLIP_COST)
cost = NORMAL_FLIP_COST;
result = TRUE;
}
}
if( !result )
normalize3D (&oldNormal);
// Recompute the normal:
if( !result )
{
// Install the keep vertex into this temp version of the adjusted face:
if (v1 == removeVertex) v1 = keepVertex;
if (v2 == removeVertex) v2 = keepVertex;
if (v3 == removeVertex) v3 = keepVertex;
subtract3D ((IV3D*)&v2->v, (IV3D*)&v1->v, (IV3D*)&u);
if( isZero(&u) )
{
if(cost < NORMAL_FLIP_COST)
cost = NORMAL_FLIP_COST;
result = TRUE;
}
}
if( !result )
{
normalize3D ((IV3D*)&u);
subtract3D ((IV3D*)&v3->v, (IV3D*)&v1->v, (IV3D*)&v);
if( isZero(&v) )
{
if(cost < NORMAL_FLIP_COST)
cost = NORMAL_FLIP_COST;
result = TRUE;
}
}
if( !result )
{
normalize3D ((IV3D*)&v);
crossprod ((IV3D*)&u, (IV3D*)&v, (IV3D*)&newNormal);
if( isZero(&newNormal) )
{
if(cost < NORMAL_FLIP_COST)
cost = NORMAL_FLIP_COST;
result = TRUE;
}
}
if( !result )
{
normalize3D ((IV3D*)&newNormal);
dot = dotProduct3D ((IV3D*)&oldNormal, (IV3D*)&newNormal);
// Did the normal flip?:
if (dot < cosMaxNormalChange)
{
// Mark it flipped:
if(cost < NORMAL_FLIP_COST)
cost = NORMAL_FLIP_COST;
result = TRUE;
}
}
// test
if( !result )
{
if(dot < worstDot)
worstDot = dot;
face = (Face*)updatedFaces.Next(SetCtx);
}
}
if(worstDot < dotThresh && !result)
{
smallNormalChange = FALSE;
}
return result;
}