Revision: 76197
          http://sourceforge.net/p/brlcad/code/76197
Author:   starseeker
Date:     2020-06-25 13:48:42 +0000 (Thu, 25 Jun 2020)
Log Message:
-----------
fix build in branch post-merge

Modified Paths:
--------------
    brlcad/branches/dm-fb-merge/src/burst/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/burst/burst.cpp
    brlcad/branches/dm-fb-merge/src/burst/burst.h
    brlcad/branches/dm-fb-merge/src/burst/grid.cpp
    brlcad/branches/dm-fb-merge/src/burst/old/CMakeLists.txt
    brlcad/branches/dm-fb-merge/src/burst/old/burst.h
    brlcad/branches/dm-fb-merge/src/burst/old/extern.h
    brlcad/branches/dm-fb-merge/src/burst/old/fb.c
    brlcad/branches/dm-fb-merge/src/burst/old/glob.c
    brlcad/branches/dm-fb-merge/src/burst/old/grid.c
    brlcad/branches/dm-fb-merge/src/burst/old/paint.c
    brlcad/branches/dm-fb-merge/src/burst/paint.cpp
    brlcad/branches/dm-fb-merge/src/libtclcad/tclcad_obj.c

Modified: brlcad/branches/dm-fb-merge/src/burst/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/CMakeLists.txt        2020-06-25 
13:21:23 UTC (rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/CMakeLists.txt        2020-06-25 
13:48:42 UTC (rev 76197)
@@ -23,7 +23,7 @@
   ${LDIR}/linenoise.c
   )
 
-BRLCAD_ADDEXEC(nburst "${burst_SOURCES}" "librt;libfb;libbu;${M_LIBRARY}")
+BRLCAD_ADDEXEC(nburst "${burst_SOURCES}" "librt;libdm;libbu;${M_LIBRARY}")
 
 set(burst_ignore
   CMakeLists.txt

Modified: brlcad/branches/dm-fb-merge/src/burst/burst.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/burst.cpp     2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/burst.cpp     2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -47,7 +47,7 @@
 #include "bu/units.h"
 #include "bu/vls.h"
 
-#include "fb.h"
+#include "dm.h"
 #include "raytrace.h"
 
 #include "./burst.h"

Modified: brlcad/branches/dm-fb-merge/src/burst/burst.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/burst.h       2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/burst.h       2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -26,505 +26,58 @@
 #define BURST_BURST_H
 
 #include "common.h"
-#include <stdio.h>
-#include <signal.h>
+#include <stdio.h> /* for FILE */
 
-#include "vmath.h"
+#include "bu/ptbl.h"
+#include "bu/vls.h"
 #include "dm.h"
-#include "raytrace.h"
 
-/* NSIG not always defined in <signal.h> */
-#ifndef NSIG
-#  define NSIG 64
-#endif
+#define LNBUFSZ         1330    /* buffer for one-line messages */
+#define TITLE_LEN       72
+#define TIMER_LEN       72
 
+#define MSG_LOG 0
+#define MSG_OUT 1
 
-/* menu configuration */
-#define MENU_LFT       1
-#define MENU_TOP       2
-#define MENU_MAXVISITEMS       10
-
-/* prompt line configuration */
-#define PROMPT_X       HmXPROMPT
-#define PROMPT_Y       HmYPROMPT
-
-/* banner (border) configuration */
-#define BORDER_CHR     '_'
-#define BORDER_Y       (PROMPT_Y+1)
-
-/* grid offset printing window */
-#define GRID_X         55      /* where grid indices are printed */
-#define GRID_Y         BORDER_Y
-
-/* scroll region configuration */
-#define SCROLL_TOP     (BORDER_Y+1)
-#define SCROLL_BTM     (ScLI-1) /* bottom line causes scroll */
-
-/* timer (cpu statistics) window configuration */
-#define TIMER_X                1
-#define TIMER_Y                1
-
-/* buffer sizes */
-#define LNBUFSZ                1330    /* buffer for one-line messages */
 #define MAXDEVWID      10000   /* maximum width of frame buffer */
 
-#define CHAR_COMMENT   '#'
-#define CMD_COMMENT    "comment"
-
 /* default parameters */
-#define DFL_AZIMUTH    0.0
-#define DFL_BARRIERS   100
-#define DFL_BDIST      0.0
-#define DFL_CELLSIZE   101.6
-#define DFL_CONEANGLE  (45.0/RAD2DEG)
-#define DFL_DEFLECT    0
-#define DFL_DITHER     0
-#define DFL_ELEVATION  0.0
-#define DFL_NRAYS      200
-#define DFL_OVERLAPS   1
-#define DFL_RIPLEVELS  1
-#define DFL_UNITS      U_MILLIMETERS
+#define DFL_AZIMUTH     0.0
+#define DFL_BARRIERS    100
+#define DFL_BDIST       0.0
+#define DFL_CELLSIZE    101.6
+#define DFL_CONEANGLE   (45.0/RAD2DEG)
+#define DFL_DEFLECT     0
+#define DFL_DITHER      0
+#define DFL_ELEVATION   0.0
+#define DFL_NRAYS       200
+#define DFL_OVERLAPS    1
+#define DFL_RIPLEVELS   1
 
 /* firing mode bit definitions */
-#define ASNBIT(w, b)   (w = (b))
-#define SETBIT(w, b)   (w |= (b))
-#define CLRBIT(w, b)   (w &= ~(b))
-#define TSTBIT(w, b)   ((w)&(b))
-#define FM_GRID  0     /* generate grid of shotlines */
-#define FM_DFLT         FM_GRID
-#define FM_PART  (1)   /* bit 0: ON = partial envelope, OFF = full */
-#define FM_SHOT         (1<<1) /* bit 1: ON = discrete shots, OFF = gridding */
-#define FM_FILE         (1<<2) /* bit 2: ON = file input, OFF = direct input */
-#define FM_3DIM         (1<<3) /* bit 3: ON = 3-D coords., OFF = 2-D coords */
+#define FM_GRID  0      /* generate grid of shotlines */
+#define FM_DFLT  FM_GRID
+#define FM_PART  (1)    /* bit 0: ON = partial envelope, OFF = full */
+#define FM_SHOT  (1<<1) /* bit 1: ON = discrete shots, OFF = gridding */
+#define FM_FILE  (1<<2) /* bit 2: ON = file input, OFF = direct input */
+#define FM_3DIM  (1<<3) /* bit 3: ON = 3-D coords., OFF = 2-D coords */
 #define FM_BURST (1<<4) /* bit 4: ON = discrete burst points, OFF = shots */
 
-/* flags for notify() */
-#define NOTIFY_APPEND  1
-#define NOTIFY_DELETE  2
-#define NOTIFY_ERASE   4
-
-#define NOTIFY_DELIM   ':'
-
-#define PB_ASPECT_INIT         '1'
-#define PB_CELL_IDENT          '2'
-#define PB_RAY_INTERSECT       '3'
-#define PB_RAY_HEADER          '4'
-#define PB_REGION_HEADER       '5'
-
-#define PS_ASPECT_INIT         '1'
-#define PS_CELL_IDENT          '2'
-#define PS_SHOT_INTERSECT      '3'
-
-#define TITLE_LEN      72
-#define TIMER_LEN      72
-
-#define U_INCHES       0
-#define U_FEET         1
-#define U_MILLIMETERS  2
-#define U_CENTIMETERS  3
-#define U_METERS       4
-#define U_BAD          -1
-
-#define UNITS_INCHES           "inches"
-#define UNITS_FEET             "feet"
-#define UNITS_MILLIMETERS      "millimeters"
-#define UNITS_CENTIMETERS      "centimeters"
-#define UNITS_METERS           "meters"
-
-/* white space in input tokens */
-#define WHITESPACE     " \t"
-
-/* colors for UNIX plot files */
-#define R_GRID         255     /* grid - yellow */
-#define G_GRID         255
-#define B_GRID         0
-
-#define R_BURST                255     /* burst cone - red */
-#define G_BURST                0
-#define B_BURST                0
-
-#define R_OUTAIR       100     /* outside air - light blue */
-#define G_OUTAIR       100
-#define B_OUTAIR       255
-
-#define R_INAIR                100     /* inside air - light green */
-#define G_INAIR                255
-#define B_INAIR                100
-
-#define R_COMP         0       /* component (default) - blue */
-#define G_COMP         0
-#define B_COMP         255
-
-#define R_CRIT         255     /* critical component (default) - purple */
-#define G_CRIT         0
-#define B_CRIT         255
-
-#define C_MAIN         0
-#define C_CRIT         1
-
-#define COS_TOL                0.01
-#define LOS_TOL                0.1
-#define VEC_TOL                0.001
-#define OVERLAP_TOL    0.25    /* thinner overlaps not reported */
-#define EXIT_AIR       9       /* exit air is called 09 air */
-#define OUTSIDE_AIR    1       /* outside air is called 01 air */
-
-#define Air(rp)                ((rp)->reg_aircode > 0)
-#define DiffAir(rp, sp)        ((rp)->reg_aircode != (sp)->reg_aircode)
-#define SameAir(rp, sp)        ((rp)->reg_aircode == (sp)->reg_aircode)
-#define SameCmp(rp, sp)        ((rp)->reg_regionid == (sp)->reg_regionid)
-#define OutsideAir(rp) ((rp)->reg_aircode == OUTSIDE_AIR)
-#define InsideAir(rp)  (Air(rp)&& !OutsideAir(rp))
-
-#define Malloc_Bomb(_bytes_) \
-               brst_log("\"%s\"(%d) : allocation of %d bytes failed.\n", \
-                               __FILE__, __LINE__, _bytes_)
-
-#define Swap_Doubles(a_, b_) \
-               {       fastf_t f_ = a_; \
-               a_ = b_; \
-               b_ = f_; \
-               }
-#define Toggle(f)      (f) = !(f)
-
-typedef struct ids Ids;
-struct ids
-{
+struct ids {
     short i_lower;
     short i_upper;
-    Ids *i_next;
 };
-#define IDS_NULL (Ids *) 0
 
-typedef struct colors Colors;
-struct colors
-{
+struct colors {
     short c_lower;
     short c_upper;
     unsigned char c_rgb[3];
-    Colors *c_next;
 };
-#define COLORS_NULL (Colors *) 0
 
-typedef struct pt_queue Pt_Queue;
-struct pt_queue
-{
-    struct partition *q_part;
-    Pt_Queue *q_next;
-};
-
-
-#define PT_Q_NULL (Pt_Queue *) 0
-
-/*
- * MUVES "Hm" (hierarchical menu) package definitions
- *
- * This software and documentation is derived in part from the
- * menuhit(9.3) manual pages (not source code) in AT&T 9th Edition
- * UNIX, Version 1 Programmer's Manual.
- *
- * The Hm package provides a pop-up menu implementation which uses a
- * terminal-independent screen management facility (Sc package) to
- * simulate the necessary graphics using the ASCII character set.
- * Only a few keyboard characters are required to control the menus,
- * but when possible, as with DMD terminals running a MYX terminal
- * emulator, the menus can be controlled with the mouse.
- */
-/**
- * Each menu is defined by the following structure:
- *
- * typedef struct {
- * HmItem *item;
- * HmItem *(*generator)();
- * short prevtop;
- * short prevhit;
- * int sticky;
- * }
- * HmMenu;
- *
- * A menu can be built as an array of HmItem's, pointed to by item, or
- * with a generator function.  If item is (HmItem *) 0, the generator
- * field is assumed to be valid.  The generator function is passed an
- * integer parameter, and must return the pointer to an HmItem in a
- * static area (the result is only needed until the next call).  The
- * n's are guaranteed to start at 0 and increase by 1 each invocation
- * until generator returns (HmItem *) 0.  Prevtop will contain the
- * index of the menu item which appeared at the top of the menu the
- * last time it was displayed.  Prevhit will contain the index of the
- * last item traversed (indices begin at 0).  If sticky is true, the
- * menu will hang around after an entry is selected so that another
- * entry may be chosen and the menu must be exited explicitly with the
- * appropriate key-stroke or equivalent mouse operation.  Otherwise,
- * the menu will exit after selection of an item (and any actions
- * resulting from that selection such as submenus have finished).
- * WARNING: if a menu is to be used more than once during recursive
- * calls to HmHit, there needs to be distinct copies (allocated
- * storage) since the item field is filled in by the generator
- * function, and the prevtop and prevhit fields should be private to
- * the current invocation of HmHit.
- */
-
-struct HmMenu;
-
-typedef struct
-{
-    char *text;                        /* menu item string */
-    char *help;                        /* help string */
-    struct HmMenu *next;       /* sub-menu pointer or NULL */
-    void (*dfn)();
-    void (*bfn)();
-    void (*hfn)();
-    long data;
-}
-HmItem;
-
-/**
- * Menu items are defined by the following structure:
- *
- * typedef struct {
- * char *text;
- * char *help;
- * HmMenu *next;
- * void (*dfn)();
- * void (*bfn)();
- * void (*hfn)();
- * long data;
- * }
- * HmItem;
- *
- * The text field will be displayed as the name of the item.
- * Characters with the 0200 bit set are regarded as fill characters.
- * For example, the string "\240X" will appear in the menu as a
- * right-justified X (040 is the ASCII space character).  Menu strings
- * without fill characters are drawn centered in the menu.  Whether
- * generated statically or dynamically, the list of HmItem's must be
- * terminated by a NULL text field.  The help string will be displayed
- * when the user presses the help key.  If next is not equal to
- * (HmMenu *) 0, it is assumed to point to a submenu, "dfn()" if
- * non-zero is called just before the submenu is invoked, and "bfn()"
- * likewise just afterwards.  These functions are passed the current
- * menu item.  If the menu item is selected and next is 0, "hfn()" is
- * called (if non-zero), also with the current menu item.  The "data"
- * field is reserved for the user to pass information between these
- * functions and the calling routine.
- */
-typedef struct HmMenu
-{
-    HmItem *item;              /* List of menu items or 0.             */
-    HmItem *(*generator)();    /* If item == 0, generates items.       */
-    short prevtop;             /* Top entry currently visible */
-    short prevhit;             /* Offset from top of last select */
-    int sticky;                        /* If true, menu stays around after
-                                  SELECT, and until QUIT. */
-}
-HmMenu;
-
-/* Structure used internally for screen management.  These are stacked
-   dynamically with calls to HmHit() such that the head of the chain
-   is the current menu, and the end of the chain such that next is
-   0, is the top-level menu.
-*/
-typedef struct HmWin
-{
-    struct HmWin *next;        /* Parent of this menu.                 */
-    HmMenu *menup;     /* Address of menu data structure.      */
-    int menux;         /* Position on screen where top-left */
-    int menuy;         /* corner of menu will be displayed.    */
-    int width;         /* Width of menu, not including border. */
-    int height;                /* Number of menu entries.              */
-    int *dirty;                /* Dynamically allocated bitmap. ON bits
-                          mean character needs a redraw.       */
-}
-HmWindow;
-
-/**
- * int HmInit(int x, int y, int maxvis)
- *
- * HmInit() must be called before any other routines in the Hm package
- * to initialize the screen position of the top-left corner of the
- * top-level menu to x and y and to set the maximum number of menu
- * entries which will be visible at one time to maxvis.  If the number
- * of entries in a menu exceeds maxvis, the menu will scroll to
- * accommodate them.  The values of x, y and maxvis are stored in
- * these external variables:
- *
- * int HmLftMenu
- * int HmTopMenu
- * int HmMaxVis
- *
- * If this routine is not called, default parameters will be used.
- *
- * HmInit() also opens "/dev/tty" for input and stores its file
- * descriptor in HmTtyFd and associated stream handle in HmTtyFp.
- *
- * int HmTtyFd
- * FILE *HmTtyFp
- *
- * This routine returns true or false on success or failure to open
- * "/dev/tty".
- */
-extern int HmInit(int x, int y, int maxvis);
-extern FILE *HmTtyFp;
-extern int HmLftMenu;
-extern int HmTopMenu;
-extern int HmMaxVis;
-extern int HmLastMaxVis;
-extern int HmTtyFd;
-
-/**
- * HmItem *HmHit(HmMenu *menup)
- *
- * HmHit() presents the user with a menu specified by HmMenu pointer
- * menup and returns a pointer to the selected HmItem or 0 if nothing
- * was selected.  The menu is presented to the user with the item
- * corresponding to prevhit (current item) highlighted.  If a menu has
- * not been accessed yet, prevhit will be set to the first item.  The
- * user may move the cursor to the item below the current one by
- * pressing the 'd' key, or move up by pressing the 'u'.  If the user
- * presses 'h', the help message for the current item will be
- * displayed until another key is struck.  To select an item, the user
- * presses the space bar.  An actual selection has been made when the
- * selected item does not have a submenu, otherwise, it may be termed
- * a traversal of that item.  Traversing an item does change the value
- * of prevhit, but is not final as the submenu can be exited by the
- * user pressing 'q', before selecting an item.  In case the screen
- * becomes disturbed (i.e. by the output of another process), holding
- * down the CONTROL key and striking an 'l' will re-display all of the
- * menus.
- *
- * Both the help and warning (non-fatal error) messages will be
- * displayed in the one-line window at HmYCOMMO.  For instance, if the
- * user hits any keys other than the ones mentioned above, an error
- * message will appear in this window.  Also, a one-line window is
- * reserved for application prompts at HmYPROMPT.  The prompt window
- * is cleared just prior to blocking on user input, and the message
- * window is cleared when the user provides input (strikes a key).
- *
- * If a menu has more items than can be displayed at once, the corners
- * of the menu will indicate this as follows:
- *
- * '+' means the adjacent displayed item is the actual first (or last
- * if a bottom corner) item in the menu.
- *
- * 'v' means that the entry displayed in the previous line is not the
- * last, and the menu can be scrolled upwards.
- *
- * '^' means that the entry displayed on the next line is not actually
- * the first, and the menu can be scrolled downwards.
- *
- * Attempting to move the cursor below the bottom entry of the menu
- * will cause the menu to scroll half a page or until the entries run
- * out, which ever comes first.  If there are no entries to scroll the
- * terminal will beep.  The analogous holds true for attempting to
- * move upward past the top entry of the menu.  If a DMD terminal with
- * MYX running is used, a special cursor will appear, and the user may
- * use the mouse rather than the keyboard as follows: Clicking button
- * 1 of the mouse while the cursor is outside the "current menu", will
- * cause the terminal to beep.  If the cursor is on an item, that item
- * will be made "current".  If on the "current" item, that item will
- * be selected.  If on the top border of the current menu, that menu
- * will scroll down if possible, and if not, that menu will exit.  If
- * on the bottom border, that menu will scroll upward if possible and
- * beep if not.
- */
-    extern HmItem *HmHit(HmMenu *menup);
-
-/**
- * void HmRedraw(void)
- *
- * HmRedraw() will force the entire set of active menus to be redrawn
- * on the next call to HmHit().  This is useful when an application
- * interferes with the portion of the screen used by the Hm package
- * (from HmTopMenu to HmYCOMMO).
-**/
-extern void HmRedraw(void);
-
-/**
- * void HmError(const char *string)
- *
- * HmError() will display string on line HmYCOMMO.
- */
-extern void HmError(const char *str);
-
-#define HmYCOMMO (HmTopMenu+HmMaxVis+HmHGTBORDER)
-#define HmYPROMPT (HmYCOMMO+1)
-#define HmXPROMPT 1
-#define HmYBORDER (HmYPROMPT+1)
-
-/**
- * int HmGetchar(void)
- * int HmUngetchar(int c)
- *
- * HmGetchar() and HmUngetchar() are used by the Hm package to read a
- * character from the keyboard and to stuff one character back on the
- * input stream.  They may be both be supplied by the application if
- * the default behavior is not desirable.  HmGetchar() returns the
- * next character on the standard input.  This command will block
- * until input is available.  HmUngetchar() inserts the character c on
- * the standard input.  An EOF will be returned if this is not
- * possible or c is equal to EOF.  In general, this is guaranteed to
- * work for one character assuming that something has already been
- * read with HmGetchar() and the input stream is buffered.
- */
-extern int HmGetchar(void);
-extern int HmUngetchar(int c);
-
-/**
- * void HmTtySet(void)
- * void HmTtyReset(void)
- *
- * HmTtySet() and HmTtyReset() set/restore the terminal modes for the
- * menus to work properly.  These are mainly internal routines which
- * are called from HmHit(), but are provided in case an escape from
- * the program is provided by the application or job control is
- * enabled in the underlying shell, in which case, these routines can
- * be called from a menu function or signal handler.
- */
-extern void HmTtySet();
-extern void HmTtyReset();
-
-
-#define HmMAXLINE 132
-#define HmHGTBORDER 2
-
-#ifdef NULL_FUNC
-#  undef NULL_FUNC
-#endif
-
-#define NULL_FUNC ((Func *) NULL)
-#define TRIE_NULL ((Trie *) NULL)
-
-/* Datum for trie leaves.  */
-typedef void Func();
-
-/* Trie tree node.  */
-typedef union trie Trie;
-union trie {
-    struct {
-       /* Internal nodes: datum is current letter. */
-       int t_char;   /* Current letter.  */
-       Trie *t_altr; /* Alternate letter node link.  */
-       Trie *t_next; /* Next letter node link.  */
-    }
-    n;
-    struct {
-       /* Leaf nodes: datum is function ptr.  */
-       Func *t_func; /* Function pointer.  */
-       Trie *t_altr; /* Alternate letter node link.  */
-       Trie *t_next; /* Next letter node link.  */
-    }
-    l;
-};
-#define NewTrie(p) if (((p) = (Trie *) malloc(sizeof(Trie))) == TRIE_NULL) {\
-       Malloc_Bomb(sizeof(Trie));\
-       return TRIE_NULL;\
-}
-extern Trie *cmd_trie;
-
-
 struct burst_state {
-    Colors colorids;           /* ident range to color mappings for plots */
-    struct fb *fbiop;          /* frame buffer specific access from libfb */
+    int quit;                  /* 0 = continue, 1 = quit */
+    struct bu_ptbl colorids;   /* ident range to color mappings for plots */
+    fb *fbiop;                 /* frame buffer specific access from libfb */
     FILE *burstfp;             /* input stream for burst point locations */
     FILE *gridfp;              /* grid file output stream (2-d shots) */
     FILE *histfp;              /* histogram output stream (statistics) */
@@ -532,11 +85,10 @@
     FILE *plotfp;              /* 3-D UNIX plot stream (debugging) */
     FILE *shotfp;              /* input stream for shot positions */
     FILE *shotlnfp;            /* shotline file output stream */
-    FILE *tmpfp;               /* temporary file output stream for logging 
input */
-    HmMenu *mainhmenu;         /* */
-    Ids airids;                /* burst air idents */
-    Ids armorids;              /* burst armor idents */
-    Ids critids;               /* critical component idents */
+    struct bu_vls cmdhist;     /* interactive input logging (used to generated 
burst cmd files)*/
+    struct bu_ptbl airids;     /* burst air idents */
+    struct bu_ptbl armorids;   /* burst armor idents */
+    struct bu_ptbl critids;    /* critical component idents */
     unsigned char *pixgrid;    /* */
     unsigned char pixaxis[3];  /* grid axis */
     unsigned char pixbhit[3];  /* burst ray hit non-critical comps */
@@ -546,7 +98,6 @@
     unsigned char pixghit[3];  /* ground burst */
     unsigned char pixmiss[3];  /* shot missed target */
     unsigned char pixtarg[3];  /* shot hit target */
-    Trie *cmdtrie;             /* */
 
     int plotline;              /* boolean for plot lines (otherwise plots 
points) */
     int batchmode;             /* are we processing batch input now */
@@ -558,32 +109,27 @@
     int reportoverlaps;        /* if true, overlaps are reported */
     int reqburstair;           /* if true, burst air required for shotburst */
     int shotburst;            /* if true, burst along shotline */
-    int tty;                  /* if true, full screen display is used */
     int userinterrupt;         /* has the ray trace been interrupted */
 
-    char airfile[LNBUFSZ];     /* input file name for burst air ids */
-    char armorfile[LNBUFSZ];   /* input file name for burst armor ids */
-    char burstfile[LNBUFSZ];   /* input file name for burst points */
-    char cmdbuf[LNBUFSZ];      /* */
-    char cmdname[LNBUFSZ];     /* */
-    char colorfile[LNBUFSZ];   /* ident range-to-color file name */
-    char critfile[LNBUFSZ];    /* input file for critical components */
-    char errfile[LNBUFSZ];     /* errors/diagnostics log file name */
-    char fbfile[LNBUFSZ];      /* frame buffer image file name */
-    char gedfile[LNBUFSZ];     /* MGED data base file name */
-    char gridfile[LNBUFSZ];    /* saved grid (2-d shots) file name */
-    char histfile[LNBUFSZ];    /* histogram file name (statistics) */
-    char objects[LNBUFSZ];     /* list of objects from MGED file */
-    char outfile[LNBUFSZ];     /* burst point library output file name */
-    char plotfile[LNBUFSZ];    /* 3-D UNIX plot file name (debugging) */
-    char scrbuf[LNBUFSZ];      /* scratch buffer for temporary use */
-    char scriptfile[LNBUFSZ];  /* shell script file name */
-    char shotfile[LNBUFSZ];    /* input file of firing coordinates */
-    char shotlnfile[LNBUFSZ];  /* shotline output file name */
-    char title[TITLE_LEN];     /* title of MGED target description */
+    struct bu_vls airfile;     /* input file name for burst air ids */
+    struct bu_vls armorfile;   /* input file name for burst armor ids */
+    struct bu_vls burstfile;   /* input file name for burst points */
+    struct bu_vls cmdbuf;      /* */
+    struct bu_vls cmdname;     /* */
+    struct bu_vls colorfile;   /* ident range-to-color file name */
+    struct bu_vls critfile;    /* input file for critical components */
+    FILE *errfile;             /* errors/diagnostics log file */
+    struct bu_vls fbfile;      /* frame buffer image file name */
+    struct bu_vls gedfile;     /* MGED data base file name */
+    struct bu_vls gridfile;    /* saved grid (2-d shots) file name */
+    struct bu_vls histfile;    /* histogram file name (statistics) */
+    struct bu_vls objects;     /* list of objects from MGED file */
+    struct bu_vls outfile;     /* burst point library output file name */
+    struct bu_vls plotfile;    /* 3-D UNIX plot file name (debugging) */
+    struct bu_vls shotfile;    /* input file of firing coordinates */
+    struct bu_vls shotlnfile;  /* shotline output file name */
+
     char timer[TIMER_LEN];     /* CPU usage statistics */
-    char tmpfname[TIMER_LEN];  /* temporary file for logging input */
-    char *cmdptr;              /* */
 
     fastf_t bdist;             /* fusing distance for warhead */
     fastf_t burstpoint[3];     /* explicit burst point coordinates */
@@ -641,7 +187,6 @@
     int nprocessors;           /* no. of processors running concurrently */
     int nriplevels;            /* no. of levels of ripping (0 = no ripping) */
     int nspallrays;            /* no. of spall rays at each burst point */
-    int units;                 /* target units (default is millimeters) */
     int zoom;                  /* magnification factor on frame buffer */
 
     struct rt_i *rtip;         /* model specific access from librt */
@@ -649,10 +194,35 @@
     /* signal handlers */
     void (*norml_sig)();       /* active during interactive operation */
     void (*abort_sig)();       /* active during ray tracing only */
+
+    /* command table for help printing */
+    const struct bu_cmdtab *cmds;
 };
 
-void burst_state_init(struct burst_state *s);
 
+
+extern void burst_state_init(struct burst_state *s);
+
+extern int execute_run(struct burst_state *s);
+
+extern int findIdents(int ident, struct bu_ptbl *idpl);
+extern int readIdents(struct bu_ptbl *idlist, const char *fname);
+extern int readColors(struct bu_ptbl *idlist, const char *fname);
+extern struct colors *findColors(int ident, struct bu_ptbl *colp);
+
+extern void gridModel(struct burst_state *s);
+extern void gridInit(struct burst_state *s);
+extern void spallInit(struct burst_state *s);
+
+extern void paintCellFb(struct application *ap, unsigned char *pixpaint, 
unsigned char *pixexpendable);
+extern void paintSpallFb(struct application *ap);
+extern void paintGridFb(struct burst_state *s);
+extern int imageInit(struct burst_state *s);
+
+/* as far as I can tell the original burst code didn't actually use errfile,
+ * but since it is a defined command we will set up to support it */
+extern void brst_log(struct burst_state *s, int TYPE, const char *, ...);
+
 #endif  /* BURST_BURST_H */
 
 /*

Modified: brlcad/branches/dm-fb-merge/src/burst/grid.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/grid.cpp      2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/grid.cpp      2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -43,7 +43,7 @@
 #include "bu/units.h"
 
 #include "raytrace.h"
-#include "fb.h"
+#include "dm.h"
 
 #include "./burst.h"
 

Modified: brlcad/branches/dm-fb-merge/src/burst/old/CMakeLists.txt
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/old/CMakeLists.txt    2020-06-25 
13:21:23 UTC (rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/old/CMakeLists.txt    2020-06-25 
13:48:42 UTC (rev 76197)
@@ -26,7 +26,7 @@
   )
 
 
-BRLCAD_ADDEXEC(burst "${burst_old_SOURCES}" "librt;libfb;${M_LIBRARY}")
+BRLCAD_ADDEXEC(burst "${burst_old_SOURCES}" "librt;libdm;${M_LIBRARY}")
 
 set(burst_old_noinst_HEADERS
   CMakeLists.txt

Modified: brlcad/branches/dm-fb-merge/src/burst/old/burst.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/old/burst.h   2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/old/burst.h   2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -30,7 +30,7 @@
 #include <signal.h>
 
 #include "vmath.h"
-#include "fb.h"
+#include "dm.h"
 #include "raytrace.h"
 
 /* NSIG not always defined in <signal.h> */
@@ -524,7 +524,7 @@
 
 struct burst_state {
     Colors colorids;           /* ident range to color mappings for plots */
-    fb *fbiop;                 /* frame buffer specific access from libfb */
+    struct fb *fbiop;          /* frame buffer specific access from libfb */
     FILE *burstfp;             /* input stream for burst point locations */
     FILE *gridfp;              /* grid file output stream (2-d shots) */
     FILE *histfp;              /* histogram output stream (statistics) */

Modified: brlcad/branches/dm-fb-merge/src/burst/old/extern.h
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/old/extern.h  2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/old/extern.h  2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -31,7 +31,7 @@
 #include <stdlib.h>
 #include <string.h>
 
-#include "fb.h"
+#include "dm.h"
 
 #include "./burst.h"
 
@@ -111,7 +111,7 @@
 extern int roundToInt(fastf_t f);
 
 extern Colors colorids;
-extern fb *fbiop;
+extern struct fb *fbiop;
 extern FILE *burstfp;
 extern FILE *gridfp;
 extern FILE *histfp;

Modified: brlcad/branches/dm-fb-merge/src/burst/old/fb.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/old/fb.c      2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/old/fb.c      2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -30,7 +30,7 @@
 #include <signal.h>
 
 #include "bu/str.h"
-#include "fb.h"
+#include "dm.h"
 
 #include "./burst.h"
 #include "./ascii.h"

Modified: brlcad/branches/dm-fb-merge/src/burst/old/glob.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/old/glob.c    2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/old/glob.c    2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -27,7 +27,7 @@
 #include <signal.h>
 
 #include "vmath.h"
-#include "fb.h"
+#include "dm.h"
 #include "raytrace.h"
 
 #include "./burst.h"
@@ -35,7 +35,7 @@
 
 
 Colors colorids;       /* ident range to color mappings for plots */
-fb *fbiop = NULL;      /* frame buffer specific access from libfb */
+struct fb *fbiop = NULL;/* frame buffer specific access from libfb */
 FILE *burstfp = NULL;  /* input stream for burst point locations */
 FILE *gridfp = NULL;   /* grid file output stream (2-d shots) */
 FILE *histfp = NULL;   /* histogram output stream (statistics) */

Modified: brlcad/branches/dm-fb-merge/src/burst/old/grid.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/old/grid.c    2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/old/grid.c    2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -33,7 +33,7 @@
 #include "vmath.h"
 #include "bn.h"
 #include "raytrace.h"
-#include "fb.h"
+#include "dm.h"
 #include "bn/plot3.h"
 
 #include "./ascii.h"

Modified: brlcad/branches/dm-fb-merge/src/burst/old/paint.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/old/paint.c   2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/old/paint.c   2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -29,7 +29,7 @@
 
 #include "vmath.h"
 #include "raytrace.h"
-#include "fb.h"
+#include "dm.h"
 
 #include "./extern.h"
 

Modified: brlcad/branches/dm-fb-merge/src/burst/paint.cpp
===================================================================
--- brlcad/branches/dm-fb-merge/src/burst/paint.cpp     2020-06-25 13:21:23 UTC 
(rev 76196)
+++ brlcad/branches/dm-fb-merge/src/burst/paint.cpp     2020-06-25 13:48:42 UTC 
(rev 76197)
@@ -34,7 +34,7 @@
 #include "bu/log.h"
 #include "bu/str.h"
 #include "raytrace.h"
-#include "fb.h"
+#include "dm.h"
 
 #include "./burst.h"
 

Modified: brlcad/branches/dm-fb-merge/src/libtclcad/tclcad_obj.c
===================================================================
--- brlcad/branches/dm-fb-merge/src/libtclcad/tclcad_obj.c      2020-06-25 
13:21:23 UTC (rev 76196)
+++ brlcad/branches/dm-fb-merge/src/libtclcad/tclcad_obj.c      2020-06-25 
13:48:42 UTC (rev 76197)
@@ -69,6 +69,15 @@
 #include "icv/crop.h"
 #include "dm.h"
 
+#if defined(DM_OGL) || defined(DM_WGL)
+#  if defined(DM_WGL)
+#    include <tkwinport.h>
+#  endif
+#  ifdef HAVE_GL_GL_H
+#    include <GL/gl.h>
+#  endif
+#endif
+
 /* For the moment call internal libged functions - a cleaner
  * solution will be needed eventually */
 #include "../libged/ged_private.h"

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



_______________________________________________
BRL-CAD Source Commits mailing list
brlcad-commits@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/brlcad-commits

Reply via email to