Revision: 76088
          http://sourceforge.net/p/brlcad/code/76088
Author:   starseeker
Date:     2020-06-09 16:32:53 +0000 (Tue, 09 Jun 2020)
Log Message:
-----------
Stub in callback functions based on the documentation

Modified Paths:
--------------
    brlcad/branches/bioh/src/burst2/burst.cpp
    brlcad/branches/bioh/src/burst2/burst.h

Modified: brlcad/branches/bioh/src/burst2/burst.cpp
===================================================================
--- brlcad/branches/bioh/src/burst2/burst.cpp   2020-06-09 15:39:00 UTC (rev 
76087)
+++ brlcad/branches/bioh/src/burst2/burst.cpp   2020-06-09 16:32:53 UTC (rev 
76088)
@@ -51,6 +51,8 @@
 void
 burst_state_init(struct burst_state *s)
 {
+    s->quit = 0;
+
     //Colors colorids;
     s->fbiop = NULL;
     s->burstfp = NULL;
@@ -160,7 +162,7 @@
     s->units = 1;
     s->zoom = 1;
     s->rtip = RTI_NULL;
-    s->norml_sig = NULL;       /* active during interactive operation */
+    s->norml_sig = NULL; /* active during interactive operation */
     s->abort_sig = NULL; /* active during ray tracing only */
 }
 
@@ -177,13 +179,493 @@
 }
 
 
+extern "C" int
+_burst_cmd_critical_comp_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
 
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("critical-comp-file\n");
+    return BRLCAD_OK;
+}
+
+
+extern "C" int
+_burst_cmd_deflect_spall_cone (void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("deflect-spall-cone\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_dither_cells(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("dither-cells\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_enclose_target(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("enclose-target\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_enclose_portion(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("enclose-portion\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_error_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("error-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_execute(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("execute\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_grid_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("grid-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_ground_plane(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("ground-plane\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_help(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("help\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_burst_air_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("burst-air-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_histogram_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("histogram-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_image_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("image-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_input_2d_shot(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("input-2d-shot\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_input_3d_shot(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("input-3d-shot\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_max_barriers(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("max-barriers\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_max_spall_rays(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("max-spall-rays\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_plot_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("plot-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_quit(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    s->quit = 1;
+
+    bu_log("quit\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_read_2d_shot_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("read-2d-shot-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_read_3d_shot_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("read-3d-shot-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_burst_armor_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("burst-armor-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_read_burst_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("read-burst-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_read_input_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("read-input-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_report_overlaps(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("report-overlaps\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_shotline_burst(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("shotline-burst\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_shotline_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("shotline-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_target_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("target-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_target_objects(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("target-objects\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_units(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("units\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_write_input_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("write-input-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_burst_coordinates(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("burst-coordinates\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_burst_distance(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("burst-distance\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_burst_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("burst-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_cell_size(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("cell-size\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_color_file(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("color-file\n");
+    return BRLCAD_OK;
+}
+
+extern "C" int
+_burst_cmd_cone_half_angle(void *bs, int argc, const char **argv)
+{
+    struct burst_state *s = (struct burst_state *)bs;
+
+    if (!s || !argc || !argv) return BRLCAD_ERROR;
+
+    bu_log("cone-half-angle\n");
+    return BRLCAD_OK;
+}
+
 const struct bu_cmdtab _burst_cmds[] = {
-    { "attack-direction",     _burst_cmd_attack_dir},
+    { "attack-direction"  ,  _burst_cmd_attack_dir},
+    { "critical-comp-file",  _burst_cmd_critical_comp_file },
+    { "deflect-spall-cone",  _burst_cmd_deflect_spall_cone },
+    { "dither-cells"      ,  _burst_cmd_dither_cells },
+    { "enclose-target"    ,  _burst_cmd_enclose_target },
+    { "enclose-portion"   ,  _burst_cmd_enclose_portion },
+    { "error-file"        ,  _burst_cmd_error_file },
+    { "execute"           ,  _burst_cmd_execute },
+    { "grid-file"         ,  _burst_cmd_grid_file },
+    { "ground-plane"      ,  _burst_cmd_ground_plane },
+    { "help"              ,  _burst_cmd_help },
+    { "burst-air-file"    ,  _burst_cmd_burst_air_file },
+    { "histogram-file"    ,  _burst_cmd_histogram_file },
+    { "image-file"        ,  _burst_cmd_image_file },
+    { "input-2d-shot"     ,  _burst_cmd_input_2d_shot },
+    { "input-3d-shot"     ,  _burst_cmd_input_3d_shot },
+    { "max-barriers"      ,  _burst_cmd_max_barriers },
+    { "max-spall-rays"    ,  _burst_cmd_max_spall_rays },
+    { "plot-file"         ,  _burst_cmd_plot_file },
+    { "quit"              ,  _burst_cmd_quit },
+    { "read-2d-shot-file" ,  _burst_cmd_read_2d_shot_file },
+    { "read-3d-shot-file" ,  _burst_cmd_read_3d_shot_file },
+    { "burst-armor-file"  ,  _burst_cmd_burst_armor_file },
+    { "read-burst-file"   ,  _burst_cmd_read_burst_file },
+    { "read-input-file"   ,  _burst_cmd_read_input_file },
+    { "report-overlaps"   ,  _burst_cmd_report_overlaps },
+    { "shotline-burst"    ,  _burst_cmd_shotline_burst },
+    { "shotline-file"     ,  _burst_cmd_shotline_file },
+    { "target-file"       ,  _burst_cmd_target_file },
+    { "target-objects"    ,  _burst_cmd_target_objects },
+    { "units"             ,  _burst_cmd_units },
+    { "write-input-file"  ,  _burst_cmd_write_input_file },
+    { "burst-coordinates" ,  _burst_cmd_burst_coordinates },
+    { "burst-distance"    ,  _burst_cmd_burst_distance },
+    { "burst-file"        ,  _burst_cmd_burst_file },
+    { "cell-size"         ,  _burst_cmd_cell_size },
+    { "color-file"        ,  _burst_cmd_color_file },
+    { "cone-half-angle"   ,  _burst_cmd_cone_half_angle },
     { (char *)NULL,      NULL}
 };
 
 int
+burst_process_line(struct burst_state *s, const char *line)
+{
+    int ret = BRLCAD_OK;
+
+    /* Skip a line if it is a comment */
+    if (line[0] == '#') {
+       return BRLCAD_OK;
+    }
+
+    /* Make an argv array from the input line */
+    char *input = bu_strdup(line);
+    char **av = (char **)bu_calloc(strlen(input) + 1, sizeof(char *), "argv 
array");
+    int ac = bu_argv_from_string(av, strlen(input), input);
+
+    if (!ac || !bu_cmd_valid(_burst_cmds, av[0]) == BRLCAD_OK) {
+       printf("unrecognzied command: %s\n", av[0]);
+       ret = BRLCAD_ERROR;
+       goto line_done;
+    }
+
+    if (bu_cmd(_burst_cmds, ac, (const char **)av, 0, (void *)s, &ret) != 
BRLCAD_OK) {
+       printf("error running command: %s\n", av[0]);
+       ret = BRLCAD_ERROR;
+       goto line_done;
+    }
+
+line_done:
+    bu_free(input, "input copy");
+    bu_free(av, "input argv");
+    return ret;
+}
+
+
+int
 main(int argc, const char **argv)
 {
     int ret = EXIT_SUCCESS;
@@ -237,35 +719,22 @@
        free(line);
        bu_vls_trimspace(&iline);
        if (!bu_vls_strlen(&iline)) continue;
-       linenoiseHistoryAdd(bu_vls_addr(&iline));
+       linenoiseHistoryAdd(bu_vls_cstr(&iline));
 
        /* The "clear" command is only for the shell, not
         * for burst evaluation */
-       if (BU_STR_EQUAL(bu_vls_addr(&iline), "clear")) {
+       if (BU_STR_EQUAL(bu_vls_cstr(&iline), "clear")) {
            linenoiseClearScreen();
            bu_vls_trunc(&iline, 0);
            continue;
        }
 
-       /* Make an argv array from the input line */
-       char *input = bu_strdup(bu_vls_cstr(&iline));
-       char **av = (char **)bu_calloc(strlen(input) + 1, sizeof(char *), "argv 
array");
-       int ac = bu_argv_from_string(av, strlen(input), input);
+       burst_process_line(&s, bu_vls_cstr(&iline));
+       bu_vls_trunc(&iline, 0);
 
-       if (!ac || !bu_cmd_valid(_burst_cmds, av[0]) == BRLCAD_OK) {
-           printf("unrecognzied command: %s\n", av[0]);
-           goto cmd_cont;
+       if (s.quit) {
+           break;
        }
-
-       if (bu_cmd(_burst_cmds, ac, (const char **)av, 0, (void *)&s, &ret) != 
BRLCAD_OK) {
-           printf("error running command: %s\n", av[0]);
-           goto cmd_cont;
-       }
-
-cmd_cont:
-       bu_free(input, "input copy");
-       bu_free(av, "input argv");
-       bu_vls_trunc(&iline, 0);
     }
 
     linenoiseHistoryFree();

Modified: brlcad/branches/bioh/src/burst2/burst.h
===================================================================
--- brlcad/branches/bioh/src/burst2/burst.h     2020-06-09 15:39:00 UTC (rev 
76087)
+++ brlcad/branches/bioh/src/burst2/burst.h     2020-06-09 16:32:53 UTC (rev 
76088)
@@ -67,6 +67,7 @@
 #define COLORS_NULL (Colors *) 0
 
 struct burst_state {
+    int quit;                  /* 0 = continue, 1 = quit */
     Colors colorids;           /* ident range to color mappings for plots */
     fb *fbiop;                 /* frame buffer specific access from libfb */
     FILE *burstfp;             /* input stream for burst point locations */

This was sent by the SourceForge.net collaborative development platform, the 
world's largest Open Source development site.



_______________________________________________
BRL-CAD Source Commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to