I'm quite sure I'm not creating a pure 'Object' variable. I am declaring a vector consisting of Objects though, but I believe that should be legal even though 'Object' it is a abstract class/struct?
Header file:
#pragma once
#include <glm/glm.hpp>
#include "Collider.h"
#include "Renderer.h"
struct Object
{
public:
float mass = 10;
float Resititution = 0.7;
glm::vec2 velocity;
glm::vec2 force = glm::vec2(0, 0);
bool isDynamic = true;
bool isKinematic = true;
Collider* collider;
Transform* transform;
virtual void submitToRenderer(Renderer* renderer) const = 0;
};
struct SphereObj : Object
{
void submitToRenderer(Renderer* renderer) const override;
};
struct PlaneObj : Object
{
void submitToRenderer(Renderer* renderer) const override;
};
cpp file:
#include "Object.h"
void SphereObj::submitToRenderer(Renderer* renderer) const
{
renderer->submitObject(this);
}
void PlaneObj::submitToRenderer(Renderer* renderer) const
{
renderer->submitObject(this);
}
in main()
std::vector<Object> objList;
in another file:
std::vector<Object*> m_objects;