From 7895d874f5ad91e923e4642663f5c0022910aab9 Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Mon, 12 Oct 2020 10:57:33 +0200 Subject: [PATCH] Done --- Makefile | 8 + example | Bin 0 -> 318584 bytes example.c | 469 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ scout.c | 80 +++++++--- scout.h | 25 ++- 5 files changed, 551 insertions(+), 31 deletions(-) create mode 100644 Makefile create mode 100755 example create mode 100644 example.c diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..8224f17 --- /dev/null +++ b/Makefile @@ -0,0 +1,8 @@ +libscout.so: scout.c + cc scout.c -g -o libscout.so -shared -Wall -Wextra -Wpedantic -D__LIBSCOUT_INTERNAL__ -D__LIBSCOUT_TYPEDEF__ +example: example.c libscout.so + cc example.c -g -o example -lGL -lglfw -lGLEW -lm -lscout -L. -Wl,-rpath,`pwd` -Wall -Wextra -Wpedantic -D__LIBSCOUT_TYPEDEF__ +all: libscout.so example +install: libscout.so + mv libscout.so /usr/lib/ + mv scout.h /usr/include/ diff --git a/example b/example new file mode 100755 index 0000000000000000000000000000000000000000..7fa9bf867cafcae5c17cba9e4a60d0c2e58b26fc GIT binary patch literal 318584 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 literal 0 HcmV?d00001 diff --git a/example.c b/example.c new file mode 100644 index 0000000..73f6310 --- /dev/null +++ b/example.c @@ -0,0 +1,469 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include "scout.h" + +#define error(...) {fprintf(stderr, __VA_ARGS__); abort();} + +#define UNUSED(x) (void)(x) + +#define VERTSHDSRC_COMMON "" \ + "uniform float screenRatio;" \ + "vec2 nodePosNDC(vec2 p)" \ + "{" \ + " return (p * 2 - vec2(1.0)) * vec2(1.0, -1.0);" \ + "}" \ + "vec2 scalePercent(vec2 p, float perc)" \ + "{" \ + " return p * vec2(1.0, screenRatio) / 100 * perc;" \ + "}" + +#define VERTSHDSRC_NODES "#version 330 core\n" \ + "layout(location = 0) in vec2 vertexCoord;" \ + "uniform vec2 nodePos;" \ + "uniform bool nodeSelected;" \ + VERTSHDSRC_COMMON \ + "void main()" \ + "{" \ + " vec2 pos = nodePosNDC(nodePos) + scalePercent(vertexCoord, nodeSelected ? 7.5 : 5.0);" \ + " gl_Position = vec4(pos, 0.0, 1.0);" \ + "}" + + +#define FRAGSHDSRC_NODES "#version 330 core\n" \ + "uniform bool nodeSelected;" \ + "void main()" \ + "{" \ + " gl_FragColor = vec4(nodeSelected ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0), 1.0);" \ + "}" + +#define VERTSHDSRC_WAYS "#version 330 core\n" \ + "layout(location = 0) in vec2 vertexCoord;" \ + "out float progress;" \ + "uniform vec2 wayPos;" \ + "uniform float wayLength;" \ + "uniform vec2 way;" \ + VERTSHDSRC_COMMON \ + "void main()" \ + "{" \ + " progress = (vertexCoord.x + 0.5) * wayLength;" \ + " vec2 w = normalize(way);" \ + " vec2 pos = nodePosNDC(wayPos) + mat2(w.x, -w.y, w.y, w.x) * ((vertexCoord * vec2(wayLength * 2, 0.0125)) * vec2(1.0, screenRatio));" \ + " gl_Position = vec4(pos, 0.0, 1.0);" \ + "}" + +#define FRAGSHDSRC_WAYS "#version 330 core\n" \ + "in float progress;" \ + "uniform float wayProgress;" \ + "uniform float wayLength;" \ + "void main()" \ + "{" \ + " vec3 color = vec3(1.0, 0.0, 0.0);" \ + " if (wayProgress > 0.0 && wayProgress >= progress || wayProgress < 0.0 && (wayLength + wayProgress) <= progress)" \ + " color = vec3(0.0, 0.0, 1.0);" \ + " gl_FragColor = vec4(color, 1.0);" \ + "}" + +struct { + float width, height; +} screenBounds, screenBoundsNormalized; + +struct { + float x, y; +} cursorPos; + +struct Node { + float x, y; + scnode *scnod; + bool selected; + struct Node *next; +}; + +struct Way { + float posx, posy; + float vecx, vecy; + bool done; + bool active; + scway *scway_1; + scway *scway_2; + struct Way *next; +}; + +typedef struct Node Node; +typedef struct Way Way; + +Node *nodelist = NULL; +Way *waylist = NULL; + +Node *selected_node = NULL; + +scwaypoint *currentwp = NULL; +float currentprog = 0.0; +bool unselect = false; + +GLuint screenRatio_nodes_loc, nodePos_loc, nodeSelected_loc, screenRatio_ways_loc, wayPos_loc, wayLength_loc, way_loc, wayProgress_loc; +GLuint nodes_shaders, ways_shaders; + +Node *createNode(float x, float y) +{ + Node *node = malloc(sizeof(Node)); + node->x = x; + node->y = y; + node->selected = false; + node->scnod = scnodalloc(node); + node->next = NULL; + for (Node *nptr = nodelist; nptr != NULL; nptr = nptr->next) { + if (nptr->next == NULL) { + return nptr->next = node; + } + } + return nodelist = node; +} + +Way *connectNodes(Node *from, Node *to) +{ + if (scisconnected(from->scnod, to->scnod)) + return NULL; + Way *way = malloc(sizeof(Way)); + way->posx = (from->x + to->x) / 2; + way->posy = (from->y + to->y) / 2; + way->vecx = to->x - from->x; + way->vecy = to->y - from->y; + way->active = false; + way->done = false; + float len = sqrt(way->vecx * way->vecx + way->vecy * way->vecy); + way->scway_1 = scaddway(from->scnod, to->scnod, len, way); + way->scway_2 = scaddway(to->scnod, from->scnod, len, way); + way->next = NULL; + for (Way *wptr = waylist; wptr != NULL; wptr = wptr->next) { + if (wptr->next == NULL) { + return wptr->next = way; + } + } + return waylist = way; +} + +Node *getNodeAtPos(float x, float y) +{ + Node *node = NULL; + float distance; + for (Node *nptr = nodelist; nptr != NULL; nptr = nptr->next) { + float dx, dy; + dx = (nptr->x - x) * screenBoundsNormalized.width; + dy = (nptr->y - y) * screenBoundsNormalized.height; + float d = sqrt(dx * dx + dy * dy); + if (d > (nptr->selected ? 7.5f : 5.0f) / 100.0f / 4.0f) + continue; + if (node == NULL || d < distance) { + node = nptr; + distance = d; + } + } + return node; +} + +Way *getActiveWay() +{ + return currentwp != NULL && currentwp->way != NULL ? (Way *)currentwp->way->dat : NULL; +} + +Node *getActiveNode() +{ + return currentwp != NULL ? (Node *)currentwp->nod->dat : NULL; +} + +void findPathEnd() +{ + unselect = true; + scdestroypath(currentwp); + currentwp = NULL; +} + +void findPathStep(double dtime) +{ + if (currentwp == NULL) + return; + Node *active_node = getActiveNode(); + active_node->selected = true; + Way *active_way = getActiveWay(); + if (! active_way) { + findPathEnd(); + return; + } + Node *to = (Node *)active_way->scway_1->lto->dat; + float len = active_way->scway_1->len; + float fac = 1.0; + if (active_node == to) + fac = -1.0; + currentprog += dtime * fac * 0.25; + if (currentprog * fac > len) { + active_way->done = true; + currentwp = currentwp->nxt; + currentprog = 0.0; + } +} + +void findPathStart(Node *from, Node *to) +{ + currentwp = scout(from->scnod, to->scnod, NULL); + if (currentwp == NULL) + findPathEnd(); + currentprog = 0.0; +} + +GLuint createShaderProgram(const char *vsrc, const char *fsrc) +{ + GLuint id, vsh, fsh; + int success; + char buffer[1024] = {0}; + + id = glCreateProgram(); + + { + vsh = glCreateShader(GL_VERTEX_SHADER); + glShaderSource(vsh, 1, &vsrc, NULL); + glCompileShader(vsh); + glGetShaderiv(vsh, GL_COMPILE_STATUS, &success); + if (! success) { + glGetShaderInfoLog(vsh, 1024, NULL, buffer); + error("Failed to compile vertex shader: %s\n", buffer); + } + glAttachShader(id, vsh); + } + + { + fsh = glCreateShader(GL_FRAGMENT_SHADER); + glShaderSource(fsh, 1, &fsrc, NULL); + glCompileShader(fsh); + glGetShaderiv(fsh, GL_COMPILE_STATUS, &success); + if (! success) { + glGetShaderInfoLog(fsh, 1024, NULL, buffer); + error("Failed to compile fragment shader: %s\n", buffer); + } + glAttachShader(id, fsh); + } + + glLinkProgram(id); + glGetProgramiv(id, GL_LINK_STATUS, &success); + if (! success) { + glGetProgramInfoLog(id, 1024, NULL, buffer); + error("Failed to link shader program: %s\n", buffer); + } + + glDeleteShader(vsh); + glDeleteShader(fsh); + + return id; +} + +GLuint makeMesh(const GLfloat *vertices, GLsizei vertices_count, const GLuint *indices, GLsizei indices_count) +{ + GLuint VAO, VBO, EBO; + + glGenVertexArrays(1, &VAO); + glGenBuffers(1, &VBO); + glGenBuffers(1, &EBO); + + glBindVertexArray(VAO); + glBindBuffer(GL_ARRAY_BUFFER, VBO); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, EBO); + + glBufferData(GL_ARRAY_BUFFER, vertices_count * sizeof(GLfloat), vertices, GL_STATIC_DRAW); + glBufferData(GL_ELEMENT_ARRAY_BUFFER, indices_count * sizeof(GLuint), indices, GL_STATIC_DRAW); + + glVertexAttribPointer(0, 2, GL_FLOAT, false, 2 * sizeof(GLfloat), 0); + glEnableVertexAttribArray(0); + + glBindVertexArray(0); + glBindBuffer(GL_ARRAY_BUFFER, 0); + glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); + + return VAO; +} + +void framebuffer_size_callback(GLFWwindow *window, int width, int height) +{ + UNUSED(window); + glViewport(0, 0, width, height); + screenBounds.width = width; + screenBounds.height = height; + float len = sqrt(width * width + height * height); + screenBoundsNormalized.width = (float)width / len; + screenBoundsNormalized.height = (float)height / len; + glProgramUniform1f(nodes_shaders, screenRatio_nodes_loc, (float)width / (float)height); + glProgramUniform1f(ways_shaders, screenRatio_ways_loc, (float)width / (float)height); +} + +void mouse_button_callback(GLFWwindow *window, int button, int action, int mods) +{ + UNUSED(window); + UNUSED(mods); + if (action != GLFW_RELEASE || currentwp != NULL) + return; + if (unselect) { + for (Way *wptr = waylist; wptr != NULL; wptr = wptr->next) + wptr->done = false; + for (Node *nptr = nodelist; nptr != NULL; nptr = nptr->next) + nptr->selected = false; + unselect = false; + } + float x = cursorPos.x / screenBounds.width; + float y = cursorPos.y / screenBounds.height; + Node *nod = getNodeAtPos(x, y); + if (nod) { + if (selected_node) { + switch (button) { + case GLFW_MOUSE_BUTTON_LEFT: + connectNodes(selected_node, nod); + break; + case GLFW_MOUSE_BUTTON_RIGHT: + findPathStart(selected_node, nod); + break; + } + selected_node->selected = false; + selected_node = NULL; + } + else { + selected_node = nod; + selected_node->selected = true; + } + } else { + createNode(x, y); + } +} + +void cursor_pos_callback(GLFWwindow *window, double x, double y) +{ + UNUSED(window); + cursorPos.x = x; + cursorPos.y = y; +} + +int main() +{ + if (! glfwInit()) + error("Failed to initialize GLFW\n"); + glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); + glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); + glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); + + GLFWwindow *window = glfwCreateWindow(10, 10, "libscout Example", NULL, NULL); + if (! window) { + glfwTerminate(); + error("Failed to create GLFW window\n"); + } + glfwMakeContextCurrent(window); + glfwSetFramebufferSizeCallback(window, &framebuffer_size_callback); + glfwSetCursorPosCallback(window, &cursor_pos_callback); + glfwSetMouseButtonCallback(window, &mouse_button_callback); + glfwSetWindowSize(window, 750, 500); + + GLenum glew_init_err = glewInit(); + if (glew_init_err != GLEW_OK) + error("Failed to initalize GLEW\n"); + + float degtorad = M_PI / 180.0f; + + GLfloat circle_vertices[361][2]; + GLuint circle_indices[360][3]; + + circle_vertices[360][0] = 0; + circle_vertices[360][1] = 0; + + for (int deg = 0; deg < 360; deg++) { + float rad = (float)deg * degtorad; + circle_vertices[deg][0] = cos(rad) * 0.5; + circle_vertices[deg][1] = sin(rad) * 0.5; + + int nextdeg = deg + 1; + + circle_indices[deg][0] = 360; + circle_indices[deg][1] = deg; + circle_indices[deg][2] = nextdeg < 360 ? nextdeg : 0; + } + + GLsizei circle_vertices_count = 361 * 2; + + GLsizei circle_indices_count = 360 * 3; + + GLfloat square_vertices[4][2] = { + {+0.5, +0.5}, + {+0.5, -0.5}, + {-0.5, -0.5}, + {-0.5, +0.5}, + }; + + GLsizei square_vertices_count = 4 * 2; + + GLuint square_indices[2][3] = { + {0, 1, 3}, + {1, 2, 3}, + }; + + GLsizei square_indices_count = 2 * 3; + + GLuint nodes_VAO, ways_VAO; + + nodes_VAO = makeMesh(circle_vertices[0], circle_vertices_count, circle_indices[0], circle_indices_count); + ways_VAO = makeMesh(square_vertices[0], square_vertices_count, square_indices[0], square_indices_count); + + nodes_shaders = createShaderProgram(VERTSHDSRC_NODES, FRAGSHDSRC_NODES); + ways_shaders = createShaderProgram(VERTSHDSRC_WAYS, FRAGSHDSRC_WAYS); + + screenRatio_nodes_loc = glGetUniformLocation(nodes_shaders, "screenRatio"); + nodePos_loc = glGetUniformLocation(nodes_shaders, "nodePos"); + nodeSelected_loc = glGetUniformLocation(nodes_shaders, "nodeSelected"); + + screenRatio_ways_loc = glGetUniformLocation(ways_shaders, "screenRatio"); + wayPos_loc = glGetUniformLocation(ways_shaders, "wayPos"); + wayLength_loc = glGetUniformLocation(ways_shaders, "wayLength"); + way_loc = glGetUniformLocation(ways_shaders, "way"); + wayProgress_loc = glGetUniformLocation(ways_shaders, "wayProgress"); + + double last_time = glfwGetTime(); + + while (! glfwWindowShouldClose(window)) { + double dtime = glfwGetTime() - last_time; + last_time = glfwGetTime(); + + findPathStep(dtime); + + glClearColor(1.0, 1.0, 1.0, 1.0); + glClear(GL_COLOR_BUFFER_BIT); + + glUseProgram(ways_shaders); + glBindVertexArray(ways_VAO); + Way *active_way = getActiveWay(); + for (Way *way = waylist; way != NULL; way = way->next) { + float progress = 0.0; + float len = way->scway_1->len; + if (way == active_way) + progress = currentprog; + else if (way->done) + progress = len; + glUniform1f(wayProgress_loc, progress); + glUniform1f(wayLength_loc, len); + glUniform2f(wayPos_loc, way->posx, way->posy); + glUniform2f(way_loc, way->vecx, way->vecy); + glDrawElements(GL_TRIANGLES, square_indices_count, GL_UNSIGNED_INT, 0); + } + + glUseProgram(nodes_shaders); + glBindVertexArray(nodes_VAO); + for (Node *node = nodelist; node != NULL; node = node->next) { + glUniform2f(nodePos_loc, node->x, node->y); + glUniform1i(nodeSelected_loc, node->selected); + glDrawElements(GL_TRIANGLES, circle_indices_count, GL_UNSIGNED_INT, 0); + } + + glBindVertexArray(0); + + glfwSwapBuffers(window); + glfwPollEvents(); + } +} diff --git a/scout.c b/scout.c index 78f0774..308a075 100644 --- a/scout.c +++ b/scout.c @@ -1,19 +1,22 @@ #include -#define __LIBSCOUT_INTERNAL__ #include "scout.h" -typedef struct scnode scnode; -typedef struct scway scway; -typedef struct scwaypoint scwaypoint; +scnode *scnodalloc(void *data) +{ + scnode *nod = malloc(sizeof(scnode)); + nod->way = NULL; + nod->dat = data; + return nod; +} -scway *scaddway(scnode *from, const scnode *to, int len) +scway *scaddway(scnode *from, const scnode *to, float len, void *data) { scway *way = malloc(sizeof(scway)); way->lto = to; way->alt = NULL; way->len = len; - scway *apar, *par = NULL; - for (apar = from->way; apar != NULL; par = apar, apar = apar->alt); + way->dat = data; + scway *par = __scnodgetway(from); if (par) par->alt = way; else @@ -21,23 +24,49 @@ scway *scaddway(scnode *from, const scnode *to, int len) return way; } +int scisconnected(scnode *n1, scnode *n2) { + for (scway *way = n1->way; way != NULL; way = way->alt) { + if (way->lto == n2) + return 1; + } + return 0; +} + scwaypoint *scout(const scnode *from, const scnode *to, scwaypoint *stack) { scwaypoint *wayp = NULL; if (from == to) return __scallocwayp(from, NULL); + scwaypoint *stackend = __scstackgetend(stack); for (scway *way = from->way; way != NULL; way = way->alt) { - scwaypoint *stackend; - if ((stackend = __scstackfindgetend(stack, way)) == NULL) + if (__scstackfind(stack, way)) continue; scwaypoint *twayp = __scallocwayp(from, way); - stackend->nxt = twayp; - scwaypoint *nwayp = scout(way->lto, to, stack) - if (wayp && wayp->len <= (twayp->len = __scstackgetlen(twayp))) - __scstackfree(wayp); - wayp = twayp; + if (stack) + stackend->nxt = twayp; + if ((twayp->nxt = scout(way->lto, to, stack ? stack : twayp))) + twayp->len += twayp->nxt->len; + if (twayp->nxt && (! wayp || wayp->len > twayp->len)) { + scdestroypath(wayp); + wayp = twayp; + } else { + scdestroypath(twayp); + } } - return wayp; + return stack ? (stackend->nxt = wayp) : wayp; +} + +void scdestroypath(scwaypoint *stack) +{ + for (scwaypoint *sptr = stack; sptr != NULL; sptr = sptr->nxt) + free(sptr); +} + +scway *__scnodgetway(const scnode *node) +{ + scway *way; + for (way = node->way; way != NULL && way->alt != NULL; way = way->alt); + return way; } scwaypoint *__scallocwayp(const scnode *node, const scway *way) @@ -46,20 +75,21 @@ scwaypoint *__scallocwayp(const scnode *node, const scway *way) wayp->nod = node; wayp->way = way; wayp->nxt = NULL; - wayp->len = way->len; + wayp->len = way ? way->len : 0.0f; + return wayp; } -scwaypoint *__scstackfindgetend(scwaypoint *stack, const scway *way) +int __scstackfind(const scwaypoint *stack, const scway *way) { - scwaypoint *asptr, *sptr; - for (asptr = stack; asptr != NULL; sptr = asptr, asptr = asptr->nxt) - if (asptr->nod == way->lto) - return NULL; - return sptr; + for (const scwaypoint *sptr = stack; sptr != NULL; sptr = sptr->nxt) + if (sptr->nod == way->lto) + return 1; + return 0; } -void __scstackfree(scwaypoint *stack) +scwaypoint *__scstackgetend(scwaypoint *stack) { - for (scwaypoint *sptr = stack; sptr != NULL; sptr = sptr->nxt) - free(sptr); + scwaypoint *sptr; + for (sptr = stack; sptr != NULL && sptr->nxt != NULL; sptr = sptr->nxt); + return sptr; } diff --git a/scout.h b/scout.h index fc625f2..594963c 100644 --- a/scout.h +++ b/scout.h @@ -9,26 +9,39 @@ struct scnode { struct scway { const struct scnode *lto; struct scway *alt; - int len; + float len; + void *dat; }; struct scwaypoint { const struct scnode *nod; const struct scway *way; struct scwaypoint *nxt; - int len; + float len; }; -struct scway *scaddway(struct scnode *, const struct scnode *, int); +struct scnode *scnodalloc(void *); +struct scway *scaddway(struct scnode *, const struct scnode *, float, void *data); +int scisconnected(struct scnode *, struct scnode *); struct scwaypoint *scout(const struct scnode *, const struct scnode *, struct scwaypoint *); +void scdestroypath(struct scwaypoint *); + #ifdef __LIBSCOUT_INTERNAL__ +struct scway *__scnodgetway(const struct scnode *); struct scwaypoint *__scallocwayp(const struct scnode *, const struct scway *); -struct scwaypoint *__scstackfindgetend(struct scwaypoint *, const struct scway *); -void __scstackfree(struct scwaypoint *); -int __scstackgetlen(struct scwaypoint *); +int __scstackfind(const struct scwaypoint *, const struct scway *); +struct scwaypoint *__scstackgetend(struct scwaypoint *); #endif // __LIBSCOUT_INTERNAL__ +#ifdef __LIBSCOUT_TYPEDEF__ + +typedef struct scnode scnode; +typedef struct scway scway; +typedef struct scwaypoint scwaypoint; + +#endif + #endif // __LIBSCOUT__ -- 2.44.0