2023-11-24 20:19:42 -05:00
|
|
|
#ifndef MODEL_INSTANCE_HPP
|
|
|
|
#define MODEL_INSTANCE_HPP
|
|
|
|
|
|
|
|
#include "mesh.hpp"
|
|
|
|
#include "renderable.hpp"
|
|
|
|
#include <tonc.h>
|
|
|
|
|
2023-11-26 18:09:41 -05:00
|
|
|
class ModelInstance : public Renderable {
|
2023-11-24 20:19:42 -05:00
|
|
|
private:
|
2023-11-26 18:09:41 -05:00
|
|
|
std::shared_ptr<Mesh> m_mesh;
|
2023-11-24 20:19:42 -05:00
|
|
|
FIXED m_scale;
|
2023-11-26 18:09:41 -05:00
|
|
|
VECTOR m_rot; // though technically "FIXED"'s, these are simply s32's
|
|
|
|
// where [0, 2pi] -> [0, 0xFFFF] in the x,y,z axes
|
2023-11-24 20:19:42 -05:00
|
|
|
VECTOR m_pos;
|
|
|
|
|
2023-11-25 19:05:01 -05:00
|
|
|
public:
|
2023-11-26 18:09:41 -05:00
|
|
|
ModelInstance(std::shared_ptr<Mesh> mesh, FIXED scale, VECTOR m_rotation,
|
|
|
|
VECTOR m_pos);
|
|
|
|
virtual void render(std::shared_ptr<Scene> scene_context);
|
2023-11-24 20:19:42 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // MODEL_INSTANCE_HPP
|