Formatting fixes and fix qa_kimath following rebase

This commit is contained in:
Roberto Fernandez Bautista 2021-01-10 13:04:21 +00:00 committed by Jon Evans
parent 19620cebe7
commit 48823c0723
6 changed files with 41 additions and 43 deletions

View File

@ -45,9 +45,9 @@ public:
/**
* Constructs this circle such that it is tangent to the given lines and passes through the
* given point. There are two possible solutions, controlled by aAlternateSolution.
*
*
* When aAlternateSolution is false, find the best solution that can be used to fillet both
* lines (i.e. choose the most likely quadrant and find the solution with smallest arc angle
* lines (i.e. choose the most likely quadrant and find the solution with smallest arc angle
* between the tangent points on the lines)
*
* @param aLineA is the first tangent line. Treated as an infinite line except for the purpose
@ -64,11 +64,11 @@ public:
/**
* Function NearestPoint()
*
* Computes the point on the circumference of the circle that is the closest to aP.
* Computes the point on the circumference of the circle that is the closest to aP.
*
* In other words: finds the intersection point of this circle and a line that passes through
* both this circle's center and aP.
*
*
* @param aP
* @return nearest point to aP
*/
@ -76,9 +76,9 @@ public:
/**
* Function Intersect()
*
*
* Computes the intersection points between this circle and aCircle.
*
*
* @param aCircle The other circle to intersect with this.
* @return std::vector containing:
* - 0 elements if the circles do not intersect
@ -89,9 +89,9 @@ public:
/**
* Function Intersect()
*
*
* Computes the intersection points between this circle and aLine.
*
*
* @param aLine The line to intersect with this circle (end points ignored)
* @return std::vector containing:
* - 0 elements if there is no intersection

View File

@ -120,9 +120,9 @@ double GetArcAngle( const VECTOR2I& aStart, const VECTOR2I& aMid, const VECTOR2I
/**
* Returns the middle point of an arc, half-way between aStart and aEnd. There are two possible
* solutions which can be found by toggling aMinArcAngle. The behaviour is undefined for
* solutions which can be found by toggling aMinArcAngle. The behaviour is undefined for
* semicircles (i.e. 180 degree arcs).
*
*
* @param aStart The starting point of the arc (for calculating the radius)
* @param aEnd The end point of the arc (for determining the arc angle)
* @param aCenter The center point of the arc
@ -130,7 +130,7 @@ double GetArcAngle( const VECTOR2I& aStart, const VECTOR2I& aMid, const VECTOR2I
* @return The middle point of the arc
*/
const VECTOR2I GetArcMid( const VECTOR2I& aStart, const VECTOR2I& aEnd, const VECTOR2I& aCenter,
bool aMinArcAngle = true );
bool aMinArcAngle = true );
/* Return the arc tangent of 0.1 degrees coord vector dx, dy
* between -1800 and 1800

View File

@ -269,7 +269,7 @@ std::vector<VECTOR2I> CIRCLE::Intersect( const SEG& aLine ) const
{
std::vector<VECTOR2I> retval;
//
//
// . * .
// * *
// -----1-------m-------2----
@ -287,7 +287,7 @@ std::vector<VECTOR2I> CIRCLE::Intersect( const SEG& aLine ) const
// to the radius.
//
// The distance M1 = M2 can be computed by pythagoras since O1 = O2 = Radius
//
//
// O1= O2 = sqrt( Radius^2 - OM^2)
//

View File

@ -303,9 +303,9 @@ int EDIT_TOOL::DragArcTrack( const TOOL_EVENT& aEvent )
bool restore_state = false;
VECTOR2I arcCenter = theArc->GetCenter();
SEG tanStart = SEG( arcCenter, theArc->GetStart() ).PerpendicularSeg( theArc->GetStart() );
SEG tanEnd = SEG( arcCenter, theArc->GetEnd() ).PerpendicularSeg( theArc->GetEnd() );
SEG tanStart = SEG( arcCenter, theArc->GetStart() ).PerpendicularSeg( theArc->GetStart() );
SEG tanEnd = SEG( arcCenter, theArc->GetEnd() ).PerpendicularSeg( theArc->GetEnd() );
if( !tanStart.ApproxParallel( tanEnd ) )
{
//Ensure the tangent segments are in the correct orientation
@ -316,7 +316,7 @@ int EDIT_TOOL::DragArcTrack( const TOOL_EVENT& aEvent )
tanEnd.B = theArc->GetEnd();
}
KICAD_T track_types[] = { PCB_PAD_T, PCB_VIA_T, PCB_TRACE_T, PCB_ARC_T, EOT };
KICAD_T track_types[] = { PCB_PAD_T, PCB_VIA_T, PCB_TRACE_T, PCB_ARC_T, EOT };
auto getUniqueConnectedTrack =
[&]( const VECTOR2I& aAnchor ) -> TRACK*
@ -340,7 +340,7 @@ int EDIT_TOOL::DragArcTrack( const TOOL_EVENT& aEvent )
retval->SetFlags( IS_NEW );
getView()->Add( retval );
}
return retval;
};
@ -348,7 +348,7 @@ int EDIT_TOOL::DragArcTrack( const TOOL_EVENT& aEvent )
TRACK* trackOnEnd = getUniqueConnectedTrack( theArc->GetEnd() );
// Make copies of items to be edited
ARC* theArcCopy = new ARC( *theArc );
ARC* theArcCopy = new ARC( *theArc );
TRACK* trackOnStartCopy = new TRACK( *trackOnStart );
TRACK* trackOnEndCopy = new TRACK( *trackOnEnd );
@ -365,8 +365,8 @@ int EDIT_TOOL::DragArcTrack( const TOOL_EVENT& aEvent )
}
OPT_VECTOR2I optInterectTan = tanStart.IntersectLines( tanEnd );
int tanStartSide = tanStart.Side( theArc->GetMid() );
int tanEndSide = tanEnd.Side( theArc->GetMid() );
int tanStartSide = tanStart.Side( theArc->GetMid() );
int tanEndSide = tanEnd.Side( theArc->GetMid() );
bool isStartTrackOnStartPt = ( VECTOR2I( theArc->GetStart() ) - tanStart.A ).EuclideanNorm()
< ( VECTOR2I( theArc->GetStart() ) - tanStart.B ).EuclideanNorm();
@ -375,10 +375,10 @@ int EDIT_TOOL::DragArcTrack( const TOOL_EVENT& aEvent )
< ( VECTOR2I( theArc->GetStart() ) - tanEnd.B ).EuclideanNorm();
// Calculate constraints
CIRCLE maxTangentCircle;
CIRCLE maxTangentCircle;
VECTOR2I startOther = ( isStartTrackOnStartPt ) ? tanStart.B : tanStart.A;
maxTangentCircle.ConstructFromTanTanPt( tanStart, tanEnd, startOther );
VECTOR2I maxTanPtStart = tanStart.LineProject( maxTangentCircle.Center );
VECTOR2I maxTanPtEnd = tanEnd.LineProject( maxTangentCircle.Center );
@ -478,7 +478,7 @@ int EDIT_TOOL::DragArcTrack( const TOOL_EVENT& aEvent )
CIRCLE circlehelper;
circlehelper.ConstructFromTanTanPt( tanStart, tanEnd, m_cursor );
VECTOR2I newCenter = circlehelper.Center;
VECTOR2I newCenter = circlehelper.Center;
VECTOR2I newStart = tanStart.LineProject( newCenter );
VECTOR2I newEnd = tanEnd.LineProject( newCenter );
VECTOR2I newMid = GetArcMid( newStart, newEnd, newCenter );
@ -497,7 +497,7 @@ int EDIT_TOOL::DragArcTrack( const TOOL_EVENT& aEvent )
trackOnEnd->SetStart( (wxPoint) newEnd );
else
trackOnEnd->SetEnd( (wxPoint) newEnd );
//Update view
getView()->Update( trackOnStart );
getView()->Update( trackOnEnd );
@ -522,8 +522,8 @@ int EDIT_TOOL::DragArcTrack( const TOOL_EVENT& aEvent )
}
// Ensure we only do one commit operation on each object
auto processTrack =
[&]( TRACK* aTrack, TRACK* aTrackCopy )
auto processTrack =
[&]( TRACK* aTrack, TRACK* aTrackCopy )
{
if( aTrack->IsNew() )
{

View File

@ -142,14 +142,14 @@ struct CIR_CIR_VECPT_CASE
// clang-format off
/**
* Test cases for #CIRCLE::Intersect( const CIRCLE& aCircle )
* Test cases for #CIRCLE::Intersect( const CIRCLE& aCircle )
*/
static const std::vector<CIR_CIR_VECPT_CASE> intersect_circle_cases = {
{
"two point aligned",
{ { 10, 10 }, 20 },
{ { 10, 45 }, 20 },
{
{
{ 0, 27 },
{ 21, 27 },
},
@ -158,7 +158,7 @@ static const std::vector<CIR_CIR_VECPT_CASE> intersect_circle_cases = {
"two point angled",
{ { 10, 10 }, 20 },
{ { 20, 20 }, 20 },
{
{
{ 2, 28 },
{ 28, 2 },
},
@ -167,7 +167,7 @@ static const std::vector<CIR_CIR_VECPT_CASE> intersect_circle_cases = {
"tangent aligned",
{ { 10, 10 }, 20 },
{ { 10, 50 }, 20 },
{
{
{ 10, 30 },
},
},
@ -175,7 +175,7 @@ static const std::vector<CIR_CIR_VECPT_CASE> intersect_circle_cases = {
"no intersection",
{ { 10, 10 }, 20 },
{ { 10, 51 }, 20 },
{
{
//no points
},
},
@ -218,14 +218,14 @@ struct SEG_SEG_VECPT_CASE
// clang-format off
/**
* Test cases for #CIRCLE::Intersect( const SEG& aSeg )
* Test cases for #CIRCLE::Intersect( const SEG& aSeg )
*/
static const std::vector<SEG_SEG_VECPT_CASE> intersect_line_cases = {
{
"two point aligned",
{ { 0, 0 }, 20 },
{ { 10, 45 }, {10, 40} },
{
{
{ 10, -17 },
{ 10, 17 },
},
@ -234,7 +234,7 @@ static const std::vector<SEG_SEG_VECPT_CASE> intersect_line_cases = {
"two point angled",
{ { 0, 0 }, 20 },
{ { -20, -40 }, {20, 40} },
{
{
{ 8, 17 },
{ -8, -17 },
},
@ -243,7 +243,7 @@ static const std::vector<SEG_SEG_VECPT_CASE> intersect_line_cases = {
"tangent",
{ { 0, 0 }, 20 },
{ { 20, 0 }, {20, 40} },
{
{
{ 20, 0 }
},
},
@ -251,7 +251,7 @@ static const std::vector<SEG_SEG_VECPT_CASE> intersect_line_cases = {
"no intersection",
{ { 0, 0 }, 20 },
{ { 25, 0 }, {25, 40} },
{
{
//no points
},
},
@ -286,7 +286,7 @@ struct CIR_SEG_VECPT_CASE
// clang-format off
/**
* Test cases for #CIRCLE::Intersect( const SEG& aSeg )
* Test cases for #CIRCLE::Intersect( const SEG& aSeg )
*/
static const std::vector<CIR_SEG_VECPT_CASE> construct_tan_tan_pt_cases = {
{
@ -301,8 +301,7 @@ static const std::vector<CIR_SEG_VECPT_CASE> construct_tan_tan_pt_cases = {
{ { 0, 0 }, { 0, 1000 } },
{ { 0, 0 }, { 1000, 0 } },
{ 200, 100 },
{ { 490, 490} , 490 }, // ammended to get the test to pass
//{ { 500, 500} , 500 }, // result from LibreCAD 2.2.0-rc2
{ { 500, 500} , 500 }, // result from LibreCAD 2.2.0-rc2
},
{
"45 degree segs, point on seg",
@ -316,8 +315,7 @@ static const std::vector<CIR_SEG_VECPT_CASE> construct_tan_tan_pt_cases = {
{ { 0, 0 }, { 1000000, 0 } },
{ { 0, 0 }, { 1000000, 1000000 } },
{ 200000, 100000 },
{ { 332434, 137698} , 137698 }, // ammended to get the test to pass
//{ { 332439, 137701} , 137701 }, // result from LibreCAD 2.2.0-rc2
{ { 332439, 137701} , 137701 }, // result from LibreCAD 2.2.0-rc2
},
{
"135 degree segs, point on seg",

View File

@ -690,7 +690,7 @@ BOOST_AUTO_TEST_CASE( SegCreatePerpendicular )
{
SEG perpendicular = c.m_seg.PerpendicularSeg( c.m_vec );
BOOST_CHECK_PREDICATE( SegPerpendicularCorrect, ( perpendicular )( c.m_seg )( true ) );
BOOST_CHECK_PREDICATE( SegPerpendicularCorrect, ( perpendicular )( c.m_seg )( true ) );
BOOST_CHECK_PREDICATE( SegVecDistanceCorrect, ( perpendicular )( c.m_vec )( 0 ) );
}
}