#ifndef O3D_TRI_VERTEX_H #define O3D_TRI_VERTEX_H #include #include "o3d/vertex.h" #include "o3d/deriv_vertex.h" namespace engine::o3d { struct TriangleDerived { DerivedVertex derived_vertex1; DerivedVertex derived_vertex2; DerivedVertex derived_vertex3; std::vector perspective_crop_xy_out(float x1, float x2, float y1, float y2) const; std::vector crop_z_out(float z1, float z2) const; constexpr TriangleDerived div_by_w() const & { return {derived_vertex1.div_by_w(), derived_vertex2.div_by_w(), derived_vertex3.div_by_w()}; } }; } #endif // O3D_TRI_VERTEX_H