INET Framework for OMNeT++/OMNEST
inet::BVHTree::AxisComparator Struct Reference

#include <BVHTree.h>

Public Member Functions

 AxisComparator (char axis)
 
bool operator() (const IPhysicalObject *left, const IPhysicalObject *right) const
 

Public Attributes

char axis
 

Constructor & Destructor Documentation

inet::BVHTree::AxisComparator::AxisComparator ( char  axis)
inline
67 : axis(axis) {}
char axis
Definition: BVHTree.h:66

Member Function Documentation

bool inet::BVHTree::AxisComparator::operator() ( const IPhysicalObject left,
const IPhysicalObject right 
) const
inline
69  {
70  Coord leftPos = left->getPosition() + left->getShape()->computeBoundingBoxSize() / 2;
71  Coord rightPos = right->getPosition() + right->getShape()->computeBoundingBoxSize() / 2;
72  switch (axis)
73  {
74  case 'X': return leftPos.x < rightPos.x;
75  case 'Y': return leftPos.y < rightPos.y;
76  case 'Z': return leftPos.z < rightPos.z;
77  default: throw cRuntimeError("Unknown axis");
78  }
79  }
char axis
Definition: BVHTree.h:66
virtual Coord computeBoundingBoxSize() const =0
Computes the 3 dimensional size of the shapes&#39;s bounding box.
virtual const Coord & getPosition() const =0
virtual const ShapeBase * getShape() const =0
double x
Definition: Coord.h:49

Member Data Documentation

char inet::BVHTree::AxisComparator::axis

The documentation for this struct was generated from the following file: