File failed to load: https://isis.astrogeology.usgs.gov/9.0.0/Object/assets/jax/output/NativeMML/config.js
Isis 3 Programmer Reference
EmbreeTargetManager.h
1#ifndef EmbreeTargetManager_h
2#define EmbreeTargetManager_h
7
8/* SPDX-License-Identifier: CC0-1.0 */
9
10#include <QMap>
11
12#include "EmbreeTargetShape.h"
13
14namespace Isis {
15
38 public:
40
41 EmbreeTargetShape *create(const QString &shapeFile);
42 void free(const QString &shapeFile);
43
44 int currentCacheSize() const;
45 int maxCacheSize() const;
46 bool inCache(const QString &shapeFile) const;
47 void setMaxCacheSize(const int &numShapes);
48
49 private:
50 // This factory is a singleton, so the constructor and destructor are private.
51 // To get an instance of this class use the static getInstance() method.
54
55 // This method deletes the singleton factory when QT exits
56 static void DieAtExit();
57
70 : m_fullFilePath(""),
72 m_referenceCount(0) { }
73
80 EmbreeTargetShapeContainer(const QString &fullPath,
81 EmbreeTargetShape *targetShape)
82 : m_fullFilePath(fullPath),
83 m_targetShape(targetShape),
84 m_referenceCount(0) { }
85
86 QString m_fullFilePath;
91 };
92
93 QString fullFilePath(const QString &filePath) const;
94 void removeTargetShape(const QString &shapeFile);
95
100 };
101
102};
103
104#endif
int maxCacheSize() const
Return the maximum number of stored EmbreeTargetShapes.
void removeTargetShape(const QString &shapeFile)
Method for removing an EmbreeTargetShape from the internal cache.
EmbreeTargetShape * create(const QString &shapeFile)
Get a pointer to an EmbreeTargetShape containing the information from a shape file.
static void DieAtExit()
Exit termination routine.
EmbreeTargetManager()
This constructor will initialize the EmbreeTargetManager object to default values.
QString fullFilePath(const QString &filePath) const
Helper function that takes a file path and returns the full file path.
bool inCache(const QString &shapeFile) const
Check if there is an already created EmbreeTargetShape for a file.
void free(const QString &shapeFile)
Notify the manager that an EmbreeTargetShape is no longer in use.
int m_maxCacheSize
!< The cache of created target shapes.
void setMaxCacheSize(const int &numShapes)
Set the maximum number of stored EmbreeTargetShapes.
static EmbreeTargetManager * getInstance()
Retrieve reference to Singleton instance of this object.
int currentCacheSize() const
Return the number of currently stored EmbreeTargetShapes.
static EmbreeTargetManager * m_maker
Initialize the singleton factory pointer.
QMap< QString, EmbreeTargetShapeContainer > m_targeCache
!< Pointer to the singleton factory.
~EmbreeTargetManager()
Destructor that frees all of the EmbreeTargetShapes managed by this object.
Embree Target Shape for planetary bodies.
This is free and unencumbered software released into the public domain.
This is free and unencumbered software released into the public domain.
Definition Apollo.h:16
EmbreeTargetShape * m_targetShape
!< The full path to the file used to construct the EmbreeTargetShape.
EmbreeTargetShapeContainer(const QString &fullPath, EmbreeTargetShape *targetShape)
Constructs a container for a target shape and path.