KiCad PCB EDA Suite
Loading...
Searching...
No Matches
test_shape_arc.cpp File Reference
#include <qa_utils/wx_utils/unit_test_utils.h>
#include <boost/test/data/test_case.hpp>
#include <convert_basic_shapes_to_polygon.h>
#include <geometry/shape_arc.h>
#include <geometry/shape_circle.h>
#include <geometry/shape_line_chain.h>
#include <qa_utils/geometry/geometry.h>
#include <qa_utils/numeric.h>
#include "geom_test_utils.h"

Go to the source code of this file.

Classes

struct  ARC_PROPERTIES
 All properties of an arc (depending on how it's constructed, some of these might be the same as the constructor params) More...
 
struct  ARC_START_MID_END
 Info to set up an arc by start, mid and end points. More...
 
struct  ARC_SME_CASE
 
struct  ARC_CENTRE_PT_ANGLE
 Info to set up an arc by centre, start point and angle. More...
 
struct  ARC_CPA_CASE
 
struct  ARC_TAN_TAN_RADIUS
 Info to set up an arc by tangent to two segments and a radius. More...
 
struct  ARC_TTR_CASE
 
struct  ARC_SEC_CASE
 
struct  ARC_CICLE_COLLIDE_CASE
 
struct  ARC_PT_COLLIDE_CASE
 
struct  ARC_SEG_COLLIDE_CASE
 
struct  ARC_DATA_MM
 
struct  ARC_ARC_COLLIDE_CASE
 
struct  ARC_TO_POLYLINE_CASE
 

Functions

static void CheckArcGeom (const SHAPE_ARC &aArc, const ARC_PROPERTIES &aProps, const int aSynErrIU=1)
 Check a SHAPE_ARC against a given set of geometric properties.
 
static void CheckArc (const SHAPE_ARC &aArc, const ARC_PROPERTIES &aProps, const int aSynErrIU=1)
 Check an arcs geometry and other class functions.
 
 BOOST_AUTO_TEST_CASE (NullCtor)
 Check correct handling of filter strings (as used by WX)
 
 CheckArc (this_arc, c.m_properties)
 
this_arc ConstructFromStartEndCenter (start, end, center, cw)
 
 BOOST_CHECK_EQUAL (this_arc.GetArcMid(), c.m_expected_mid)
 
SHAPE_CIRCLE circle (c.m_circle_center, c.m_circle_radius)
 
 BOOST_TEST_CONTEXT ("Test Clearance")
 
 BOOST_TEST_CONTEXT ("Test Width")
 
 BOOST_TEST_CONTEXT ("Test Collide Point")
 
SHAPE_ARC arc2 (c.m_arc2.GenerateArc())
 
SHAPE_LINE_CHAIN arc1_slc (c.m_arc1.GenerateArc())
 
arc1_slc SetWidth (0)
 
SHAPE_LINE_CHAIN arc2_slc (c.m_arc2.GenerateArc())
 
 BOOST_CHECK_EQUAL (result_arc_to_arc, c.m_exp_result)
 
 BOOST_CHECK_EQUAL (result_arc_to_chain, c.m_exp_result)
 
 BOOST_CHECK_EQUAL (result_chain_to_arc, c.m_exp_result)
 
 BOOST_CHECK_EQUAL (result_chain_to_chain, c.m_exp_result)
 
 BOOST_AUTO_TEST_CASE (CollideArcToShapeLineChain)
 
 BOOST_AUTO_TEST_CASE (CollideArcToPolygonApproximation)
 
bool ArePolylineEndPointsNearCircle (const SHAPE_LINE_CHAIN &aPolyline, const VECTOR2I &aCentre, int aRad, int aTolerance)
 Predicate for checking a polyline has all the points on (near) a circle of given centre and radius.
 
bool ArePolylineMidPointsNearCircle (const SHAPE_LINE_CHAIN &aPolyline, const VECTOR2I &aCentre, int aRad, int aTolerance)
 Predicate for checking a polyline has all the segment mid points on (near) a circle of given centre and radius.
 
 BOOST_TEST_MESSAGE ("Polyline has "<< chain.PointCount()<< " points")
 
 BOOST_CHECK_EQUAL (chain.CPoint(0), c.m_geom.m_start_point)
 
 BOOST_CHECK_EQUAL (chain.CLastPoint(), this_arc.GetP1())
 
 BOOST_CHECK_PREDICATE (ArePolylineEndPointsNearCircle,(chain)(c.m_geom.m_center_point)(radius)(accuracy+epsilon))
 
 BOOST_CHECK_PREDICATE (ArePolylineMidPointsNearCircle,(chain)(c.m_geom.m_center_point)(radius)(accuracy+epsilon))
 

Variables

static const std::vector< ARC_SME_CASEarc_sme_cases
 
static const std::vector< ARC_CPA_CASEarc_cases
 
static const std::vector< ARC_TTR_CASEarc_ttr_cases
 
static const std::vector< ARC_SEC_CASEarc_sec_cases
 
VECTOR2I end = c.m_geom.m_end
 
VECTOR2I center = c.m_geom.m_center
 
bool cw = c.m_clockwise
 
SHAPE_ARC this_arc
 
static const std::vector< ARC_CICLE_COLLIDE_CASEarc_circle_collide_cases
 
static const std::vector< ARC_PT_COLLIDE_CASEarc_pt_collide_cases
 
static const std::vector< ARC_SEG_COLLIDE_CASEarc_seg_collide_cases
 
static const std::vector< ARC_ARC_COLLIDE_CASEarc_arc_collide_cases
 
int actual = 0
 
VECTOR2I location
 
SHAPEarc1_sh = &arc1
 
SHAPEarc2_sh = &arc2
 
SHAPEarc1_slc_sh = &arc1_slc
 
SHAPEarc2_slc_sh = &arc2_slc
 
bool result_arc_to_arc
 
int clearance = pcbIUScale.mmToIU( c.m_clearance ) + ( arc2.GetWidth() / 2 )
 
bool result_arc_to_chain
 
bool result_chain_to_arc
 
bool result_chain_to_chain
 
const std::vector< ARC_TO_POLYLINE_CASEArcToPolyline_cases
 
const int accuracy = 100
 
const int epsilon = 1
 
const SHAPE_LINE_CHAIN chain = this_arc.ConvertToPolyline( accuracy )
 
int radius = ( c.m_geom.m_center_point - c.m_geom.m_start_point ).EuclideanNorm()
 

Function Documentation

◆ arc1_slc()

SHAPE_LINE_CHAIN arc1_slc ( c.m_arc1. GenerateArc())

Referenced by SetWidth().

◆ arc2()

SHAPE_ARC arc2 ( c.m_arc2. GenerateArc())

◆ arc2_slc()

SHAPE_LINE_CHAIN arc2_slc ( c.m_arc2. GenerateArc())

References arc2_slc().

Referenced by arc2_slc().

◆ ArePolylineEndPointsNearCircle()

bool ArePolylineEndPointsNearCircle ( const SHAPE_LINE_CHAIN & aPolyline,
const VECTOR2I & aCentre,
int aRad,
int aTolerance )

Predicate for checking a polyline has all the points on (near) a circle of given centre and radius.

Parameters
aPolylinethe polyline to check
aCentrethe circle centre
aRadthe circle radius
aTolerancethe tolerance for the endpoint-centre distance
Returns
true if predicate met

Definition at line 1077 of file test_shape_arc.cpp.

References GEOM_TEST::ArePointsNearCircle(), SHAPE_LINE_CHAIN::CPoint(), and SHAPE_LINE_CHAIN::PointCount().

Referenced by BOOST_CHECK_PREDICATE().

◆ ArePolylineMidPointsNearCircle()

bool ArePolylineMidPointsNearCircle ( const SHAPE_LINE_CHAIN & aPolyline,
const VECTOR2I & aCentre,
int aRad,
int aTolerance )

Predicate for checking a polyline has all the segment mid points on (near) a circle of given centre and radius.

Parameters
aPolylinethe polyline to check
aCentrethe circle centre
aRadthe circle radius
aTolEndsthe tolerance for the midpoint-centre distance
Returns
true if predicate met

Definition at line 1100 of file test_shape_arc.cpp.

References GEOM_TEST::ArePointsNearCircle(), SHAPE_LINE_CHAIN::CPoint(), and SHAPE_LINE_CHAIN::PointCount().

Referenced by BOOST_CHECK_PREDICATE().

◆ BOOST_AUTO_TEST_CASE() [1/3]

◆ BOOST_AUTO_TEST_CASE() [2/3]

BOOST_AUTO_TEST_CASE ( CollideArcToShapeLineChain )

Definition at line 994 of file test_shape_arc.cpp.

References BOOST_CHECK_EQUAL(), SHAPE::Collide(), and SHAPE_ARC::Collide().

◆ BOOST_AUTO_TEST_CASE() [3/3]

BOOST_AUTO_TEST_CASE ( NullCtor )

Check correct handling of filter strings (as used by WX)

Definition at line 147 of file test_shape_arc.cpp.

References BOOST_CHECK_EQUAL(), and CheckArc().

◆ BOOST_CHECK_EQUAL() [1/7]

BOOST_CHECK_EQUAL ( chain. CLastPoint(),
this_arc. GetP1() )

References chain, and this_arc.

◆ BOOST_CHECK_EQUAL() [2/7]

BOOST_CHECK_EQUAL ( chain. CPoint0,
c.m_geom. m_start_point )

References chain.

◆ BOOST_CHECK_EQUAL() [3/7]

BOOST_CHECK_EQUAL ( result_arc_to_arc ,
c. m_exp_result )

References result_arc_to_arc.

◆ BOOST_CHECK_EQUAL() [4/7]

BOOST_CHECK_EQUAL ( result_arc_to_chain ,
c. m_exp_result )

References result_arc_to_chain.

◆ BOOST_CHECK_EQUAL() [5/7]

BOOST_CHECK_EQUAL ( result_chain_to_arc ,
c. m_exp_result )

References result_chain_to_arc.

◆ BOOST_CHECK_EQUAL() [6/7]

BOOST_CHECK_EQUAL ( result_chain_to_chain ,
c. m_exp_result )

References result_chain_to_chain.

◆ BOOST_CHECK_EQUAL() [7/7]

BOOST_CHECK_EQUAL ( this_arc. GetArcMid(),
c. m_expected_mid )

◆ BOOST_CHECK_PREDICATE() [1/2]

◆ BOOST_CHECK_PREDICATE() [2/2]

BOOST_CHECK_PREDICATE ( ArePolylineMidPointsNearCircle ,
(chain)(c.m_geom.m_center_point)(radius)(accuracy+epsilon)  )

◆ BOOST_TEST_CONTEXT() [1/3]

BOOST_TEST_CONTEXT ( "Test Clearance" )
Initial value:
{
SHAPE_ARC arc( c.m_geom.m_center_point, c.m_geom.m_start_point,
EDA_ANGLE( c.m_geom.m_center_angle, DEGREES_T ) )
@ DEGREES_T
Definition eda_angle.h:31

Definition at line 656 of file test_shape_arc.cpp.

References BOOST_CHECK_EQUAL(), and circle().

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), CheckArrayTransforms(), KI_TEST::CheckFpPad(), KI_TEST::CheckFpShape(), KI_TEST::CheckFpText(), KI_TEST::CheckFpZone(), KI_TEST::CheckShapePolySet(), TEST_SIM_LIBRARY_SPICE_FIXTURE::CompareToEmptyModel(), for(), IterateOverPositionsAndReferences(), testEnums(), TEST_NETLIST_EXPORTER_SPICE_FIXTURE::TestOpPoint(), TEST_NETLIST_EXPORTER_SPICE_FIXTURE::TestPoint(), testProtoFromKiCadObject(), and TEST_SIM_LIBRARY_SPICE_FIXTURE::TestTransistor().

◆ BOOST_TEST_CONTEXT() [2/3]

BOOST_TEST_CONTEXT ( "Test Collide Point" )

Definition at line 827 of file test_shape_arc.cpp.

References BOOST_CHECK_EQUAL().

◆ BOOST_TEST_CONTEXT() [3/3]

BOOST_TEST_CONTEXT ( "Test Width" )

Definition at line 664 of file test_shape_arc.cpp.

References BOOST_CHECK_EQUAL(), and circle().

◆ BOOST_TEST_MESSAGE()

BOOST_TEST_MESSAGE ( "Polyline has "<< chain.PointCount()<< " points" )

References chain.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_DATA_TEST_CASE_F(), BOOST_DATA_TEST_CASE_F(), BOOST_DATA_TEST_CASE_F(), BOOST_DATA_TEST_CASE_F(), BOOST_DATA_TEST_CASE_F(), BOOST_DATA_TEST_CASE_F(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), DRC_BASE_FIXTURE::createAndVerifyAdditionalUnconnectedExclusions(), DRC_BASE_FIXTURE::createAndVerifyInitialExclusionMarkers(), createTestCases(), KI_TEST::BOARD_DUMPER::DumpBoardToFile(), dumpObstacles(), KI_TEST::IsSexprOfType(), KI_TEST::IsSexprValueEqual(), KI_TEST::LoadAndTestBoardFile(), KI_TEST::LoadAndTestFootprintFile(), KI_TEST::LoadBoard(), DRC_BASE_FIXTURE::loadBoardAndVerifyInitialExclusions(), DRC_BASE_FIXTURE::reloadBoardAndVerifyExclusions(), DRC_BASE_FIXTURE::runDrcOnBoard(), DRC_BASE_FIXTURE::SaveBoardToFile(), KI_TEST::SexprIsListOfLength(), TableDataEqual(), testEvalExpr(), testProtoFromKiCadObject(), FileCleaner::~FileCleaner(), and TEST_NETLIST_EXPORTER_SPICE_FIXTURE::~TEST_NETLIST_EXPORTER_SPICE_FIXTURE().

◆ CheckArc() [1/2]

static void CheckArc ( const SHAPE_ARC & aArc,
const ARC_PROPERTIES & aProps,
const int aSynErrIU = 1 )
static

Check an arcs geometry and other class functions.

Parameters
aArcArc to test
aPropsProperties to test against
aSynErrIUPermitted error for synthetic points and dimensions (currently radius and center)

Should have identical geom props

Definition at line 126 of file test_shape_arc.cpp.

References BOOST_REQUIRE(), CheckArcGeom(), SHAPE_ARC::Clone(), and SH_ARC.

Referenced by BOOST_AUTO_TEST_CASE().

◆ CheckArc() [2/2]

CheckArc ( this_arc ,
c. m_properties )
Initial value:
{
c.m_geom.m_center_point,
c.m_geom.m_start_point,
EDA_ANGLE( c.m_geom.m_center_angle, DEGREES_T ),
c.m_width,
}
SHAPE_ARC this_arc

References this_arc.

◆ CheckArcGeom()

static void CheckArcGeom ( const SHAPE_ARC & aArc,
const ARC_PROPERTIES & aProps,
const int aSynErrIU = 1 )
static

◆ circle()

SHAPE_CIRCLE circle ( c. m_circle_center,
c. m_circle_radius )

Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddCircle(), GRAPHICS_IMPORTER_PCBNEW::AddCircle(), GRAPHICS_IMPORTER_SCH::AddCircle(), DXF_IMPORT_PLUGIN::addEllipse(), CREEPAGE_GRAPH::Addshape(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_TEST_CONTEXT(), BOOST_TEST_CONTEXT(), PNS::BuildHullForPrimitiveShape(), SHAPE_ARC::Collide(), SHAPE_POLY_SET::Collide(), PCB_GRID_HELPER::computeAnchors(), ComputeDogbone(), SCH_IO_LTSPICE_PARSER::CreateCircle(), SCH_IO_LTSPICE_PARSER::CreateCircle(), BOARD_ADAPTER::createPadWithMargin(), SCH_IO_LTSPICE_PARSER::CreateSymbol(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawCircle(), ROUTER_PREVIEW_ITEM::drawShape(), PCB_SHAPE::GetConnectionPoints(), HelperGeneratePowerPortGraphics(), HelperGeneratePowerPortGraphics(), PCB_POINT::HitTest(), SCH_IO_EAGLE::loadCircle(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadCircle(), FABMASTER::loadFootprints(), SCH_IO_EAGLE::loadSymbolCircle(), PNS::HOLE::MakeCircularHole(), DSN::SPECCTRA_DB::makeIMAGE(), DSN::SPECCTRA_DB::makePADSTACK(), STEP_PCB_MODEL::MakeShapeAsThickSegment(), DSN::SPECCTRA_DB::makeVIA(), DSN::SPECCTRA_DB::makeVia(), SHAPE_ARC::NearestPoints(), SHAPE_ARC::NearestPoints(), SHAPE_ARC::NearestPoints(), SCH_IO_ALTIUM::ParseArc(), SCH_IO_ALTIUM::ParseCircle(), SCH_IO_KICAD_SEXPR_PARSER::parseSchCircle(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSymbol(), SCH_IO_KICAD_SEXPR_PARSER::parseSymbolCircle(), SCH_EASYEDA_PARSER::ParseSymbolShapes(), CU_SHAPE_ARC::Paths(), OUTSET_ROUTINE::ProcessItem(), segmentIntersectsCircle(), SHAPE_LINE_CHAIN::SelfIntersectingWithArcs(), EDA_SHAPE::Serialize(), LTSPICE_SCHEMATIC::StructureBuilder(), LTSPICE_SCHEMATIC::SymbolBuilder(), PCB_DIMENSION_BASE::TransformShapeToPolygon(), PCB_TARGET::TransformShapeToPolygon(), and PCB_DIM_LEADER::updateGeometry().

◆ ConstructFromStartEndCenter()

this_arc ConstructFromStartEndCenter ( start ,
end ,
center ,
cw  )

References center, cw, end, and this_arc.

◆ SetWidth()

arc2_slc SetWidth ( 0 )

Variable Documentation

◆ accuracy

◆ actual

int actual = 0

Definition at line 961 of file test_shape_arc.cpp.

Referenced by BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), CHECK_COLLECTIONS_SAME_UNORDERED(), FOOTPRINT::CheckClippedSilk(), DRC_RTREE::CheckColliding(), SHAPE_COMPOUND::Collide(), SHAPE_POLY_SET::Collide(), collideShapes(), PNS::ITEM::collideSimple(), DIALOG_BOARD_STATISTICS::getDataFromPCB(), DRC_RTREE::QueryColliding(), DRC_TEST_PROVIDER_SILK_CLEARANCE::Run(), DRC_TEST_PROVIDER_TRACK_ANGLE::Run(), DRC_TEST_PROVIDER_TRACK_SEGMENT_LENGTH::Run(), DRC_TEST_PROVIDER_TRACK_WIDTH::Run(), DRC_TEST_PROVIDER_VIA_DIAMETER::Run(), DRC_TEST_PROVIDER_EDGE_CLEARANCE::testAgainstEdge(), DRC_INTERACTIVE_COURTYARD_CLEARANCE::testCourtyardClearances(), DRC_TEST_PROVIDER_COURTYARD_CLEARANCE::testCourtyardClearances(), DRC_TEST_PROVIDER_HOLE_TO_HOLE::testHoleAgainstHole(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem(), DRC_TEST_PROVIDER_SOLDER_MASK::testItemAgainstItems(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZone(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstZones(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testKnockoutTextAgainstZone(), DRC_TEST_PROVIDER_SOLDER_MASK::testMaskItemAgainstZones(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain(), DRC_TEST_PROVIDER_SOLDER_MASK::testSilkToMaskClearance(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testSingleLayerItemAgainstItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testZoneLayer(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones(), and PCB_CONTROL::UpdateMessagePanel().

◆ arc1_sh

SHAPE* arc1_sh = &arc1

Definition at line 964 of file test_shape_arc.cpp.

◆ arc1_slc_sh

SHAPE* arc1_slc_sh = &arc1_slc

Definition at line 966 of file test_shape_arc.cpp.

◆ arc2_sh

SHAPE* arc2_sh = &arc2

Definition at line 965 of file test_shape_arc.cpp.

◆ arc2_slc_sh

SHAPE* arc2_slc_sh = &arc2_slc

Definition at line 967 of file test_shape_arc.cpp.

◆ arc_arc_collide_cases

const std::vector<ARC_ARC_COLLIDE_CASE> arc_arc_collide_cases
static

Definition at line 870 of file test_shape_arc.cpp.

◆ arc_cases

const std::vector<ARC_CPA_CASE> arc_cases
static

Definition at line 292 of file test_shape_arc.cpp.

◆ arc_circle_collide_cases

const std::vector<ARC_CICLE_COLLIDE_CASE> arc_circle_collide_cases
static
Initial value:
= {
{ " Issue 20336, large arc", { { 183000000, 65710001}, {150496913, 147587363},{116291153, 66406583}}, 2000000 / 2, {116300000, 133100000}, 300000, true, 53319 }
}

Definition at line 645 of file test_shape_arc.cpp.

◆ arc_pt_collide_cases

const std::vector<ARC_PT_COLLIDE_CASE> arc_pt_collide_cases
static

Definition at line 688 of file test_shape_arc.cpp.

◆ arc_sec_cases

const std::vector<ARC_SEC_CASE> arc_sec_cases
static
Initial value:
= {
{ "180 deg, clockwise", { { 100, 0 }, { 0, 0 }, { 50, 0 } }, true, { 50, -50 } },
{ "180 deg, anticlockwise", { { 100, 0 }, { 0, 0 }, { 50, 0 } }, false, { 50, 50 } },
{ "180 deg flipped, clockwise", { { 0, 0 }, { 100, 0 }, { 50, 0 } }, true, { 50, 50 } },
{ "180 deg flipped, anticlockwise", { { 0, 0 }, { 100, 0 }, { 50, 0 } }, false, { 50, -50 } },
{ "90 deg, clockwise", { { -100, 0 }, { 0, 100 }, { 0, 0 } }, true, { -71, 71 } },
{ "90 deg, anticlockwise", { { -100, 0 }, { 0, 100 }, { 0, 0 } }, false, { 71, -71 } },
}

Definition at line 611 of file test_shape_arc.cpp.

◆ arc_seg_collide_cases

const std::vector<ARC_SEG_COLLIDE_CASE> arc_seg_collide_cases
static
Initial value:
= {
{ "0 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { 100, 0 }, { 50, 0 } }, true, 0, { 100, 0 } },
{ "90 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { 0, 100 }, { 0, 50 } }, true, 0, { 0, 100 } },
{ "180 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { -100, 0 }, { -50, 0 } }, true, 0, { -100, 0 } },
{ "270 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { 0, -100 }, { 0, -50 } }, true, 0, { 0, -100 } },
{ "45 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { 71, 71 }, { 35, 35 } }, true, 0, { 70, 70 } },
{ "-45 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { 71, -71 }, { 35, -35 } }, false, -1, { 0, 0 } },
{ "seg inside arc start", { { 0, 0 }, { 71, -71 }, 90.0 },
10, { { 90, 0 }, { -35, 0 } }, true, 10, { 100, 0 } },
{ "seg inside arc end", { { 0, 0 }, { 71, -71 }, 90.0 },
10, { { -35, 0 }, { 90, 0 } }, true, 10, { 100, 0 } },
{ "large diameter arc", { { 172367922, 82282076 }, { 162530000, 92120000 }, -45.0 },
433300, { { 162096732, 92331236 }, { 162096732, 78253268 } }, true, 433268, { 162530000, 92120000 } },
{ "upside down collide", { { 26250000, 16520000 }, { 28360000, 16520000 }, 90.0 },
0, { { 27545249, 18303444 }, { 27545249, 18114500 } }, true, 0, { 27545249, 18185662 } }
}

Definition at line 782 of file test_shape_arc.cpp.

◆ arc_sme_cases

const std::vector<ARC_SME_CASE> arc_sme_cases
static

Definition at line 190 of file test_shape_arc.cpp.

◆ arc_ttr_cases

const std::vector<ARC_TTR_CASE> arc_ttr_cases
static

Definition at line 475 of file test_shape_arc.cpp.

◆ ArcToPolyline_cases

const std::vector<ARC_TO_POLYLINE_CASE> ArcToPolyline_cases

Definition at line 1115 of file test_shape_arc.cpp.

◆ center

VECTOR2I center = c.m_geom.m_center

Definition at line 625 of file test_shape_arc.cpp.

Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddArc(), GRAPHICS_IMPORTER_PCBNEW::AddArc(), GRAPHICS_IMPORTER_SCH::AddArc(), DXF_IMPORT_PLUGIN::addArc(), DXF_IMPORT_PLUGIN::addCircle(), DXF_IMPORT_PLUGIN::addEllipse(), RENDER_3D_OPENGL::addObjectTriangles(), RENDER_3D_OPENGL::addObjectTriangles(), FEATURES_MANAGER::AddPadShape(), DXF_IMPORT_PLUGIN::addPoint(), FEATURES_MANAGER::AddShape(), approximateLineChainWithArcs(), AREGION6::AREGION6(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), ZONE_FILLER::buildThermalSpokes(), CalcArcCenter(), CircleCenterFrom3Points(), SHAPE_LINE_CHAIN::ClosestSegmentsFast(), SHAPE_ARC::Collide(), SHAPE_ARC::Collide(), PCB_GRID_HELPER::computeAnchors(), computeCenter(), SHAPE_ARC::ConstructFromStartEndAngle(), ConstructFromStartEndCenter(), ConvertArcCenter(), AM_PRIMITIVE::ConvertBasicShapeToPolygon(), ALTIUM_PCB::ConvertFills6ToBoardItem(), ALTIUM_PCB::ConvertFills6ToBoardItemOnLayer(), ALTIUM_PCB::ConvertFills6ToFootprintItem(), ALTIUM_PCB::ConvertFills6ToFootprintItemOnLayer(), AM_PRIMITIVE::ConvertShapeToPolygon(), SCH_IO_ALTIUM::CreateAliases(), PCB_IO_EASYEDAPRO_PARSER::createPAD(), BOARD_ADAPTER::createTrackWithMargin(), KIGFX::GERBVIEW_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::PREVIEW::ANGLE_ITEM::drawPreviewShape(), editArcEndpointKeepTangent(), SIM_PLOT_TAB::EnableCursor(), GBR_TO_PCB_EXPORTER::export_flashed_copper_item(), GBR_TO_PCB_EXPORTER::export_non_copper_item(), BOX2< VECTOR2I >::FarthestPointTo(), ZONE_FILLER::Fill(), fillArcGBRITEM(), fillArcPOLY(), EXCELLON_IMAGE::FinishRouteCommand(), GENCAD_EXPORTER::footprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), RENDER_3D_OPENGL::generateViasAndPads(), PCB_ARC::GetAngle(), SELECTION::GetCenter(), SHAPE_ARC::GetCentralAngle(), DIALOG_BOARD_STATISTICS::getDataFromPCB(), PCB_TEXTBOX::GetDrawPos(), SHAPE_ARC::GetEndAngle(), PCB_ARC::GetPosition(), PCB_ARC::GetRadius(), GRAPH_CONNECTION::GetShapes(), SHAPE_ARC::GetStartAngle(), PCB_ARC::HitTest(), DXF_IMPORT_PLUGIN::insertArc(), RENDER_3D_RAYTRACE_BASE::insertHole(), RENDER_3D_RAYTRACE_BASE::insertHole(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_EAGLE::loadCircle(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadCircle(), PCB_IO_EAGLE::loadPlain(), PCB_IO_EAGLE::loadPolygon(), SCH_IO_EAGLE::loadRectangle(), PCB_IO_EAGLE::loadSignals(), SCH_IO_EAGLE::loadSymbolCircle(), SCH_IO_EAGLE::loadSymbolRectangle(), SCH_IO_EAGLE::loadSymbolWire(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadText(), SCH_IO_EAGLE::loadWire(), CIRCLE_GEOM_SYNCER::OnCenterPointChange(), CIRCLE_GEOM_SYNCER::OnCenterRadiusChange(), RECTANGLE_GEOM_SYNCER::OnCenterSizeChange(), ARC_GEOM_SYNCER::OnCSAChange(), KIGFX::WX_VIEW_CONTROLS::onScroll(), PCB_POINT_EDITOR::OnSelectionChange(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packagePolygon(), PCB_IO_EAGLE::packageRectangle(), PCB_IO_EAGLE::packageWire(), COMMON_TOOLS::PanControl(), SCH_IO_ALTIUM::ParseArc(), PCB_IO_EASYEDAPRO_PARSER::ParseBoard(), SCH_IO_ALTIUM::ParseCircle(), PCB_IO_EASYEDAPRO_PARSER::ParseContour(), SCH_IO_ALTIUM::ParseImage(), SCH_IO_ALTIUM::ParsePieChart(), PCB_IO_EASYEDAPRO_PARSER::ParsePoly(), SCH_IO_ALTIUM::ParseRoundRectangle(), SCH_IO_KICAD_SEXPR_PARSER::parseSchCircle(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSymbol(), SCH_IO_KICAD_SEXPR_PARSER::parseSymbolArc(), SCH_IO_KICAD_SEXPR_PARSER::parseSymbolCircle(), SCH_EASYEDA_PARSER::ParseSymbolShapes(), PCB_IO_EASYEDA_PARSER::ParseToBoardItemContainer(), BE_SHAPE_POINT::Paths(), CU_SHAPE_CIRCLE::Paths(), SCH_SHAPE::Plot(), GERBER_PLOTTER::plotArc(), FABMASTER::processArc(), FABMASTER::processCircle(), processClosedShape(), Ref1CalcArcCenter(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::Run(), EDA_DRAW_FRAME::ScriptingConsoleEnableDisable(), segmentIntersectsArc(), SegmentIntersectsBoard(), segmentIntersectsCircle(), CONVERT_TOOL::SegmentToArc(), SHAPE_LINE_CHAIN::SelfIntersectingWithArcs(), SHAPE_ARC::SHAPE_ARC(), snapCorner(), STROKE_PARAMS::Stroke(), PLOTTER::ThickArc(), PNS::tightenSegment(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), CIRCLE_GEOM_SYNCER::updateCenterPoint(), CIRCLE_GEOM_SYNCER::updateCenterRadius(), ARC_GEOM_SYNCER::updateCSA(), PCB_DIM_CENTER::updateGeometry(), PCB_DIM_RADIAL::updateGeometry(), EDA_ARC_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::UpdateItem(), PAD_POINT_EDIT_BEHAVIOR::UpdateItem(), PCB_CONTROL::UpdateMessagePanel(), ARC_GEOM_SYNCER::Validate(), and RATSNEST_VIEW_ITEM::ViewDraw().

◆ chain

const SHAPE_LINE_CHAIN chain = this_arc.ConvertToPolyline( accuracy )

Definition at line 1167 of file test_shape_arc.cpp.

Referenced by SHAPE_LINE_CHAIN::Append(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_CHECK_EQUAL(), BOOST_CHECK_EQUAL(), BOOST_CHECK_PREDICATE(), BOOST_CHECK_PREDICATE(), BOOST_TEST_MESSAGE(), buildBoardBoundingBoxPoly(), BuildFootprintPolygonOutlines(), KI_TEST::BuildRectChain(), Collide(), ConvertImageToPolygons(), KIGEOM::ConvertToChain(), createConcavePolygon(), createSquare(), createTriangle(), doConvertOutlineToPolygon(), KIGFX::GERBVIEW_PAINTER::draw(), PCB_IO_KICAD_SEXPR::format(), PCB_TUNING_PATTERN::getOutline(), GetParentChain(), PCB_TUNING_PATTERN::initBaseLine(), SHAPE_LINE_CHAIN::Insert(), FABMASTER::loadFootprints(), FABMASTER::loadShapePolySet(), nearestPointsSingleShapes(), ZONE_CREATE_HELPER::OnComplete(), PCB_IO_KICAD_SEXPR_PARSER::parseGENERATOR(), EASYEDA_PARSER_BASE::ParseLineChains(), PCB_IO_EASYEDAPRO_PARSER::ParsePoly(), SCH_EASYEDA_PARSER::ParseSchematic(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_EASYEDA_PARSER::ParseSymbolShapes(), PCB_IO_EASYEDA_PARSER::ParseToBoardItemContainer(), PCB_IO_KICAD_SEXPR_PARSER::parseZONE(), OUTSET_ROUTINE::ProcessItem(), PCB_TUNING_PATTERN::recoverBaseline(), DRC_TEST_PROVIDER_CONNECTION_WIDTH::Run(), RN_NET::TRIANGULATOR_STATE::Triangulate(), and PCB_TUNING_PATTERN::ViewDraw().

◆ clearance

clearance = pcbIUScale.mmToIU( c.m_clearance ) + ( arc2.GetWidth() / 2 )

Definition at line 974 of file test_shape_arc.cpp.

Referenced by DRC_TEST_PROVIDER_SOLDER_MASK::addItemToRTrees(), BOOST_AUTO_TEST_CASE(), BOOST_FIXTURE_TEST_CASE(), PNS::DP_MEANDER_PLACER::CheckFit(), PNS::MEANDER_PLACER::CheckFit(), collideArc2Arc(), collideShapes(), PNS::ITEM::collideSimple(), IEC60664::ComputeClearanceDistance(), BOARD_ADAPTER::createPadWithMargin(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawVia(), DRC_ENGINE::EvalRules(), DSN::SPECCTRA_DB::exportNETCLASS(), DSN::SPECCTRA_DB::FromBOARD(), GenerateLayerPoly(), PNS::SHOVE::getClearance(), PAD::GetMsgPanelInfo(), PCB_TRACK::GetMsgPanelInfo(), PCB_VIA::GetMsgPanelInfo(), ZONE::GetMsgPanelInfo(), PIN_LAYOUT_CACHE::GetPinNameInfo(), PIN_LAYOUT_CACHE::GetPinNumberInfo(), BOARD_DESIGN_SETTINGS::GetSmallestClearanceValue(), BOARD_INSPECTION_TOOL::InspectClearance(), BOARD_INSPECTION_TOOL::InspectDRCError(), CADSTAR_PCB_ARCHIVE_LOADER::loadTemplates(), PCB_IO_KICAD_LEGACY::loadZONE_CONTAINER(), PNS::ROUTER::markViolations(), PNS::ROUTER::movePlacing(), PNS::NODE::NearestObstacle(), PNS::SHOVE::onCollidingVia(), PNS::SHOVE::onReverseCollidingVia(), GPCB_FPL_CACHE::parseFOOTPRINT(), ALTIUM_PCB::ParsePolygons6Data(), PNS::DIFF_PAIR_PLACER::propagateDpHeadForces(), PNS::VIA::PushoutForce(), PCB_TUNING_PATTERN::resetToBaseline(), PNS::LINE_PLACER::rhMarkObstacles(), PNS::SHOVE::shoveLineFromLoneVia(), PNS::SHOVE::ShoveObstacleLine(), PNS::WALKAROUND::singleStep(), DRC_INTERACTIVE_COURTYARD_CLEARANCE::testCourtyardClearances(), DRC_TEST_PROVIDER_COURTYARD_CLEARANCE::testCourtyardClearances(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstItem(), DRC_TEST_PROVIDER_SOLDER_MASK::testItemAgainstItems(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testItemAgainstZone(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testItemAgainstZones(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testKnockoutTextAgainstZone(), DRC_TEST_PROVIDER_SOLDER_MASK::testMaskItemAgainstZones(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testPadAgainstItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testShapeLineChain(), DRC_TEST_PROVIDER_SOLDER_MASK::testSilkToMaskClearance(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testSingleLayerItemAgainstItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testZoneLayer(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones(), FOOTPRINT::TransformPadsToPolySet(), PNS::ROUTER::updateView(), PANEL_SETUP_NETCLASSES::validateNetclassClearance(), PAD::ViewBBox(), and ZONE_DESC::ZONE_DESC().

◆ cw

◆ end

VECTOR2I end = c.m_geom.m_end

Definition at line 624 of file test_shape_arc.cpp.

Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddArc(), GRAPHICS_IMPORTER_PCBNEW::AddArc(), GRAPHICS_IMPORTER_SCH::AddArc(), GERBER_JOBFILE_WRITER::addJSONMaterialStackup(), SYMBOL_LIBS::AddLibrary(), DXF_IMPORT_PLUGIN::addLine(), RENDER_3D_OPENGL::addObjectTriangles(), CREEPAGE_GRAPH::Addshape(), EC_CONVERGING::Apply(), PDF_PLOTTER::Arc(), PS_PLOTTER::Arc(), SVG_PLOTTER::Arc(), SVG_PLOTTER::BezierCurve(), KIGFX::OPENGL_GAL::BitmapText(), PCB_IO_KICAD_LEGACY::biuParse(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BVH_PBRT::buildUpperSAH(), CalcArcCenter(), AR_AUTOPLACER::calculateKeepOutArea(), PANEL_SETUP_RULES::checkPlausibility(), BASE_SET::compare(), PCB_GRID_HELPER::computeAnchors(), KIGFX::OPENGL_GAL::computeBitmapTextSize(), computeCenter(), AR_MATRIX::ComputeMatrixSize(), AR_AUTOPLACER::computePlacementRatsnestCost(), TEARDROP_MANAGER::computeTeardropPolygon(), ConstructFromStartEndCenter(), STRING_ANY_MAP::contains(), GERBER_DRAW_ITEM::ConvertSegmentToPolygon(), AM_PRIMITIVE::ConvertShapeToPolygon(), SYMBOL_EDITOR_EDIT_TOOL::ConvertStackedPins(), GERBER_WRITER::createDrillFile(), base64::decode(), PCB_IO_KICAD_LEGACY::degParse(), KIGFX::CAIRO_GAL_BASE::DeleteGroup(), REFDES_TRACKER::Deserialize(), TOOL_MANAGER::dispatchInternal(), ALIGN_DISTRIBUTE_TOOL::doDistributeGaps(), KIGFX::DS_PAINTER::draw(), KIGFX::GERBVIEW_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::DS_PAINTER::DrawBorder(), D_CODE::DrawFlashedShape(), KIGFX::SCH_PAINTER::drawLine(), KIGFX::OPENGL_GAL::drawPolyline(), KIGFX::OPENGL_GAL::drawSegmentChain(), SVG_IMPORT_PLUGIN::DrawSplinePath(), EC_CONVERGING::EC_CONVERGING(), editArcMidKeepCenter(), base64::encode(), MULTIVECTOR< SCH_ITEM, SCH_SHAPE_T, SCH_PIN_T >::end(), MULTIVECTOR< SCH_ITEM, SCH_SHAPE_T, SCH_PIN_T >::end(), ensureDefaultProjectTemplate(), EXPRESSION_EVALUATOR::evaluateWithPartialErrorRecovery(), executeBenchMark(), EXPRESSION_EVALUATOR::ExtractExpressions(), fillArcPOLY(), TEARDROP_MANAGER::findAnchorPointsOnTrack(), PNS::NODE::FindJoint(), SYMBOL_LIBS::FindLibrary(), SYMBOL_LIBS::FindLibraryByFullFileName(), AUTOPLACER::fitFieldsBetweenWires(), CADSTAR_SCH_ARCHIVE_LOADER::fixUpLibraryPins(), PCB_VIA::FlashLayer(), DXF_PLOTTER::FlashPadRect(), FOOTPRINT::FootprintNeedsUpdate(), GENCAD_EXPORTER::footprintWriteShape(), GatherInterpolatedCubicBezierCurve(), DANGLING_END_ITEM_HELPER::get_lower_pos(), DANGLING_END_ITEM_HELPER::get_lower_type(), SCH_LABEL::GetBodyBoundingBox(), SCH_SHEET::GetBodyBoundingBox(), GERBER_DRAW_ITEM::GetBoundingBox(), SCH_FIELD::GetBoundingBox(), SCH_TEXT::GetBoundingBox(), BOX2< VECTOR2I >::GetBoundingBoxRotated(), SYMBOL_LIBS::GetCacheLibrary(), PCB_NET_INSPECTOR_PANEL::DATA_MODEL::GetChildren(), AUTOPLACER::getCollidingSides(), SCH_MOVE_TOOL::getConnectedDragItems(), GetDeltasForDistributeByGaps(), BOX2I_MINMAX::GetDiameter(), RN_NET::GetEdges(), SCH_LABEL_BASE::GetIntersheetRefs(), PCB_VIA::GetLayerSet(), KIFONT::FONT::getLinePositions(), PCB_DIMENSION_BASE::GetMsgPanelInfo(), SCH_SHEET_LIST::GetMultiUnitSymbols(), getPinLineEnd(), DIALOG_MIGRATE_BUSES::getProposedLabels(), GRCSegm(), hash_fp_item(), PCB_VIA::HasValidLayerPair(), PCB_NET_INSPECTOR_PANEL::highlightSelectedNets(), DS_DRAW_ITEM_RECT::HitTest(), GERBER_DRAW_ITEM::HitTest(), BVH_PBRT::HLBVHBuild(), FEATURES_MANAGER::InitFeatureList(), RENDER_3D_RAYTRACE_BASE::insertHole(), DXF_IMPORT_PLUGIN::insertLine(), DXF_IMPORT_PLUGIN::insertSpline(), InterceptsNegativeX(), InterceptsPositiveX(), PCB_VIA::IsOnLayer(), IsUTF8(), PNS::TOPOLOGY::LeadingRatLine(), CADSTAR_SCH_ARCHIVE_LOADER::loadNets(), PCB_IO_EAGLE::loadPlain(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadRect(), SCH_IO_EAGLE::loadRectangle(), PCB_IO_EAGLE::loadSignals(), SCH_IO_EAGLE::loadSymbolRectangle(), SCH_IO_EAGLE::loadSymbolWire(), SCH_IO_EAGLE::loadWire(), SCH_IO_KICAD_LEGACY::loadWire(), FABMASTER::loadZone(), KIGFX::BUILTIN_FONT::LookupGlyph(), SCH_SELECTION_TOOL::Main(), PNS::LINE_PLACER::makeVia(), makeWireFromChain(), MARKER_BASE::MARKER_BASE(), BOX2< VECTOR2I >::Merge(), BOX2< VECTOR2I >::Merge(), GRAPHICS_CLEANER::mergeRects(), EDIT_TOOL::ModifyLines(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), KICAD_MANAGER_CONTROL::NewProject(), PCB_SHAPE::Normalize(), PCB_TABLE::Normalize(), SCH_TABLE::Normalize(), PCB_SHAPE::NormalizeForCompare(), SHAPE_LINE_CHAIN::OffsetLine(), TEXTENTRY_TRICKS::OnCharHook(), GRID_TRICKS::onKeyDown(), PGM_KICAD::OnPgmInit(), MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< T, MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >, typename ITEM_PTR_VECTOR::iterator >::operator++(), BASE_SET::operator<(), BVH_PBRT::operator=(), PNS::LINE_PLACER::optimizeTailHeadTransition(), PCB_IO_EAGLE::packageRectangle(), PCB_IO_EAGLE::packageWire(), PCAD2KICAD::PCAD_ARC::Parse(), PCB_IO_EASYEDAPRO_PARSER::ParseBoard(), ALTIUM_PCB::ParseBoard6Data(), NET_SETTINGS::ParseBusVector(), PNS_LOG_FILE::parseCommonPnsProps(), PCB_IO_EASYEDAPRO_PARSER::ParseContour(), parseDouble(), EASYEDA_PARSER_BASE::ParseLineChains(), LIB_TABLE::ParseOptions(), PCB_IO_EASYEDAPRO_PARSER::ParsePoly(), SCH_IO_ALTIUM::ParsePortHelper(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), SCH_IO_KICAD_SEXPR_PARSER::parseSchTextBoxContent(), SCH_EASYEDAPRO_PARSER::ParseSymbol(), SCH_IO_KICAD_SEXPR_PARSER::parseSymbolTextBox(), PCB_IO_EASYEDA_PARSER::ParseToBoardItemContainer(), parseVersionString(), SCH_EDITOR_CONTROL::Paste(), CU_SHAPE_SEGMENT::Paths(), CU_SHAPE_SEGMENT::Paths(), SCH_PIN::PinDrawOrient(), SCH_SCREEN::Plot(), SCH_SHAPE::Plot(), GERBER_PLOTTER::plotArc(), GERBER_PLOTTER::plotArc(), PLOTTER::PlotImage(), PS_PLOTTER::PlotImage(), SCH_PLOTTER::plotOneSheetPDF(), SCH_PLOTTER::plotOneSheetPS(), SCH_PLOTTER::plotOneSheetSVG(), plotPdfBackground(), PLOTTER::PlotPoly(), BRDITEMS_PLOTTER::PlotText(), PLOTTER::polyArc(), PrintableCharCount(), FABMASTER::processArc(), AM_PARAM::ReadParamFromAmDef(), IbisParser::readWord(), BVH_PBRT::recursiveBuild(), SYMBOL_LIBS::ReloadLibrary(), SHAPE_LINE_CHAIN::RemoveShape(), KIGFX::PCB_PAINTER::renderNetNameForSegment(), SIM_PLOT_TAB::ResetScales(), PCB_TUNING_PATTERN::resetToBaseline(), PCB_VIA::SanitizeLayers(), CONVERT_TOOL::SegmentToArc(), SCH_SELECTION_TOOL::SelectCellsBetween(), REFDES_TRACKER::Serialize(), DIALOG_RENDER_JOB::setSelectedFormat(), PCB_VIA::SetTopLayer(), SHAPE_ARC::SHAPE_ARC(), TOOL_MANAGER::ShutdownTool(), SCH_SHEET_LIST::SortByHierarchicalPageNumbers(), SCH_SHEET_LIST::SortByPageNumbers(), SCH_PIN_TABLE_DATA_MODEL::SortRows(), STROKE_PARAMS::Stroke(), LSEQ::TestLayers(), AR_AUTOPLACER::testRectangle(), CONNECTIVITY_DATA::TestTrackEndpointDangling(), PLOTTER::ThickArc(), GERBER_PLOTTER::ThickSegment(), PLOTTER::ThickSegment(), FABMASTER::traceIsOpen(), KIFONT::STROKE_GLYPH::Transform(), SCH_SHEET_LIST::TrimToPageNumbers(), PNS::MEANDER_PLACER_BASE::tuneLineLength(), SCH_SHEET_PATH::UpdateAllScreenReferences(), EDA_ARC_POINT_EDIT_BEHAVIOR::UpdateItem(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::UpdateItem(), PAD_POINT_EDIT_BEHAVIOR::UpdateItem(), ARC_GEOM_SYNCER::Validate(), MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< T, MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >, typename ITEM_PTR_VECTOR::iterator >::validate(), KIGFX::PREVIEW::RULER_ITEM::ViewDraw(), KIGFX::PREVIEW::TWO_POINT_ASSISTANT::ViewDraw(), PCB_VIA::ViewGetLayers(), PCB_TRACK::ViewGetLOD(), PCB_VIA::ViewGetLOD(), GERBER_PLOTTER::writeApertureList(), and HYPERLYNX_EXPORTER::writeNetObjects().

◆ epsilon

const int epsilon = 1

Definition at line 1162 of file test_shape_arc.cpp.

◆ location

◆ radius

int radius = ( c.m_geom.m_center_point - c.m_geom.m_start_point ).EuclideanNorm()

Definition at line 1177 of file test_shape_arc.cpp.

Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddArc(), GRAPHICS_IMPORTER_PCBNEW::AddArc(), GRAPHICS_IMPORTER_SCH::AddArc(), DXF_IMPORT_PLUGIN::addEllipse(), RENDER_3D_OPENGL::addObjectTriangles(), RENDER_3D_OPENGL::addObjectTriangles(), BOARD_ADAPTER::addShape(), altium_parse_polygons(), AltiumGetEllipticalPos(), APAD6::APAD6(), EC_CIRCLE::Apply(), approximateLineChainWithArcs(), PLOTTER::Arc(), PNS_LOG_VIEWER_OVERLAY::Arc(), AREGION6::AREGION6(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), BOOST_CHECK_PREDICATE(), BOOST_CHECK_PREDICATE(), ZONE_FILLER::buildCopperItemClearances(), BuildCornersList_S_Shape(), BOARD_ADAPTER::buildPadOutlineAsSegments(), EDA_SHAPE::calcEdit(), SHAPE_POLY_SET::chamferFilletPolygon(), DXF_PLOTTER::Circle(), PDF_PLOTTER::Circle(), PS_PLOTTER::Circle(), SVG_PLOTTER::Circle(), SHAPE_LINE_CHAIN::ClosestSegmentsFast(), SHAPE_ARC::Collide(), SHAPE_ARC::Collide(), EDA_SHAPE::computeArcBBox(), TEARDROP_MANAGER::computeCurvedForRoundShape(), AM_PRIMITIVE::ConvertShapeToPolygon(), D_CODE::ConvertShapeToPolygon(), CornerListToPolygon(), GENCAD_EXPORTER::createPadsShapesSection(), BOARD_ADAPTER::createTrackWithMargin(), KIGFX::GERBVIEW_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::SCH_PAINTER::drawAnchor(), KIGFX::SCH_PAINTER::drawDanglingIndicator(), D_CODE::DrawFlashedShape(), KIGFX::GERBVIEW_PAINTER::drawFlashedShape(), DrawHalfOpenCylinder(), KIGFX::PREVIEW::ANGLE_ITEM::drawPreviewShape(), DrawSegment(), KIGFX::CAIRO_GAL_BASE::DrawSegment(), EDA_SHAPE_DESC::EDA_SHAPE_DESC(), editArcEndpointKeepCenter(), editArcMidKeepCenter(), GBR_TO_PCB_EXPORTER::export_flashed_copper_item(), GBR_TO_PCB_EXPORTER::export_non_copper_item(), fillArcPOLY(), TEARDROP_MANAGER::findAnchorPointsOnTrack(), EXCELLON_IMAGE::FinishRouteCommand(), GENCAD_EXPORTER::footprintWriteShape(), gen_arc(), GERBER_DRAW_ITEM::GetBoundingBox(), PCB_TRACK::GetBoundingBox(), PCB_VIA::GetBoundingBox(), PCB_VIA::GetBoundingBox(), DRAWING_TOOL::getClampedRadiusEnd(), SHAPE_ARC::GetLength(), PCB_TRACK::GetMsgPanelInfo(), EDA_SHAPE::GetRadius(), GRCSegm(), GERBER_DRAW_ITEM::HitTest(), PCB_ARC::HitTest(), PCB_TARGET::HitTest(), EDA_SHAPE::hitTest(), DXF_IMPORT_PLUGIN::insertArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadArc(), SCH_IO_KICAD_LEGACY_LIB_CACHE::loadCircle(), PCB_IO_EAGLE::loadPlain(), PCB_IO_EAGLE::loadPolygon(), PCB_IO_EAGLE::loadSignals(), SCH_IO_EAGLE::loadSymbolWire(), PNS::HOLE::MakeCircularHole(), DSN::SPECCTRA_DB::makeIMAGE(), PNS::MEANDER_SHAPE::makeMiterShape(), DSN::SPECCTRA_DB::makePADSTACK(), PLOTTER::Marker(), PLOTTER::markerBackSlash(), PLOTTER::markerCircle(), PLOTTER::markerHBar(), PLOTTER::markerLozenge(), PLOTTER::markerSlash(), PLOTTER::markerSquare(), PLOTTER::markerVBar(), PANEL_CABLE_SIZE::OnAmpacityChange(), CIRCLE_GEOM_SYNCER::OnCenterRadiusChange(), PCB_POINT_EDITOR::OnSelectionChange(), PCB_IO_EAGLE::packageCircle(), PCB_IO_EAGLE::packagePolygon(), ALTIUM_PCB::Parse(), GPCB_FPL_CACHE::parseFOOTPRINT(), SCH_IO_ALTIUM::ParseRoundRectangle(), SCH_IO_KICAD_SEXPR_PARSER::parseSchCircle(), SCH_EASYEDAPRO_PARSER::ParseSchematic(), PNS_LOG_FILE::parseShape(), SCH_EASYEDAPRO_PARSER::ParseSymbol(), SCH_IO_KICAD_SEXPR_PARSER::parseSymbolCircle(), SCH_EASYEDA_PARSER::ParseSymbolShapes(), PCB_IO_EASYEDA_PARSER::ParseToBoardItemContainer(), BE_SHAPE_POINT::Paths(), BE_SHAPE_POINT::Paths(), CU_SHAPE_ARC::Paths(), CU_SHAPE_SEGMENT::Paths(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), SCH_PIN::PlotPinType(), BRDITEMS_PLOTTER::PlotShape(), GERBER_DRAW_ITEM::Print(), processClosedShape(), OUTSET_ROUTINE::ProcessItem(), FABMASTER::processPolygon(), RENDER_3D_RAYTRACE_BASE::Reload(), ROUNDED_CORNER::ROUNDED_CORNER(), segmentIntersectsArc(), SegmentIntersectsBoard(), segmentIntersectsCircle(), snapCorner(), PLOTTER::ThickArc(), PLOTTER::ThickOval(), AR_MATRIX::traceArc(), AR_MATRIX::traceCircle(), AR_MATRIX::traceFilledCircle(), AR_MATRIX::TraceFilledRectangle(), TransformCircleToPolygon(), TransformCircleToPolygon(), TransformOvalToPolygon(), PCB_TARGET::TransformShapeToPolygon(), PCB_TRACK::TransformShapeToPolygon(), SHAPE_ARC::update_values(), PCB_DIM_LEADER::updateGeometry(), PCB_DIM_RADIAL::updateGeometry(), and ARC_GEOM_SYNCER::Validate().

◆ result_arc_to_arc

bool result_arc_to_arc
Initial value:
= arc1_sh->Collide( arc2_sh, pcbIUScale.mmToIU( c.m_clearance ),
constexpr EDA_IU_SCALE pcbIUScale
Definition base_units.h:112
SHAPE * arc1_sh
SHAPE * arc2_sh
VECTOR2I location
int actual

Definition at line 969 of file test_shape_arc.cpp.

Referenced by BOOST_CHECK_EQUAL().

◆ result_arc_to_chain

bool result_arc_to_chain
Initial value:
=
int clearance
SHAPE * arc2_slc_sh

Definition at line 976 of file test_shape_arc.cpp.

Referenced by BOOST_CHECK_EQUAL().

◆ result_chain_to_arc

bool result_chain_to_arc
Initial value:
=
SHAPE * arc1_slc_sh

Definition at line 980 of file test_shape_arc.cpp.

Referenced by BOOST_CHECK_EQUAL().

◆ result_chain_to_chain

bool result_chain_to_chain
Initial value:

Definition at line 984 of file test_shape_arc.cpp.

Referenced by BOOST_CHECK_EQUAL().

◆ this_arc

const SHAPE_ARC this_arc
Initial value:
{ c.m_geom.m_center_point, c.m_geom.m_start_point,
EDA_ANGLE( c.m_geom.m_center_angle, DEGREES_T ), width }

Definition at line 628 of file test_shape_arc.cpp.

Referenced by BOOST_CHECK_EQUAL(), BOOST_CHECK_EQUAL(), CheckArc(), and ConstructFromStartEndCenter().