129 return m_counter[static_cast<int>( aObjType )];
134 m_counter[static_cast<int>( aObjType )]++;
156 #endif // _OBJECT_2D_H_
unsigned int m_counter[static_cast< int >(OBJECT_2D_TYPE::MAX)]
unsigned int GetCountOf(OBJECT_2D_TYPE aObjType) const
2D bounding box class definition.
virtual INTERSECTION_RESULT IsBBoxInside(const BBOX_2D &aBBox) const =0
Test this object if it's completely outside, intersects, or is completely inside aBBox.
const SFVEC2F & GetCentroid() const
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
OBJECT_2D_TYPE m_obj_type
const BOARD_ITEM & m_boardItem
OBJECT_2D(OBJECT_2D_TYPE aObjType, const BOARD_ITEM &aBoardItem)
const BBOX_2D & GetBBox() const
virtual bool Overlaps(const BBOX_2D &aBBox) const =0
Test if the box overlaps the object.
static OBJECT_2D_STATS & Instance()
const BOARD_ITEM & GetBoardItem() const
static OBJECT_2D_STATS * s_instance
virtual bool Intersect(const RAYSEG2D &aSegRay, float *aOutT, SFVEC2F *aNormalOut) const =0
Manage a bounding box defined by two SFVEC2F min max points.
OBJECT_2D_TYPE GetObjectType() const
void AddOne(OBJECT_2D_TYPE aObjType)
virtual bool IsPointInside(const SFVEC2F &aPoint) const =0
virtual bool Intersects(const BBOX_2D &aBBox) const =0
a.Intersects(b) ⇔ !a.Disjoint(b) ⇔ !(a ∩ b = ∅)
const OBJECT_2D_STATS & operator=(const OBJECT_2D_STATS &old)