Isis 3 Programmer Reference
BulletTargetShape.h
1#ifndef BulletTargetShape_h
2#define BulletTargetShape_h
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <QSharedPointer>
11#include <QScopedPointer>
12#include <QString>
13
14#include "IsisBullet.h"
15#include "BulletClosestRayCallback.h"
16
17namespace Isis {
18
19
20 class Pvl;
21
34 public:
36 BulletTargetShape(btCollisionObject *btbody, const QString &name = "");
37 virtual ~BulletTargetShape();
38
39 QString name() const;
40
41 // Special constructors
42 static BulletTargetShape *load(const QString &dem, const Pvl *conf = 0);
43 static BulletTargetShape *loadPC(const QString &dem, const Pvl *conf = 0);
44 static BulletTargetShape *loadDSK(const QString &dem, const Pvl *conf = 0);
45 static BulletTargetShape *loadCube(const QString &dem, const Pvl *conf = 0);
46
47 void writeBullet(const QString &btName) const;
48 btCollisionObject *body() const;
49
50 btScalar maximumDistance() const;
51
52 protected:
53 void setTargetBody(btCollisionObject *body);
54 void setMaximumDistance();
55
56 private:
57 QString m_name;
58 QSharedPointer<btCollisionObject> m_btbody;
64 };
65
66} // namespace Isis
67
68#endif
69
Bullet Target Shape for planetary bodies.
static BulletTargetShape * loadCube(const QString &dem, const Pvl *conf=0)
Load an ISIS cube type DEM in Bullet.
void setTargetBody(btCollisionObject *body)
Set the Bullet shape object to this object instance
static BulletTargetShape * loadDSK(const QString &dem, const Pvl *conf=0)
Load a DSK in Bullet.
btScalar m_maximumDistance
! The Bullet collision object for the body
btCollisionObject * body() const
Return a pointer to the Bullet target object/shape.
static BulletTargetShape * loadPC(const QString &dem, const Pvl *conf=0)
Load a point cloud type DEM in Bullet.
QSharedPointer< btCollisionObject > m_btbody
! The name of the body
void writeBullet(const QString &btName) const
Write a serialized version of the target shape to a Bullet file.
static BulletTargetShape * load(const QString &dem, const Pvl *conf=0)
Load a DEM file into the target shape.
QString name() const
Return name of the target shape.
void setMaximumDistance()
Calculate and save the maximum distance across the body.
BulletTargetShape()
Default empty constructor.
virtual ~BulletTargetShape()
Desctructor.
Container for cube-like labels.
Definition Pvl.h:119
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16