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