KiCad PCB EDA Suite
Loading...
Searching...
No Matches
FILLED_CIRCLE_2D Class Reference

#include <filled_circle_2d.h>

Inheritance diagram for FILLED_CIRCLE_2D:
OBJECT_2D

Public Member Functions

 FILLED_CIRCLE_2D (const SFVEC2F &aCenter, float aRadius, const BOARD_ITEM &aBoardItem)
 
float GetRadius () const
 
const SFVEC2FGetCenter () const
 
float GetRadiusSquared () const
 
bool Overlaps (const BBOX_2D &aBBox) const override
 Test if the box overlaps the object.
 
bool Intersects (const BBOX_2D &aBBox) const override
 a.Intersects(b) ⇔ !a.Disjoint(b) ⇔ !(a ∩ b = ∅)
 
bool Intersect (const RAYSEG2D &aSegRay, float *aOutT, SFVEC2F *aNormalOut) const override
 
INTERSECTION_RESULT IsBBoxInside (const BBOX_2D &aBBox) const override
 Test this object if it's completely outside, intersects, or is completely inside aBBox.
 
bool IsPointInside (const SFVEC2F &aPoint) const override
 
const BOARD_ITEMGetBoardItem () const
 
const BBOX_2DGetBBox () const
 
const SFVEC2FGetCentroid () const
 
OBJECT_2D_TYPE GetObjectType () const
 

Protected Attributes

BBOX_2D m_bbox
 
SFVEC2F m_centroid
 
OBJECT_2D_TYPE m_obj_type
 
const BOARD_ITEMm_boardItem
 

Private Attributes

SFVEC2F m_center
 
float m_radius
 
float m_radius_squared
 

Detailed Description

Definition at line 34 of file filled_circle_2d.h.

Constructor & Destructor Documentation

◆ FILLED_CIRCLE_2D()

FILLED_CIRCLE_2D::FILLED_CIRCLE_2D ( const SFVEC2F aCenter,
float  aRadius,
const BOARD_ITEM aBoardItem 
)

Member Function Documentation

◆ GetBBox()

◆ GetBoardItem()

const BOARD_ITEM & OBJECT_2D::GetBoardItem ( ) const
inlineinherited

Definition at line 66 of file object_2d.h.

References OBJECT_2D::m_boardItem.

Referenced by RENDER_3D_RAYTRACE_BASE::createItemsFromContainer().

◆ GetCenter()

const SFVEC2F & FILLED_CIRCLE_2D::GetCenter ( ) const
inline

Definition at line 40 of file filled_circle_2d.h.

References m_center.

Referenced by RENDER_3D_OPENGL::addObjectTriangles().

◆ GetCentroid()

const SFVEC2F & OBJECT_2D::GetCentroid ( ) const
inlineinherited

◆ GetObjectType()

◆ GetRadius()

float FILLED_CIRCLE_2D::GetRadius ( ) const
inline

Definition at line 39 of file filled_circle_2d.h.

References m_radius.

Referenced by RENDER_3D_OPENGL::addObjectTriangles().

◆ GetRadiusSquared()

float FILLED_CIRCLE_2D::GetRadiusSquared ( ) const
inline

Definition at line 41 of file filled_circle_2d.h.

References m_radius_squared.

◆ Intersect()

bool FILLED_CIRCLE_2D::Intersect ( const RAYSEG2D aSegRay,
float *  aOutT,
SFVEC2F aNormalOut 
) const
overridevirtual
Parameters
aOutTa value between 0.0 and 1.0 in relation to the time of the hit of the segment.

Implements OBJECT_2D.

Definition at line 68 of file filled_circle_2d.cpp.

References RAYSEG2D::at(), m_center, RAYSEG2D::m_Dir, RAYSEG2D::m_Length, m_radius, m_radius_squared, and RAYSEG2D::m_Start.

◆ Intersects()

bool FILLED_CIRCLE_2D::Intersects ( const BBOX_2D aBBox) const
overridevirtual

a.Intersects(b) ⇔ !a.Disjoint(b) ⇔ !(a ∩ b = ∅)

Implements OBJECT_2D.

Definition at line 62 of file filled_circle_2d.cpp.

References BBOX_2D::Intersects(), m_center, and m_radius_squared.

◆ IsBBoxInside()

INTERSECTION_RESULT FILLED_CIRCLE_2D::IsBBoxInside ( const BBOX_2D aBBox) const
overridevirtual

Test this object if it's completely outside, intersects, or is completely inside aBBox.

Returns
INTERSECTION_RESULT

Implements OBJECT_2D.

Definition at line 122 of file filled_circle_2d.cpp.

References BBOX_2D::Intersects(), OBJECT_2D::m_bbox, m_center, m_radius_squared, BBOX_2D::Max(), and BBOX_2D::Min().

◆ IsPointInside()

bool FILLED_CIRCLE_2D::IsPointInside ( const SFVEC2F aPoint) const
overridevirtual

Implements OBJECT_2D.

Definition at line 160 of file filled_circle_2d.cpp.

References m_center, and m_radius_squared.

◆ Overlaps()

bool FILLED_CIRCLE_2D::Overlaps ( const BBOX_2D aBBox) const
overridevirtual

Test if the box overlaps the object.

Conformance Implements the Overlaps function from the OGC Simple Feature Specification at http://www.opengeospatial.org/standards/sfa. a.Overlaps(b) ⇔ ( dim(I(a)) = dim(I(b)) = dim(I(a)I(b))) ∧ (a ∩ b ≠ a) ∧ (a ∩ b ≠ b) It means that the result dimension of an overlap is the same dimensions of the bounding box (so the overlap cannot be a point or a line) and one of the boxes cannot full contain the other box.

Parameters
aBBoxis the bounding box to test.
Returns
true if the BBox intersects the object or is inside it.

Implements OBJECT_2D.

Definition at line 55 of file filled_circle_2d.cpp.

Member Data Documentation

◆ m_bbox

◆ m_boardItem

const BOARD_ITEM& OBJECT_2D::m_boardItem
protectedinherited

Definition at line 114 of file object_2d.h.

Referenced by OBJECT_2D::GetBoardItem().

◆ m_center

SFVEC2F FILLED_CIRCLE_2D::m_center
private

◆ m_centroid

◆ m_obj_type

OBJECT_2D_TYPE OBJECT_2D::m_obj_type
protectedinherited

Definition at line 112 of file object_2d.h.

Referenced by OBJECT_2D::GetObjectType(), and OBJECT_2D::OBJECT_2D().

◆ m_radius

float FILLED_CIRCLE_2D::m_radius
private

Definition at line 51 of file filled_circle_2d.h.

Referenced by FILLED_CIRCLE_2D(), GetRadius(), and Intersect().

◆ m_radius_squared

float FILLED_CIRCLE_2D::m_radius_squared
private

The documentation for this class was generated from the following files: