52    const int       half_width = aOval.
GetWidth() / 2;
 
   58    std::vector<TYPED_POINT2I> pts;
 
   79        pts.emplace_back( 
VECTOR2I{ 0, half_len }, pt_type );
 
   80        pts.emplace_back( 
VECTOR2I{ 0, -half_len }, pt_type );
 
   84    const int d_centre_to_cap_centre = half_len - half_width;
 
   95        const auto add_end = [&]( 
const VECTOR2I& aPt )
 
  101        add_end( { half_width, d_centre_to_cap_centre } );
 
  102        add_end( { half_width, -d_centre_to_cap_centre } );
 
  103        add_end( { -half_width, d_centre_to_cap_centre } );
 
  104        add_end( { -half_width, -d_centre_to_cap_centre } );
 
  120        const VECTOR2I cap_radial = { 0, half_width };
 
  124        EDA_ANGLE radial_line_rotation = rotation;
 
  128        VECTOR2I cap_radial_to_x_axis = cap_radial;
 
  129        RotatePoint( cap_radial_to_x_axis, radial_line_rotation );
 
  136        VECTOR2I cap_radial_to_y_axis = cap_radial;
 
  137        RotatePoint( cap_radial_to_y_axis, radial_line_rotation );
 
  139        const auto add_quadrant = [&]( 
const VECTOR2I& aPt )
 
  145        add_quadrant( 
VECTOR2I{ 0, d_centre_to_cap_centre } + cap_radial_to_y_axis );
 
  146        add_quadrant( 
VECTOR2I{ 0, d_centre_to_cap_centre } + cap_radial_to_x_axis );
 
  148        add_quadrant( 
VECTOR2I{ 0, -d_centre_to_cap_centre } - cap_radial_to_y_axis );
 
  149        add_quadrant( 
VECTOR2I{ 0, -d_centre_to_cap_centre } - cap_radial_to_x_axis );
 
 
std::vector< TYPED_POINT2I > GetOvalKeyPoints(const SHAPE_SEGMENT &aOval, OVAL_KEY_POINT_FLAGS aFlags)
Get a list of interesting points on an oval (rectangle with semicircular end caps)
 
VECTOR2I GetRotated(const VECTOR2I &aVector, const EDA_ANGLE &aAngle)
Return a new VECTOR2I that is the result of rotating aVector by aAngle.
 
void RotatePoint(int *pX, int *pY, const EDA_ANGLE &aAngle)
Calculate the new point of coord coord pX, pY, for a rotation center 0, 0.