VisibilityCheck.h File Reference
#include <array>
#include <optional>
#include <vector>
#include <Eigen/Core>
#include <Eigen/Geometry>
+ Include dependency graph for VisibilityCheck.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Box
 An oriented bounding box in the global frame. More...
 
struct  Frustum
 A symmetric view frustum. More...
 

Namespaces

namespace  armarx
 This file offers overloads of toIce() and fromIce() functions for STL container types.
 
namespace  armarx::fake_object_detector
 Geometric primitives for the fake object detector.
 
namespace  ArmarXSimulation
 This file is part of ArmarX.
 

Enumerations

enum class  DetectionMode { Always , FieldOfView , LineOfSight }
 How strictly an object must be perceivable before it is reported. More...
 

Functions

Eigen::Vector3f faceCenter (const Box &box, int faceIndex)
 Centre of faceIndex in global coordinates.
 
Eigen::Vector3f faceNormal (const Box &box, int faceIndex)
 Outward unit normal of faceIndex in global coordinates.
 
int frontFaceIndex (const Frustum &frustum, const Box &box)
 The face of box that points most directly at the camera - the "front facing side" of the bounding box.
 
std::optional< floatintersectRayBox (const Eigen::Vector3f &origin, const Eigen::Vector3f &unitDirection, const Box &box)
 Intersect a ray with an oriented box using the slab method.
 
bool isInFieldOfView (const Frustum &frustum, const Box &box, bool requireFullyInside)
 Whether box is inside the camera frustum.
 
std::vector< Eigen::Vector3f > sampleFace (const Box &box, int faceIndex, int gridN)
 A gridN x gridN grid of sample points spread over faceIndex, in global coordinates.
 
float visibleFraction (const Frustum &frustum, const Box &target, const std::vector< Box > &occluders, int gridN, float epsilon)
 The fraction of sample points on the front face of target that the camera can see.