FAST  3.2.0
Framework for Heterogeneous Medical Image Computing and Visualization
BoundingBoxSetAccess.hpp
Go to the documentation of this file.
1 #pragma once
2 
4 #include <FAST/Object.hpp>
5 #include <vector>
7 
8 #if defined(__APPLE__) || defined(__MACOSX)
9 #include <OpenGL/OpenGL.h>
10 #else
11 #include <GL/gl.h>
12 #endif
13 
14 
15 namespace fast {
16 
17 class BoundingBox;
18 class BoundingBoxSet;
19 
20 class FAST_EXPORT BoundingBoxSetAccess {
21  public:
23  std::vector<float>* coordinates,
24  std::vector<uint>* lines,
25  std::vector<uchar>* labels,
26  std::vector<float>* scores,
27  std::shared_ptr<BoundingBoxSet> bbset
28  );
29  void addBoundingBox(std::shared_ptr<BoundingBox> box);
30  void addBoundingBox(Vector2f position, Vector2f size, uchar label, float score);
31  std::vector<float> getCoordinates() const;
32  std::vector<uint> getLines() const;
33  std::vector<uchar> getLabels() const;
34  std::vector<float> getScores() const;
35  void addBoundingBoxes(std::vector<float> coordinates, std::vector<uint> lines, std::vector<uchar> labels, std::vector<float> scores);
36  void release();
38  typedef std::unique_ptr<BoundingBoxSetAccess> pointer;
40  protected:
41  std::vector<float>* m_coordinates;
42  std::vector<uint>* m_lines;
43  std::vector<uchar>* m_labels;
44  std::vector<float>* m_scores;
45  std::shared_ptr<BoundingBoxSet> m_bbset;
46  bool m_released = false;
47 };
48 
49 class FAST_EXPORT BoundingBoxSetOpenGLAccess {
50  public:
51  BoundingBoxSetOpenGLAccess(GLuint m_coordinatesVBO, GLuint m_linesEBO, GLuint m_labels, std::shared_ptr<BoundingBoxSet> bbset);
52  GLuint getCoordinateVBO() const;
53  GLuint getLinesEBO() const;
54  GLuint getLabelVBO() const;
55  void release();
57  typedef std::unique_ptr<BoundingBoxSetOpenGLAccess> pointer;
59  protected:
60  GLuint m_coordinatesVBO, m_linesEBO, m_labelVBO;
61  bool m_released = false;
62  std::shared_ptr<BoundingBoxSet> m_bbset;
63 };
64 
65 }
Object.hpp
fast::BoundingBoxSetOpenGLAccess
Definition: BoundingBoxSetAccess.hpp:49
fast::BoundingBoxSetAccess::m_coordinates
std::vector< float > * m_coordinates
Definition: BoundingBoxSetAccess.hpp:41
fast
Definition: AffineTransformation.hpp:7
fast::BoundingBoxSetOpenGLAccess::m_linesEBO
GLuint m_linesEBO
Definition: BoundingBoxSetAccess.hpp:60
fast::BoundingBoxSetAccess::m_lines
std::vector< uint > * m_lines
Definition: BoundingBoxSetAccess.hpp:42
fast::BoundingBoxSetAccess::m_bbset
std::shared_ptr< BoundingBoxSet > m_bbset
Definition: BoundingBoxSetAccess.hpp:45
Access.hpp
fast::BoundingBoxSetAccess::m_labels
std::vector< uchar > * m_labels
Definition: BoundingBoxSetAccess.hpp:43
fast::BoundingBoxSetAccess
Definition: BoundingBoxSetAccess.hpp:20
fast::BoundingBoxSetAccess::pointer
std::unique_ptr< BoundingBoxSetAccess > pointer
Definition: BoundingBoxSetAccess.hpp:38
DataTypes.hpp
fast::BoundingBoxSetOpenGLAccess::m_bbset
std::shared_ptr< BoundingBoxSet > m_bbset
Definition: BoundingBoxSetAccess.hpp:62
uchar
unsigned char uchar
Definition: DataTypes.hpp:14
fast::BoundingBoxSetAccess::m_scores
std::vector< float > * m_scores
Definition: BoundingBoxSetAccess.hpp:44
fast::BoundingBoxSetOpenGLAccess::pointer
std::unique_ptr< BoundingBoxSetOpenGLAccess > pointer
Definition: BoundingBoxSetAccess.hpp:57