9 Color color = { 255, 255, 255, 255 };
11 bool isVertical =
false;
13 std::vector<EmptyEntity*> portSlots;
14 float slotSpacing = 0.0f;
24 isVertical = m_isVertical;
31 void init()
override {
35 void update(
float deltaTime)
override {
36 transform->size.x = entity->getParentEntity()->GetComponent<
TransformComponent>().size.x;
37 transform->size.y = entity->getParentEntity()->GetComponent<
TransformComponent>().size.y;
40 if (portSlots.size() > 1)
41 slotSpacing = transform->size.x / (portSlots.size());
43 slotSpacing = transform->size.x;
46 if (portSlots.size() > 1)
47 slotSpacing = transform->size.y / (portSlots.size());
49 slotSpacing = transform->size.y;
56 batch.
draw(v_index, size, transform->bodyCenter, transform->rotation, color);
59 std::string GetComponentName()
override {
60 return "PortComponent";
63 void showGUI()
override {
66 ImVec4 a_color = ImVec4(color.r / 255.0f, color.g / 255.0f, color.b / 255.0f, color.a / 255.0f);
67 if (ImGui::ColorPicker4(
"Color", (
float*)&a_color)) {
69 (GLubyte)(a_color.x * 255),
70 (GLubyte)(a_color.y * 255),
71 (GLubyte)(a_color.z * 255),
72 (GLubyte)(a_color.w * 255)
80 glm::vec3 getSlotPosition(
size_t slotIndex)
const {
81 if (slotIndex >= portSlots.size()) {
82 TazGraphEngine::ConsoleLogger::error(
"Port Slot index wrong");
83 return transform->bodyCenter;
86 glm::vec3 basePos = transform->bodyCenter;
87 glm::vec3 offset(0.0f);
90 offset.x = (
static_cast<float>(slotIndex) - (portSlots.size() - 1) / 2.0f) * slotSpacing;
93 offset.y = (
static_cast<float>(slotIndex) - (portSlots.size() - 1) / 2.0f) * slotSpacing;
96 return basePos + offset;
101 for (
size_t i = 0; i < portSlots.size(); ++i) {
102 if (portSlots[i] == slot) {
103 return static_cast<int>(i);
void draw(size_t v_index, const glm::vec2 &rectSize, const glm::vec3 &bodyCenter, const glm::vec3 &mRotation, const Color &color)
draws are needed to convert the pos and size to vertices
Definition PlaneColorRenderer.cpp:72