Class Acts::ObjectIntersection

template<typename object_t, typename representation_t = object_t>
class ObjectIntersection

class extensions to return also the object and a representation

Public Functions

ObjectIntersection() = default

Default constructor.

template<typename T = representation_t, std::enable_if_t<std::is_same<T, object_t>::value, int> = 0>
inline ObjectIntersection(const Intersection3D &sInter, const object_t *sObject)

Object intersection - symmetric setup.

Parameters
  • sInter – is the intersection

  • sObject – is the object to be instersected

inline ObjectIntersection(const Intersection3D &sInter, const object_t *sObject, const representation_t *sRepresentation)

Object intersection.

Parameters
  • sInter – is the intersection

  • sObject – is the object to be instersected

  • sRepresentation – is the object represenatation

inline explicit operator bool() const

Bool() operator for validity checking.

inline bool operator<(const ObjectIntersection<object_t, representation_t> &oi) const

Smaller operator for ordering & sorting.

This operator will ignore the alternative, but simply order the representing intersection

Parameters

oi – is the source intersection for comparison

inline bool operator>(const ObjectIntersection<object_t, representation_t> &oi) const

Greater operator for ordering & sorting.

This operator will ignore the alternative, but simply order the representing intersection

Parameters

oi – is the source intersection for comparison

inline void swapSolutions()

Allow swapping the intersection and the alternative.

Public Members

Intersection3D alternative = {}

The alternative intersections.

Intersection3D intersection = {}

The intersection itself.

const object_t *object = {nullptr}

The object that was (tried to be) intersected.

const representation_t *representation = {nullptr}

The representation of this object.