le2d v0.4.7
2D game engine framework
 
Loading...
Searching...
No Matches
triangle.hpp
Go to the documentation of this file.
1#pragma once
2#include "le2d/geometry.hpp"
3#include <kvf/color.hpp>
4#include <kvf/rect.hpp>
5#include <array>
6
7namespace le::shape {
9class Triangle : public IGeometry {
10 public:
11 static constexpr auto vertex_count_v{4uz};
12
13 static constexpr auto default_radius_v = 0.5f * default_length_v;
14
15 explicit(false) Triangle(float const radius = default_radius_v, kvf::Color const color = kvf::white_v) { create(radius, color); }
16
17 [[nodiscard]] auto get_vertices() const -> std::span<Vertex const> final { return vertices; }
18 [[nodiscard]] auto get_indices() const -> std::span<std::uint32_t const> final { return {}; }
19 [[nodiscard]] auto get_topology() const -> vk::PrimitiveTopology final { return vk::PrimitiveTopology::eTriangleList; }
20
21 void create(float radius = default_radius_v, kvf::Color color = kvf::white_v);
22
23 std::array<Vertex, vertex_count_v> vertices{};
24};
25} // namespace le::shape
Interface for drawable geometry.
Definition geometry.hpp:9
virtual auto get_vertices() const -> std::span< Vertex const >=0
static constexpr auto default_length_v
Definition geometry.hpp:11
virtual auto get_indices() const -> std::span< std::uint32_t const >=0
virtual auto get_topology() const -> vk::PrimitiveTopology=0
Triangle Geometry.
Definition triangle.hpp:9
static constexpr auto vertex_count_v
Definition triangle.hpp:11
kvf::Color const color
Definition triangle.hpp:15
std::array< Vertex, vertex_count_v > vertices
Definition triangle.hpp:23
static constexpr auto default_radius_v
Definition triangle.hpp:13
Definition circle.hpp:7
Drawable vertex.
Definition vertex.hpp:7