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
/*
* @author: Gustavo Lopez 10-21-17
*
* @version: 1.0
*/

#pragma once

#include <vector>
#include <memory>
#include <string>
#include <ostream>

class Brenderable;

class BrenderManager
{
private:
	static bool instanceFlag;
	static BrenderManager *manager;
	int frame;
	std::string EXPORT_DIR;
	std::vector<std::shared_ptr<Brenderable> > brenderables;
	BrenderManager()
	{
		//private constructor
		EXPORT_DIR = ".";
		frame = 0;
	}
public:
	static BrenderManager* getInstance();
	void setExportDir(std::string export_dir);
	int getFrame() const;
	void exportBrender(double time = 0.0);
	void add(std::shared_ptr<Brenderable> brenderable);
	~BrenderManager()
	{
		instanceFlag = false;
	}
};