23 AreaBoundary(isInverted), _minX(southX), _maxX(northX), _minY(eastY), _maxY(westY) { }
33 AreaBoundary(isInverted), _center(center), _radiusSq(radius * radius) { }
36 AreaBoundary(isInverted), _center(center), _radiusSq(_center.GetExactDist2dSq(pointOnCircle)) { }
45 AreaBoundary(isInverted), _center(center), _radiusYSq(radiusY * radiusY), _scaleXSq(_radiusYSq / (radiusX * radiusX)) { }
56 AreaBoundary(isInverted), _a(pointA), _b(pointB), _c(pointC),
57 _abx(_b.GetPositionX() - _a.GetPositionX()), _bcx(_c.GetPositionX() - _b.GetPositionX()), _cax(_a.GetPositionX() - _c.GetPositionX()),
58 _aby(_b.GetPositionY() - _a.GetPositionY()), _bcy(_c.GetPositionY() - _b.GetPositionY()), _cay(_a.GetPositionY() - _c.GetPositionY()) { }
68 return ((sign1 == sign2) && (sign2 == sign3));
73 AreaBoundary(isInverted), _a(cornerA), _b(cornerB), _d(cornerD),
74 _c(_d.GetPositionX() + (_b.GetPositionX() - _a.GetPositionX()), _d.GetPositionY() + (_b.GetPositionY() - _a.GetPositionY())),
75 _abx(_b.GetPositionX() - _a.GetPositionX()), _dax(_a.GetPositionX() - _d.GetPositionX()),
76 _aby(_b.GetPositionY() - _a.GetPositionY()), _day(_a.GetPositionY() - _d.GetPositionY()) { }
87 return ((sign1 == sign2) && (sign2 == sign3) && (sign3 == sign4));
101 AreaBoundary(isInverted), _origin(origin), _vertices(
std::move(vertices)) { }
bool IsWithinBoundary(Position const *pos) const
virtual ~BoundaryIntersectionBoundary()
AreaBoundary const *const _b1
AreaBoundary const *const _b2
BoundaryIntersectionBoundary(AreaBoundary const *b1, AreaBoundary const *b2, bool isInverted=false)
bool IsWithinBoundaryArea(Position const *pos) const override
BoundaryUnionBoundary(AreaBoundary const *b1, AreaBoundary const *b2, bool isInverted=false)
AreaBoundary const *const _b1
bool IsWithinBoundaryArea(Position const *pos) const override
virtual ~BoundaryUnionBoundary()
AreaBoundary const *const _b2
CircleBoundary(Position const ¢er, float radius, bool isInverted=false)
bool IsWithinBoundaryArea(Position const *pos) const override
bool IsWithinBoundaryArea(Position const *pos) const override
EllipseBoundary(Position const ¢er, float radiusX, float radiusY, bool isInverted=false)
ParallelogramBoundary(Position const &cornerA, Position const &cornerB, Position const &cornerD, bool isInverted=false)
bool IsWithinBoundaryArea(Position const *pos) const override
std::vector< Position > _vertices
bool IsWithinBoundaryArea(Position const *pos) const override
PolygonBoundary(Position const &origin, std::vector< Position > &&vertices, bool isInverted=false)
bool IsWithinBoundaryArea(Position const *pos) const override
RectangleBoundary(float southX, float northX, float eastY, float westY, bool isInverted=false)
bool IsWithinBoundaryArea(Position const *pos) const override
TriangleBoundary(Position const &pointA, Position const &pointB, Position const &pointC, bool isInverted=false)
ZRangeBoundary(float minZ, float maxZ, bool isInverted=false)
bool IsWithinBoundaryArea(Position const *pos) const override
constexpr float GetPositionX() const
constexpr float GetPositionY() const
bool IsInPolygon2D(Position const &polygonOrigin, std::span< Position const > vertices) const
constexpr float GetExactDistSq(float x, float y, float z) const
constexpr float GetPositionZ() const