8 Color default_src_color = { 255, 255, 255, 255 };
9 Color src_color = { 255, 255, 255, 255 };
11 Color default_dest_color = { 255, 255, 255, 255 };
12 Color dest_color = { 255, 255, 255, 255 };
25 void init()
override {
28 void update(
float deltaTime)
override {
34 glm::vec3 fromNodeCenter = entity->getFromNode()->GetComponent<
TransformComponent>().getCenterTransform();
35 glm::vec3 toNodeCenter = entity->getToNode()->GetComponent<
TransformComponent>().getCenterTransform();
37 batch.drawLine(v_index, fromNodeCenter, toNodeCenter, src_color, dest_color);
43 if (entity->fromPort < 0 || entity->toPort < 0) {
44 TazGraphEngine::ConsoleLogger::error(
"Ports are not assigned!");
51 Entity* fromPortEntity = fromNode->children[entity->fromPort];
52 Entity* toPortEntity = toNode->children[entity->toPort];
56 if ((entity->fromSlotIndex >= fromPortComp.portSlots.size())
57 || (entity->toSlotIndex >= toPortComp.portSlots.size())) {
60 glm::vec3 fromConnectionPoint = fromPortComp.portSlots[entity->fromSlotIndex]->GetComponent<
TransformComponent>().getCenterTransform();
61 glm::vec3 toConnectionPoint = toPortComp.portSlots[entity->toSlotIndex]->GetComponent<
TransformComponent>().getCenterTransform();
63 batch.drawLine(v_index, fromConnectionPoint, toConnectionPoint, src_color, dest_color);
66 void setSrcColor(
Color clr) {
67 default_src_color = clr;
71 void setDestColor(
Color clr) {
72 default_dest_color = clr;
76 void SetFlashAnimation(
int idX,
int idY,
size_t fr,
float sp,
const Animation::animType type,
const std::vector<float>& flashTimes,
Color flashC,
int reps = 0)
78 flash_animation =
FlashAnimation(idX, idY, fr, sp, type, flashTimes, flashC, reps);
81 void setFlashFrame() {
82 float t = this->flash_animation.interpolation_a;
85 this->src_color = Color::fromVec4(glm::mix(default_src_color.toVec4(), this->flash_animation.flashColor.toVec4(), 3 * t));
88 this->src_color = Color::fromVec4(glm::mix(this->flash_animation.flashColor.toVec4(), default_src_color.toVec4(), std::min((3 * (t - 0.33f)), 1.0f)));
89 this->dest_color = Color::fromVec4(glm::mix(default_dest_color.toVec4(), this->flash_animation.flashColor.toVec4(), 3 * (t - 0.33f)));
92 this->dest_color = Color::fromVec4(glm::mix(this->flash_animation.flashColor.toVec4(), default_dest_color.toVec4(), std::min((3 * (t - 0.66f)), 1.0f)));
98 std::string GetComponentName()
override {
99 return "Line_w_Color";
102 void showGUI()
override {
105 ImVec4 a_color = ImVec4(src_color.r / 255.0f, src_color.g / 255.0f, src_color.b / 255.0f, src_color.a / 255.0f);
106 if (ImGui::ColorPicker4(
"Color Line Src", (
float*)&a_color)) {
108 (GLubyte)(a_color.x * 255),
109 (GLubyte)(a_color.y * 255),
110 (GLubyte)(a_color.z * 255),
111 (GLubyte)(a_color.w * 255)
114 setSrcColor(newColor);
118 ImVec4 b_color = ImVec4(dest_color.r / 255.0f, dest_color.g / 255.0f, dest_color.b / 255.0f, dest_color.a / 255.0f);
119 if (ImGui::ColorPicker4(
"Color Line Dest", (
float*)&b_color)) {
121 (GLubyte)(b_color.x * 255),
122 (GLubyte)(b_color.y * 255),
123 (GLubyte)(b_color.z * 255),
124 (GLubyte)(b_color.w * 255)
127 setDestColor(newColor);