本文整理汇总了C++中Box2d::SquareDist方法的典型用法代码示例。如果您正苦于以下问题:C++ Box2d::SquareDist方法的具体用法?C++ Box2d::SquareDist怎么用?C++ Box2d::SquareDist使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Box2d
的用法示例。
在下文中一共展示了Box2d::SquareDist方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: ElMin
template <class Type> REAL BoxFreemanCompil<Type>::D2BoxSeg(const Box2d<Type> & b,const SegComp & s)
{
if (s.p0() == s.p1())
return b.SquareDist(s.p0());
INT c1 = b.freeman_pos (s.p0());
INT c2 = b.freeman_pos (s.p1());
switch ( TAB_CONF_CPLE_FREEM[c1][c2])
{
case INTER_TOUJ : return 0.0;
case CFF_00 :
return ElMin(b.SquareDist(s.p0(),c1),b.SquareDist(s.p1(),c2));
case CFF_11 :
{
return s.square_dist_seg(PQ1(b,c1,c2));
}
case CFF_13 :
{
return ElMin
(
s.square_dist_seg(PQ1(b,c1,c2)),
s.square_dist_seg(PQ2(b,c1,c2))
);
}
case CFF_01 :
{
return ElMin3
(
b.SquareDist(s.p0(),c1),
b.SquareDist(s.p1(),c2),
s.square_dist_seg(PQ1(b,c1,c2))
);
}
case CFF_02 :
{
REAL ord1 = s.ordonnee(PQ1(b,c1,c2));
if (TAB_TRIGO_CF[c1][c2] )
return ( (ord1 > 0) ? ElSquare(ord1) : 0.0);
else
return ( (ord1 < 0) ? ElSquare(ord1) : 0.0);
}
case CFF_03 :
{
REAL ord1 = s.ordonnee(PQ1(b,c1,c2));
return (TAB_TRIGO_CF[c1][c2] == (ord1>0.0)) ?
ElSquare(ord1) :
0.0 ;
}
case CFF_15 :
{
REAL ord1 = s.ordonnee(PQ1(b,c1,c2));
REAL ord2 = s.ordonnee(PQ2(b,c1,c2));
return ((ord1 < 0) == (ord2 < 0)) ?
ElMin(ElSquare(ord1),ElSquare(ord2)) :
0.0 ;
}
default : ;
}
cout << "CODE " << c1 << " " << c2 << " " << TAB_CONF_CPLE_FREEM[c1][c2] << endl;
ELISE_ASSERT(false,"Dist Box/seg ??? ");
return 0;
}