Editing the modelimporter to allow to create scene graphs
This commit is contained in:
		
							
								
								
									
										21
									
								
								BarinkEngine/Include/Scene/Node.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								BarinkEngine/Include/Scene/Node.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <vector>
 | 
			
		||||
#include "Graphics/Transform.h"
 | 
			
		||||
 | 
			
		||||
class Node {
 | 
			
		||||
	public:
 | 
			
		||||
		std::string& name;
 | 
			
		||||
		Node* parent;
 | 
			
		||||
		std::vector<Node*> children;
 | 
			
		||||
 | 
			
		||||
		void addChild(Node& node);
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class Group : Node {
 | 
			
		||||
	Transform& transform;
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										14
									
								
								BarinkEngine/Include/Scene/SceneBuilder.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								BarinkEngine/Include/Scene/SceneBuilder.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,14 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include "Graphics/Renderable.h"
 | 
			
		||||
#include "Scene/SceneNodeTypes.h"
 | 
			
		||||
 | 
			
		||||
#include <glm/glm.hpp>
 | 
			
		||||
/*
 | 
			
		||||
* Define a helper class to more easily build a proper scene 
 | 
			
		||||
*/
 | 
			
		||||
static class SceneBuilder {
 | 
			
		||||
 | 
			
		||||
	static Group* AddGroup(std::string name);
 | 
			
		||||
	static SceneObject* AddVisual(std::string name, Renderable& object, glm::vec3 position );
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										15
									
								
								BarinkEngine/Include/Scene/SceneManager.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								BarinkEngine/Include/Scene/SceneManager.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,15 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include <string>
 | 
			
		||||
#include <map>
 | 
			
		||||
#include "Scene.h"
 | 
			
		||||
static class SceneManager {
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
	static Scene* CreateScene();
 | 
			
		||||
	static Scene& GetScene(std::string name);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	static std::map<std::string , Scene*> 
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										21
									
								
								BarinkEngine/Include/Scene/SceneNodeTypes.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								BarinkEngine/Include/Scene/SceneNodeTypes.h
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,21 @@
 | 
			
		||||
#pragma once
 | 
			
		||||
#include "Graphics/Camera.h"
 | 
			
		||||
#include "Graphics/Renderable.h"
 | 
			
		||||
#include "Scene/Node.h"
 | 
			
		||||
 | 
			
		||||
class SceneCamera : Group 
 | 
			
		||||
{
 | 
			
		||||
	Camera& camera;
 | 
			
		||||
	 
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class SceneObject : Group
 | 
			
		||||
{
 | 
			
		||||
	Renderable& renderable;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
		Reference in New Issue
	
	Block a user