Isis 3 Programmer Reference
BulletAllHitsRayCallback.h
1#ifndef BulletAllHitsRayCallback_h
2#define BulletAllHitsRayCallback_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <QScopedPointer>
11#include <QString>
12#include <QVector>
13
14
15#include "BulletClosestRayCallback.h"
16#include "Constants.h"
17#include "IException.h"
18#include "SurfacePoint.h"
19
20namespace Isis {
21
22
30 class BulletAllHitsRayCallback : public btCollisionWorld::AllHitsRayResultCallback {
31 public:
33 BulletAllHitsRayCallback(const btVector3 &observer, const btVector3 &lookdir,
34 const bool cullBackfacers = true);
36
37 bool isValid() const;
38 int size() const;
39
40 btVector3 observer() const;
41 btVector3 lookdir() const;
42
43 const BulletClosestRayCallback &hit(const int &index = 0) const;
44
45 protected:
46 QVector<BulletClosestRayCallback> m_rayHits;
47
48 virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult &rayResult,
49 bool normalInWorldSpace);
50 };
51
52} // namespace Isis
53
54#endif
55
Bullet ray tracing callback to return all intersections along a ray's path.
const BulletClosestRayCallback & hit(const int &index=0) const
Return a callback for the intersection at a given index.
QVector< BulletClosestRayCallback > m_rayHits
List of ray hits.
btVector3 observer() const
Return the beginning of the ray.
virtual ~BulletAllHitsRayCallback()
Destroy this callback.
virtual btScalar addSingleResult(btCollisionWorld::LocalRayResult &rayResult, bool normalInWorldSpace)
Add a local intersection result to this callback during ray casting.
bool isValid() const
Checks if the callback is valid/has a valid intersection.
int size() const
Returns the number of intersections found.
btVector3 lookdir() const
Return the end of the ray.
Bullet ray tracing callback for closest hit on target surface.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16