KiCad PCB EDA Suite
|
#include <container_2d.h>
Public Member Functions | |
CONTAINER_2D_BASE (OBJECT_2D_TYPE aObjType) | |
virtual | ~CONTAINER_2D_BASE () |
void | Add (OBJECT_2D *aObject) |
const BBOX_2D & | GetBBox () const |
virtual void | Clear () |
const LIST_OBJECT2D & | GetList () const |
virtual void | GetIntersectingObjects (const BBOX_2D &aBBox, CONST_LIST_OBJECT2D &aOutList) const =0 |
Get a list of objects that intersects a bounding box. | |
virtual bool | IntersectAny (const RAYSEG2D &aSegRay) const =0 |
Intersect and check if a segment ray hits a object or is inside it. | |
Protected Attributes | |
BBOX_2D | m_bbox |
LIST_OBJECT2D | m_objects |
Private Attributes | |
std::mutex | m_lock |
Definition at line 42 of file container_2d.h.
|
explicit |
Definition at line 36 of file container_2d.cpp.
References m_bbox, and BBOX_2D::Reset().
|
virtual |
Definition at line 56 of file container_2d.cpp.
References Clear().
|
inline |
Definition at line 49 of file container_2d.h.
References OBJECT_2D::GetBBox(), m_bbox, m_lock, m_objects, and BBOX_2D::Union().
Referenced by addFILLED_CIRCLE_2D(), addRING_2D(), addROUND_SEGMENT_2D(), BOARD_ADAPTER::addText(), ConvertPolygonToBlocks(), ConvertPolygonToTriangles(), RENDER_3D_RAYTRACE_BASE::createItemsFromContainer(), BOARD_ADAPTER::createLayers(), RENDER_3D_RAYTRACE_BASE::insertHole(), and RENDER_3D_RAYTRACE_BASE::Reload().
|
virtual |
Reimplemented in BVH_CONTAINER_2D.
Definition at line 42 of file container_2d.cpp.
References m_bbox, m_lock, m_objects, and BBOX_2D::Reset().
Referenced by BVH_CONTAINER_2D::Clear(), RENDER_3D_RAYTRACE_BASE::Reload(), and ~CONTAINER_2D_BASE().
|
inline |
Definition at line 59 of file container_2d.h.
References m_bbox.
|
pure virtual |
Get a list of objects that intersects a bounding box.
aBBox | The bounding box to test. |
aOutList | The list of objects that intersects the bounding box. |
Implemented in CONTAINER_2D, and BVH_CONTAINER_2D.
|
inline |
Definition at line 66 of file container_2d.h.
References m_objects.
Referenced by RENDER_3D_OPENGL::createBoard(), RENDER_3D_RAYTRACE_BASE::createItemsFromContainer(), RENDER_3D_OPENGL::generateLayerList(), RENDER_3D_OPENGL::generateViasAndPads(), RENDER_3D_RAYTRACE_BASE::insertHole(), RENDER_3D_OPENGL::reload(), and RENDER_3D_RAYTRACE_BASE::Reload().
|
pure virtual |
Intersect and check if a segment ray hits a object or is inside it.
aSegRay | The segment to intersect with objects. |
Implemented in CONTAINER_2D, and BVH_CONTAINER_2D.
|
protected |
Definition at line 86 of file container_2d.h.
Referenced by Add(), BVH_CONTAINER_2D::BuildBVH(), BVH_CONTAINER_2D::BVH_CONTAINER_2D(), Clear(), CONTAINER_2D_BASE(), and GetBBox().
|
private |
Definition at line 90 of file container_2d.h.
|
protected |
Definition at line 87 of file container_2d.h.
Referenced by Add(), BVH_CONTAINER_2D::BuildBVH(), Clear(), and GetList().