forked from nlichtenberg/OpenGL_Framework
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathProteinLoader.h
More file actions
53 lines (41 loc) · 1.68 KB
/
ProteinLoader.h
File metadata and controls
53 lines (41 loc) · 1.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
//============================================================================
// Distributed under the MIT License. Author: Adrian Derstroff
//============================================================================
#ifndef OPENGL_FRAMEWORK_PROTEINLOADER_H
#define OPENGL_FRAMEWORK_PROTEINLOADER_H
#define FLOAT_MIN std::numeric_limits<float>::min()
#define FLOAT_MAX std::numeric_limits<float>::max()
// standard includes
#include <limits>
// framework includes
#include "Molecule/MDtrajLoader/MdTraj/MdTrajWrapper.h"
#include "Utils/Logger.h"
// project specific includes
#include "SimpleProtein.h"
class ProteinLoader {
public:
//__________________PUBLIC__________________//
//_____________________________________//
// CONSTRUCTOR //
//_____________________________________//
ProteinLoader();
~ProteinLoader();
int getNumberOfProteins();
std::vector<SimpleProtein*> getProteins();
SimpleProtein* getProteinAt(int i);
std::vector<SimpleAtom> getAllAtoms();
void updateAtoms();
int getNumberOfAllAtoms();
void getBoundingBoxAroundProteins(glm::vec3& min, glm::vec3& max);
void getCenteredBoundingBoxAroundProteins(glm::vec3& min, glm::vec3& max);
//_____________________________________//
// METHODS //
//_____________________________________//
SimpleProtein* loadProtein(std::string fileName);
void loadPDB(std::string filePath, SimpleProtein &protein, glm::vec3 &minPosition, glm::vec3 &maxPosition);
private:
std::vector<SimpleProtein*> m_proteins;
std::vector<SimpleAtom> m_allAtoms;
float m_currentProteinIdx;
};
#endif //OPENGL_FRAMEWORK_PROTEINLOADER_H