#pragma once #include "math/dvc_vector3.h" struct Triangle { public: davinci::fVector3 p0, p1, p2; davinci::fVector3 pixelColor; std::vector< std::pair > pixels; public: Triangle(){} Triangle(const davinci::fVector3& _p0, const davinci::fVector3& _p1, const davinci::fVector3& _p2) : p0(_p0), p1(_p1), p2(_p2) { } Triangle(const Triangle& other) : p0(other.p0), p1(other.p1), p2(other.p2), pixelColor(other.pixelColor), pixels(other.pixels) {} public: void build(const davinci::fVector3& _pixelColor, int32_t canvasWidth, int32_t canvasHeight, bool debug = false); }; typedef std::vector TriangleVector;