29#ifndef _ROUND_SEGMENT_2D_H_
30#define _ROUND_SEGMENT_2D_H_
90static const float s_min_dot = ( FLT_EPSILON * 4.0f * FLT_EPSILON * 4.0f );
101 const SFVEC2F vec = aEnd - aStart;
105 return (aStart == aEnd) || ( glm::dot( vec, vec ) <=
s_min_dot );
A base class for any item which can be embedded within the BOARD container class, and therefore insta...
bool IsPointInside(const SFVEC2F &aPoint) const override
const SFVEC2F & GetLeftEnd() const
const SFVEC2F & GetRightEnd() const
const SFVEC2F & GetLeftStar() const
const SFVEC2F & GetLeftDir() const
const SFVEC2F & GetEnd() const
bool Overlaps(const BBOX_2D &aBBox) const override
Test if the box overlaps the object.
bool Intersect(const RAYSEG2D &aSegRay, float *aOutT, SFVEC2F *aNormalOut) const override
const SFVEC2F & GetLeftEnd_minus_Start() const
INTERSECTION_RESULT IsBBoxInside(const BBOX_2D &aBBox) const override
Test this object if it's completely outside, intersects, or is completely inside aBBox.
const SFVEC2F & GetRightEnd_minus_Start() const
float GetRadiusSquared() const
bool Intersects(const BBOX_2D &aBBox) const override
a.Intersects(b) ⇔ !a.Disjoint(b) ⇔ !(a ∩ b = ∅)
const SFVEC2F & GetStart() const
const SFVEC2F & GetRightDir() const
SFVEC2F m_rightEndMinusStart
const SFVEC2F & GetRightStar() const
SFVEC2F m_leftEndMinusStart
const SFVEC2F & GetEnd_minus_Start() const
static const float s_min_dot
bool Is_segment_a_circle(const SFVEC2F &aStart, const SFVEC2F &aEnd)
Check if segment start and end is very close to each other.
Manage a bounding box defined by two SFVEC2F min max points.
SFVEC2F m_End_minus_start