pview_funcs.cc 2.47 KiB
#include "pview_funcs.h"
int pp_parse_args( struct stuff **, int argc, char *argv[], char *fromfname, void * );
void pp_clk_init();
void readrc( struct stuff **stp );
GLuint pviewPickbuffer[16384];
#if defined(_MSC_VER) && defined(_DEBUG)
void plugin_init();
#else //_MSC_VER
extern "C" {
void plugin_init();
};
#endif //_MSC_VER
char _pickmsg[1024] = "";
#ifdef EMBEDHACK
std::string _pviewmsg;
#endif //EMBEDHACK
void pviewInit(const char *_filename)
{
pp_clk_init();
ppui.view = new Fl_Gview(0,0,100,100,"Pview");
static Point black = {0,0,0};
ppui.view->bgcolor(&black);
parti_add_commands(pp_parse_args,"partiview",NULL);
// parti_add_reader( pp_read, "partiview", NULL );
plugin_init();
// pp_ui_init();
// ppui.view->add_drawer( drawjunk, NULL, NULL, NULL, 0 );
ppui.view->pickbuffer(COUNT(pviewPickbuffer),pviewPickbuffer);
ppui.view->zspeed = 5;
ppui.view->farclip(2500);
ppui.censize = 1.0;
ppui.pickrange = 3.5;
ppui.view->movingtarget(0);
ppui.view->msg = msg;
ppui.playspeed = 1;
// ppui.playframe->lstep(10);
parti_object("g1",NULL,1);
readrc(&ppui.st);
if (_filename)
specks_read(&ppui.st,findfile(NULL,(char *)_filename));
// parti_set_timebase( ppui.st, 0.0 );
// parti_set_timestep( ppui.st, 0.0 );
// parti_set_running( ppui.st, 0 );
// parti_set_fwd( ppui.st, 1 );
// ppui.view->set_swap_func(swap);
// ppui.view->notifier( pp_viewchanged, ppui.st );
// ppui_refresh( ppui.st );
}
void pviewEval(const char *_command)
{
char command[1024];
char *start;
char *end;
strcpy(command,_command);
start = command;
do
{
end = strchr(start,';');
if (end) {
*end = '\0';
end++;
}
if (strlen(start) <= 0) break;
#define MAXARGS 128
char *av[MAXARGS];
int ac;
char *s = start;
for (ac = 0; ac < MAXARGS-1; ac++) {
av[ac] = strtok(s, " \t\n");
if (av[ac] == NULL) break;
s = NULL;
}
av[ac] = NULL;
specks_parse_args(&ppui.st,ac,av);
start = end;
} while (end);
return;
}
void _pview_pickmsg(const char *_fmt, ... )
{
va_list args;
va_start(args,_fmt);
vsprintf(_pickmsg,_fmt,args);
va_end(args);
}
bool pviewPicked(void)
{
if (strlen(_pickmsg)>0)
return true;
return false;
}
#ifdef EMBEDHACK
bool pviewMessage(void)
{
return !_pviewmsg.empty();
}
#endif //EMBEDHACK