TazGraph Project v0.1.0
Loading...
Searching...
No Matches
SphereComponent.h
1#pragma once
2
3#include "../../../Components.h"
4
5class SphereComponent : public Component
6{
7public:
8 TazColor color = { 255, 255, 255, 255 };
9
10 TransformComponent* transform = nullptr;
11
13 {
14
15 }
16
17
19
20 }
21
22 void init() override {
23 transform = &entity->GetComponent<TransformComponent>();
24 }
25
26 void update(float deltaTime) override {
27 }
28
29 void draw(size_t v_index, PlaneColorRenderer& batch, TazGraphEngine::Window& window) {
30 batch.drawSphere(v_index, transform->size, transform->getPosition(), transform->rotation, color);
31 }
32
33 void draw(size_t v_index, LightRenderer& batch, TazGraphEngine::Window& window) {
34 batch.drawSphere(v_index, transform->size, transform->getPosition(), transform->rotation, color);
35 }
36
37 void draw(size_t v_index, LineRenderer& batch, TazGraphEngine::Window& window) {
38 batch.drawSphere(v_index, transform->size, transform->getPosition(), color, transform->rotation, 2.0f);
39 }
40
41 std::string GetComponentName() override {
42 return "SphereComponent";
43 }
44
45 void showGUI(std::vector<BaseComponent*> otherComponents = {}) override {
46 showGUI(otherComponents, { entity });
47 }
48
49 void showGUI(std::vector<BaseComponent*> otherComponents, std::vector<Entity*> otherEntities) override {
50 ImGui::Separator();
51
52 ImVec4 a_color = ImVec4(color.r / 255.0f, color.g / 255.0f, color.b / 255.0f, color.a / 255.0f);
53 if (ImGui::ColorPicker4("TazColor", (float*)&a_color)) {
54 TazColor newColor = {
55 (GLubyte)(a_color.x * 255),
56 (GLubyte)(a_color.y * 255),
57 (GLubyte)(a_color.z * 255),
58 (GLubyte)(a_color.w * 255)
59 };
60
61 color = newColor;
62 }
63
64 }
65};
Definition GECS.h:131
Definition LightRenderer.h:15
Definition LineRenderer.h:6
Definition PlaneColorRenderer.h:14
Definition SphereComponent.h:6
Definition Window.h:12
Definition TransformComponent.h:7
Definition Vertex.h:44