Fix QA arc test according to the new arc bounding box calculation.
Previously, the arc center was included in the bounding box, but this is incorrect. In many cases it is not in the bbox, and can be very far away.
This commit is contained in:
parent
5255a29bc0
commit
5707e6eac8
|
@ -158,7 +158,7 @@ const BOX2I SHAPE_ARC::BBox( int aClearance ) const
|
||||||
// Put start and end points in the point list
|
// Put start and end points in the point list
|
||||||
points.push_back( m_p0 );
|
points.push_back( m_p0 );
|
||||||
points.push_back( GetP1() );
|
points.push_back( GetP1() );
|
||||||
// points.push_back( m_pc ); the center point is not necessary in the BBox
|
// points.push_back( m_pc ); the center point is not necessary in the BBox
|
||||||
|
|
||||||
double start_angle = GetStartAngle();
|
double start_angle = GetStartAngle();
|
||||||
double end_angle = start_angle + GetCentralAngle();
|
double end_angle = start_angle + GetCentralAngle();
|
||||||
|
|
|
@ -87,6 +87,15 @@ static void CheckArcGeom( const SHAPE_ARC& aArc, const ARC_PROPERTIES& aProps )
|
||||||
/// All arcs are solid
|
/// All arcs are solid
|
||||||
BOOST_CHECK_EQUAL( aArc.IsSolid(), true );
|
BOOST_CHECK_EQUAL( aArc.IsSolid(), true );
|
||||||
|
|
||||||
|
/// Test bouding box
|
||||||
|
#if 0 // Only for debug.
|
||||||
|
printf("abox %d %d %d %d prp %d %d %d %d\n",
|
||||||
|
aArc.BBox().GetX(), aArc.BBox().GetY(), aArc.BBox().GetSize().x, aArc.BBox().GetSize().y,
|
||||||
|
aProps.m_bbox.GetX(),aProps.m_bbox.GetY(),
|
||||||
|
aProps.m_bbox.GetSize().x, aProps.m_bbox.GetSize().y );
|
||||||
|
fflush(0);
|
||||||
|
#endif
|
||||||
|
|
||||||
BOOST_CHECK_PREDICATE(
|
BOOST_CHECK_PREDICATE(
|
||||||
KI_TEST::IsBoxWithinTol<BOX2I>, ( aArc.BBox() )( aProps.m_bbox )( pos_tol ) );
|
KI_TEST::IsBoxWithinTol<BOX2I>, ( aArc.BBox() )( aProps.m_bbox )( pos_tol ) );
|
||||||
|
|
||||||
|
@ -199,7 +208,7 @@ static const std::vector<ARC_CPA_CASE> arc_cases = {
|
||||||
0,
|
0,
|
||||||
330,
|
330,
|
||||||
200,
|
200,
|
||||||
{ { 100, 100 }, { 200, 100 } },
|
{ { 273, 100 }, { 27, 100 } },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@ -222,7 +231,7 @@ static const std::vector<ARC_CPA_CASE> arc_cases = {
|
||||||
150,
|
150,
|
||||||
20000,
|
20000,
|
||||||
// bbox defined by: centre, top quadrant point, two endpoints
|
// bbox defined by: centre, top quadrant point, two endpoints
|
||||||
{ { -17320, 0 }, { 17320 * 2, 20000 } },
|
{ { -17320, 10000 }, { 17320 * 2, 10000 } },
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue