I think you're doubling up on clearance when checking for track collisions with the board edge.
BOARD_CONNECTED_ITEM::GetClearance( BOARD_CONNECTED_ITEM* aItem ) factors in the clearance of *two* items: this and aItem. With both this and aItem equal to aRefSeg, I think it's doubling the clearance.
Since board edges don't have width or clearance (at present), I think you want to pass in nullptr.
I would NOT be inclined to put a separate checkbox in for this.
@Seth,
I think you're doubling up on clearance when checking for track collisions with the board edge.
BOARD_CONNECTED _ITEM:: GetClearance( BOARD_CONNECTED _ITEM* aItem ) factors in the clearance of *two* items: this and aItem. With both this and aItem equal to aRefSeg, I think it's doubling the clearance.
Since board edges don't have width or clearance (at present), I think you want to pass in nullptr.
I would NOT be inclined to put a separate checkbox in for this.