From cc6fb8c33637566a7b116d46440e6063f016deea Mon Sep 17 00:00:00 2001 From: vimene Date: Tue, 31 Dec 2024 03:40:14 +0100 Subject: various improvements - added quaternions and rewrote all rotations to use them - added transforms to put all object transforms in a single place - added Wavefront .obj file parser - removed frame buffer's abstract class - improved vectors, matrices, triangles, vertices and vertices data by putting all code in header file - added vector's operations - changed from NULL to nullptr - miscellaneous improvements --- src/fb/chfb.h | 26 ++++++++++++++++++-------- 1 file changed, 18 insertions(+), 8 deletions(-) (limited to 'src/fb/chfb.h') diff --git a/src/fb/chfb.h b/src/fb/chfb.h index 280f6d8..7c786fc 100644 --- a/src/fb/chfb.h +++ b/src/fb/chfb.h @@ -2,25 +2,35 @@ #define FB_CHFB_H #include -#include "fb/fb.h" +#include "math/vector.h" +#include "o3d/vertex_data.h" namespace engine::fb { -class CharacterFrameBuffer : public FrameBuffer { +using engine::math::Vector3, engine::o3d::VertexData; + +class CharacterFrameBuffer { public: CharacterFrameBuffer(unsigned int w, unsigned int h); void resize(unsigned int w, unsigned int h); - unsigned int width() const; - unsigned int height() const; - const char* chars() const; void clear(); - void draw_point(int x, int y, engine::math::Vector3 loc, const engine::o3d::VertexData& vd); + void draw_point(int x, int y, const engine::math::Vector3& loc, const engine::o3d::VertexData& vd, const engine::math::Vector3& normal); + + constexpr unsigned int width() const & { + return w; + } + + constexpr unsigned int height() const & { + return h; + } + + constexpr const char* chars() const & { + return chars_vector.data(); + } private: unsigned int w, h; std::vector chars_vector; - - char face_char(int face_inf) const; }; } -- cgit v1.2.3