KiCad PCB EDA Suite
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages Concepts
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_CENTRE_PT_ANGLE
 Info to set up an arc by centre, start point and angle. More...
 
struct  ARC_START_MID_END
 
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")
 
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.CPoint(-1), 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_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())

◆ arc2()

SHAPE_ARC arc2 ( c.m_arc2.  GenerateArc())

◆ arc2_slc()

SHAPE_LINE_CHAIN arc2_slc ( c.m_arc2.  GenerateArc())

◆ 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 957 of file test_shape_arc.cpp.

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

◆ 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 980 of file test_shape_arc.cpp.

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

◆ BOOST_AUTO_TEST_CASE() [1/3]

◆ BOOST_AUTO_TEST_CASE() [2/3]

BOOST_AUTO_TEST_CASE ( CollideArcToShapeLineChain  )

Definition at line 874 of file test_shape_arc.cpp.

References BOOST_CHECK_EQUAL(), SHAPE_ARC::Collide(), and SHAPE::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 137 of file test_shape_arc.cpp.

References BOOST_CHECK_EQUAL(), and CheckArc().

◆ BOOST_CHECK_EQUAL() [1/7]

BOOST_CHECK_EQUAL ( chain.  CPoint-1,
this_arc.  GetP1() 
)

◆ BOOST_CHECK_EQUAL() [2/7]

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

◆ BOOST_CHECK_EQUAL() [3/7]

BOOST_CHECK_EQUAL ( result_arc_to_arc  ,
c.  m_exp_result 
)

◆ BOOST_CHECK_EQUAL() [4/7]

BOOST_CHECK_EQUAL ( result_arc_to_chain  ,
c.  m_exp_result 
)

◆ BOOST_CHECK_EQUAL() [5/7]

BOOST_CHECK_EQUAL ( result_chain_to_arc  ,
c.  m_exp_result 
)

◆ BOOST_CHECK_EQUAL() [6/7]

BOOST_CHECK_EQUAL ( result_chain_to_chain  ,
c.  m_exp_result 
)

◆ 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/2]

◆ BOOST_TEST_CONTEXT() [2/2]

BOOST_TEST_CONTEXT ( "Test Width"  )

Definition at line 559 of file test_shape_arc.cpp.

References BOOST_CHECK_EQUAL(), and circle().

◆ BOOST_TEST_MESSAGE()

◆ 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 116 of file test_shape_arc.cpp.

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

Referenced by BOOST_AUTO_TEST_CASE().

◆ CheckArc() [2/2]

CheckArc ( this_arc  ,
c.  m_properties 
)

◆ CheckArcGeom()

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

Check a SHAPE_ARC against a given set of geometric properties.

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

Check the chord agrees

All arcs are solid

Collisions will be checked elsewhere.

Definition at line 61 of file test_shape_arc.cpp.

References EDA_ANGLE::AsDegrees(), SHAPE_ARC::BBox(), BOOST_CHECK_EQUAL(), BOOST_CHECK_PREDICATE(), SHAPE_ARC::GetCenter(), SHAPE_ARC::GetCentralAngle(), SHAPE_ARC::GetChord(), SHAPE_ARC::GetEndAngle(), SHAPE_ARC::GetP1(), SHAPE_ARC::GetRadius(), SHAPE_ARC::GetStartAngle(), SHAPE_ARC::IsSolid(), ARC_PROPERTIES::m_bbox, ARC_PROPERTIES::m_center_angle, ARC_PROPERTIES::m_center_point, ARC_PROPERTIES::m_end_angle, ARC_PROPERTIES::m_end_point, ARC_PROPERTIES::m_radius, ARC_PROPERTIES::m_start_angle, and ARC_PROPERTIES::m_start_point.

Referenced by CheckArc().

◆ circle()

SHAPE_CIRCLE circle ( c.  m_circle_center,
c.  m_circle_radius 
)

Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddCircle(), GRAPHICS_IMPORTER_SCH::AddCircle(), GRAPHICS_IMPORTER_PCBNEW::AddCircle(), DXF_IMPORT_PLUGIN::addEllipse(), CREEPAGE_GRAPH::Addshape(), BOOST_AUTO_TEST_CASE(), BOOST_DATA_TEST_CASE(), BOOST_TEST_CONTEXT(), PNS::BuildHullForPrimitiveShape(), SHAPE_ARC::Collide(), SHAPE_POLY_SET::Collide(), PCB_GRID_HELPER::computeAnchors(), ComputeDogbone(), SCH_IO_LTSPICE_PARSER::CreateCircle(), BOARD_ADAPTER::createPadWithMargin(), SCH_IO_LTSPICE_PARSER::CreateSymbol(), KIGFX::PCB_PAINTER::draw(), DRAWING_TOOL::DrawCircle(), ROUTER_PREVIEW_ITEM::drawShape(), EDA_SHAPE::EDA_SHAPE(), PCB_SHAPE::GetConnectionPoints(), HelperGeneratePowerPortGraphics(), 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(), 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   
)

◆ SetWidth()

arc2_slc SetWidth ( )

Variable Documentation

◆ accuracy

◆ actual

◆ arc1_sh

SHAPE* arc1_sh = &arc1

Definition at line 844 of file test_shape_arc.cpp.

◆ arc1_slc_sh

SHAPE* arc1_slc_sh = &arc1_slc

Definition at line 846 of file test_shape_arc.cpp.

◆ arc2_sh

SHAPE* arc2_sh = &arc2

Definition at line 845 of file test_shape_arc.cpp.

◆ arc2_slc_sh

SHAPE* arc2_slc_sh = &arc2_slc

Definition at line 847 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 750 of file test_shape_arc.cpp.

◆ arc_cases

const std::vector<ARC_CPA_CASE> arc_cases
static

Definition at line 189 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 540 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 583 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 506 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 },
{ "90 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { 0, 100 }, { 0, 50 } }, true, 0 },
{ "180 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { -100, 0 }, { -50, 0 } }, true, 0 },
{ "270 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { 0, -100 }, { 0, -50 } }, true, 0 },
{ "45 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { 71, 71 }, { 35, 35 } }, true, 0 },
{ "-45 deg ", { { 0, 0 }, { 100, 0 }, 270.0 }, 0, { { 71, -71 }, { 35, -35 } }, false, -1 },
{ "seg inside arc start", { { 0, 0 }, { 71, -71 }, 90.0 },
10, { { 90, 0 }, { -35, 0 } }, true, 10 },
{ "seg inside arc end", { { 0, 0 }, { 71, -71 }, 90.0 },
10, { { -35, 0 }, { 90, 0 } }, true, 10 },
{ "large diameter arc", { { 172367922, 82282076 }, { 162530000, 92120000 }, -45.0 },
433300, { { 162096732, 92331236 }, { 162096732, 78253268 } }, true, 433268 },
}

Definition at line 676 of file test_shape_arc.cpp.

◆ arc_ttr_cases

const std::vector<ARC_TTR_CASE> arc_ttr_cases
static

Definition at line 370 of file test_shape_arc.cpp.

◆ ArcToPolyline_cases

const std::vector<ARC_TO_POLYLINE_CASE> ArcToPolyline_cases

Definition at line 995 of file test_shape_arc.cpp.

◆ center

VECTOR2I center = c.m_geom.m_center

Definition at line 520 of file test_shape_arc.cpp.

Referenced by DXF_IMPORT_PLUGIN::addArc(), GRAPHICS_IMPORTER_LIB_SYMBOL::AddArc(), GRAPHICS_IMPORTER_SCH::AddArc(), GRAPHICS_IMPORTER_PCBNEW::AddArc(), DXF_IMPORT_PLUGIN::addCircle(), DXF_IMPORT_PLUGIN::addEllipse(), RENDER_3D_OPENGL::addObjectTriangles(), FEATURES_MANAGER::AddPadShape(), DXF_IMPORT_PLUGIN::addPoint(), FEATURES_MANAGER::AddShape(), approximateLineChainWithArcs(), AREGION6::AREGION6(), BOOST_AUTO_TEST_CASE(), ZONE_FILLER::buildThermalSpokes(), CalcArcCenter(), CircleCenterFrom3Points(), SHAPE_LINE_CHAIN::ClosestSegmentsFast(), SHAPE_ARC::Collide(), PCB_GRID_HELPER::computeAnchors(), computeCenter(), SHAPE_ARC::ConstructFromStartEndAngle(), 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(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::GERBVIEW_PAINTER::draw(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepTangent(), SIM_PLOT_TAB::EnableCursor(), GBR_TO_PCB_EXPORTER::export_flashed_copper_item(), GBR_TO_PCB_EXPORTER::export_non_copper_item(), BOX2< Vec >::FarthestPointTo(), ZONE_FILLER::Fill(), fillArcGBRITEM(), fillArcPOLY(), EXCELLON_IMAGE::FinishRouteCommand(), GENCAD_EXPORTER::FootprintWriteShape(), PCB_IO_KICAD_SEXPR::format(), PCB_ARC::GetAngle(), SELECTION::GetCenter(), SHAPE_ARC::GetCentralAngle(), 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(), 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_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(), Ref1CalcArcCenter(), EDA_DRAW_FRAME::ScriptingConsoleEnableDisable(), PLOTTER::segmentAsOval(), segmentIntersectsArc(), SegmentIntersectsBoard(), segmentIntersectsCircle(), SHAPE_LINE_CHAIN::SelfIntersectingWithArcs(), SHAPE_ARC::SHAPE_ARC(), STROKE_PARAMS::Stroke(), PLOTTER::ThickArc(), PNS::tightenSegment(), CREEPAGE_GRAPH::TransformEdgeToCreepShapes(), CIRCLE_GEOM_SYNCER::updateCenterPoint(), CIRCLE_GEOM_SYNCER::updateCenterRadius(), ARC_GEOM_SYNCER::updateCSA(), PCB_DIM_RADIAL::updateGeometry(), PCB_DIM_CENTER::updateGeometry(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::UpdateItem(), ARC_POINT_EDIT_BEHAVIOR::UpdateItem(), PAD_POINT_EDIT_BEHAVIOR::UpdateItem(), PCB_CONTROL::UpdateMessagePanel(), ARC_GEOM_SYNCER::Validate(), and RATSNEST_VIEW_ITEM::ViewDraw().

◆ chain

◆ clearance

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

Definition at line 854 of file test_shape_arc.cpp.

Referenced by ZONE_FILLER::addHatchFillTypeOnZone(), 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(), 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(), 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_COPPER_CLEARANCE::testSingleLayerItemAgainstItem(), DRC_TEST_PROVIDER_PHYSICAL_CLEARANCE::testZoneLayer(), DRC_TEST_PROVIDER_COPPER_CLEARANCE::testZonesToZones(), FOOTPRINT::TransformPadsToPolySet(), PNS::ROUTER::updateView(), PANEL_SETUP_NETCLASSES::validateNetclassClearance(), and PAD::ViewBBox().

◆ cw

◆ end

VECTOR2I end = c.m_geom.m_end

Definition at line 519 of file test_shape_arc.cpp.

Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddArc(), GRAPHICS_IMPORTER_SCH::AddArc(), GRAPHICS_IMPORTER_PCBNEW::AddArc(), GERBER_JOBFILE_WRITER::addJSONMaterialStackup(), SYMBOL_LIBS::AddLibrary(), DXF_IMPORT_PLUGIN::addLine(), RENDER_3D_OPENGL::addObjectTriangles(), CREEPAGE_GRAPH::Addshape(), EC_CONVERGING::Apply(), PS_PLOTTER::Arc(), PDF_PLOTTER::Arc(), SVG_PLOTTER::Arc(), SVG_PLOTTER::BezierCurve(), KIGFX::OPENGL_GAL::BitmapText(), BOOST_AUTO_TEST_CASE(), BVH_PBRT::buildUpperSAH(), CalcArcCenter(), AR_AUTOPLACER::calculateKeepOutArea(), PCB_NET_INSPECTOR_PANEL::calculateNets(), BASE_SET::compare(), PCB_GRID_HELPER::computeAnchors(), KIGFX::OPENGL_GAL::computeBitmapTextSize(), computeCenter(), AR_MATRIX::ComputeMatrixSize(), AR_AUTOPLACER::computePlacementRatsnestCost(), TEARDROP_MANAGER::computeTeardropPolygon(), ConnectBoardShapes(), STRING_ANY_MAP::contains(), GERBER_DRAW_ITEM::ConvertSegmentToPolygon(), AM_PRIMITIVE::ConvertShapeToPolygon(), GERBER_WRITER::createDrillFile(), base64::decode(), KIGFX::CAIRO_GAL_BASE::DeleteGroup(), TOOL_MANAGER::dispatchInternal(), ALIGN_DISTRIBUTE_TOOL::doDistributeGaps(), KIGFX::DS_PAINTER::draw(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::GERBVIEW_PAINTER::draw(), KIGFX::DS_PAINTER::DrawBorder(), D_CODE::DrawFlashedShape(), KIGFX::OPENGL_GAL::drawPolyline(), KIGFX::OPENGL_GAL::drawSegmentChain(), SVG_IMPORT_PLUGIN::DrawSplinePath(), EC_CONVERGING::EC_CONVERGING(), ARC_POINT_EDIT_BEHAVIOR::editArcMidKeepCenter(), base64::encode(), MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::end(), executeBenchMark(), fillArcPOLY(), TEARDROP_MANAGER::findAnchorPointsOnTrack(), PNS::NODE::FindJoint(), SYMBOL_LIBS::FindLibrary(), SYMBOL_LIBS::FindLibraryByFullFileName(), AUTOPLACER::fitFieldsBetweenWires(), DXF_PLOTTER::FlashPadRect(), FOOTPRINT::FootprintNeedsUpdate(), GENCAD_EXPORTER::FootprintWriteShape(), GatherInterpolatedCubicBezierCurve(), DANGLING_END_ITEM_HELPER::get_lower_pos(), DANGLING_END_ITEM_HELPER::get_lower_type(), SCH_SHEET::GetBodyBoundingBox(), SCH_LABEL::GetBodyBoundingBox(), SCH_FIELD::GetBoundingBox(), SCH_TEXT::GetBoundingBox(), GERBER_DRAW_ITEM::GetBoundingBox(), BOX2< Vec >::GetBoundingBoxRotated(), SYMBOL_LIBS::GetCacheLibrary(), PCB_NET_INSPECTOR_PANEL::DATA_MODEL::GetChildren(), AUTOPLACER::getCollidingSides(), SCH_MOVE_TOOL::getConnectedDragItems(), GetDeltasForDistributeByGaps(), BOX2I_MINMAX::GetDiameter(), SCH_LABEL_BASE::GetIntersheetRefs(), PCB_VIA::GetLayerSet(), KIFONT::FONT::getLinePositions(), PCB_DIMENSION_BASE::GetMsgPanelInfo(), SCH_SHEET_LIST::GetMultiUnitSymbols(), DIALOG_MIGRATE_BUSES::getProposedLabels(), PNS::MEANDER_PLACER_BASE::GetTotalPadToDieLength(), 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(), KIID::KIID(), 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(), PNS::LINE_PLACER::makeVia(), makeWireFromChain(), MARKER_BASE::MARKER_BASE(), BOX2< Vec >::Merge(), GRAPHICS_CLEANER::mergeRects(), PNS::TOPOLOGY::NearestUnconnectedAnchorPoint(), KICAD_MANAGER_CONTROL::NewFromTemplate(), SCH_TABLE::Normalize(), PCB_SHAPE::Normalize(), PCB_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< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::operator++(), BASE_SET::operator<(), PADSTACK::DRILL_PROPS::operator==(), PNS::LINE_PLACER::optimizeTailHeadTransition(), PCB_IO_EAGLE::packageRectangle(), PCB_IO_EAGLE::packageWire(), PCAD2KICAD::PCAD_ARC::Parse(), PCB_IO_EASYEDAPRO_PARSER::ParseBoard(), NET_SETTINGS::ParseBusVector(), PNS_LOG_FILE::parseCommonPnsProps(), PCB_IO_EASYEDAPRO_PARSER::ParseContour(), 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(), SCH_PIN::PinDrawOrient(), SCH_SHAPE::Plot(), GERBER_PLOTTER::plotArc(), PLOTTER::PlotImage(), PS_PLOTTER::PlotImage(), SCH_PLOTTER::plotOneSheetPDF(), SCH_PLOTTER::plotOneSheetPS(), SCH_PLOTTER::plotOneSheetSVG(), 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(), PLOTTER::segmentAsOval(), DIALOG_RENDER_JOB::setSelectedFormat(), 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(), PLOTTER::ThickSegment(), GERBER_PLOTTER::ThickSegment(), HPGL_PLOTTER::ThickSegment(), FABMASTER::traceIsOpen(), KIFONT::STROKE_GLYPH::Transform(), SCH_SHEET_LIST::TrimToPageNumbers(), PNS::MEANDER_PLACER_BASE::tuneLineLength(), SCH_SHEET_PATH::UpdateAllScreenReferences(), EDA_CIRCLE_POINT_EDIT_BEHAVIOR::UpdateItem(), ARC_POINT_EDIT_BEHAVIOR::UpdateItem(), PAD_POINT_EDIT_BEHAVIOR::UpdateItem(), MULTIVECTOR< T, FIRST_TYPE_VAL, LAST_TYPE_VAL >::ITERATOR_BASE< ITEM_TYPE, ITEM_CONTAINER, ITEM_CONTAINER_IT >::validate(), ARC_GEOM_SYNCER::Validate(), KIGFX::PREVIEW::RULER_ITEM::ViewDraw(), KIGFX::PREVIEW::TWO_POINT_ASSISTANT::ViewDraw(), KIGFX::ORIGIN_VIEWITEM::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 1042 of file test_shape_arc.cpp.

Referenced by BOOST_AUTO_TEST_CASE().

◆ location

◆ radius

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

Definition at line 1057 of file test_shape_arc.cpp.

Referenced by GRAPHICS_IMPORTER_LIB_SYMBOL::AddArc(), GRAPHICS_IMPORTER_SCH::AddArc(), GRAPHICS_IMPORTER_PCBNEW::AddArc(), DXF_IMPORT_PLUGIN::addEllipse(), RENDER_3D_OPENGL::addObjectTriangles(), BOARD_ADAPTER::addShape(), altium_parse_polygons(), AltiumGetEllipticalPos(), APAD6::APAD6(), EC_CIRCLE::Apply(), approximateLineChainWithArcs(), PNS_LOG_VIEWER_OVERLAY::Arc(), PLOTTER::Arc(), AREGION6::AREGION6(), BOOST_AUTO_TEST_CASE(), ZONE_FILLER::buildCopperItemClearances(), BuildCornersList_S_Shape(), BOARD_ADAPTER::buildPadOutlineAsSegments(), EDA_SHAPE::calcEdit(), SHAPE_POLY_SET::chamferFilletPolygon(), HPGL_PLOTTER::Circle(), DXF_PLOTTER::Circle(), PS_PLOTTER::Circle(), PDF_PLOTTER::Circle(), SVG_PLOTTER::Circle(), SHAPE_LINE_CHAIN::ClosestSegmentsFast(), SHAPE_ARC::Collide(), EDA_SHAPE::computeArcBBox(), TEARDROP_MANAGER::computeCurvedForRoundShape(), AM_PRIMITIVE::ConvertShapeToPolygon(), D_CODE::ConvertShapeToPolygon(), CornerListToPolygon(), GENCAD_EXPORTER::CreatePadsShapesSection(), BOARD_ADAPTER::createTrackWithMargin(), doConvertOutlineToPolygon(), KIGFX::PCB_PAINTER::draw(), KIGFX::SCH_PAINTER::draw(), KIGFX::GERBVIEW_PAINTER::draw(), KIGFX::SCH_PAINTER::drawAnchor(), KIGFX::SCH_PAINTER::drawDanglingIndicator(), D_CODE::DrawFlashedShape(), KIGFX::GERBVIEW_PAINTER::drawFlashedShape(), DrawHalfOpenCylinder(), DrawSegment(), KIGFX::CAIRO_GAL_BASE::DrawSegment(), ARC_POINT_EDIT_BEHAVIOR::editArcEndpointKeepCenter(), ARC_POINT_EDIT_BEHAVIOR::editArcMidKeepCenter(), GBR_TO_PCB_EXPORTER::export_flashed_copper_item(), GBR_TO_PCB_EXPORTER::export_non_copper_item(), fillArcPOLY(), TEARDROP_MANAGER::findAnchorPointsOnTrack(), EXCELLON_IMAGE::FinishRouteCommand(), HPGL_PLOTTER::FlashPadCircle(), GENCAD_EXPORTER::FootprintWriteShape(), gen_arc(), GERBER_DRAW_ITEM::GetBoundingBox(), PCB_TRACK::GetBoundingBox(), PCB_VIA::GetBoundingBox(), DRAWING_TOOL::getClampedRadiusEnd(), SHAPE_ARC::GetLength(), PCB_TRACK::GetMsgPanelInfo(), EDA_SHAPE::GetRadius(), GRCSegm(), EDA_SHAPE::hitTest(), PCB_TARGET::HitTest(), PCB_ARC::HitTest(), GERBER_DRAW_ITEM::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_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(), CU_SHAPE_ARC::Paths(), CU_SHAPE_SEGMENT::Paths(), BRDITEMS_PLOTTER::PlotDimension(), BRDITEMS_PLOTTER::PlotPcbTarget(), SCH_PIN::PlotPinType(), GERBER_DRAW_ITEM::Print(), OUTSET_ROUTINE::ProcessItem(), FABMASTER::processPolygon(), RENDER_3D_RAYTRACE_BASE::Reload(), segmentIntersectsArc(), SegmentIntersectsBoard(), segmentIntersectsCircle(), PLOTTER::sketchOval(), PLOTTER::ThickArc(), AR_MATRIX::traceArc(), AR_MATRIX::traceCircle(), AR_MATRIX::traceFilledCircle(), AR_MATRIX::TraceFilledRectangle(), TransformCircleToPolygon(), TransformOvalToPolygon(), PCB_TARGET::TransformShapeToPolygon(), PCB_TRACK::TransformShapeToPolygon(), SHAPE_ARC::update_values(), PCB_DIM_RADIAL::updateGeometry(), PCB_DIM_LEADER::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:108
virtual bool Collide(const VECTOR2I &aP, int aClearance=0, int *aActual=nullptr, VECTOR2I *aLocation=nullptr) const
Check if the boundary of shape (this) lies closer to the point aP than aClearance,...
Definition: shape.h:181
constexpr int mmToIU(double mm) const
Definition: base_units.h:88
SHAPE * arc1_sh
SHAPE * arc2_sh
VECTOR2I location
int actual

Definition at line 849 of file test_shape_arc.cpp.

◆ result_arc_to_chain

bool result_arc_to_chain
Initial value:
=
int clearance
SHAPE * arc2_slc_sh

Definition at line 856 of file test_shape_arc.cpp.

◆ result_chain_to_arc

bool result_chain_to_arc
Initial value:

Definition at line 860 of file test_shape_arc.cpp.

◆ result_chain_to_chain

bool result_chain_to_chain
Initial value:

Definition at line 864 of file test_shape_arc.cpp.

◆ 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 523 of file test_shape_arc.cpp.