27#ifndef __LIBFREEWRL_API_H__
28#define __LIBFREEWRL_API_H__
34#if defined(AQUA) || defined(_MSC_VER) || defined(_ANDROID)
35#ifndef _MIMIC_X11_SCREEN_BUTTONS
36#define _MIMIC_X11_SCREEN_BUTTONS
40#define ButtonRelease 5
42#define ButtonRecycle 7
46#define ButtonRecycle 7
52#ifdef COMPILING_IPHONE_FRONT_END
57 void fwl_initializeRenderSceneUpdateScene(
void);
65const char *libFreeWRL_get_version();
66const char *freewrl_get_version();
69const char *fwl_libFreeWRL_get_version();
70const char *fwl_freewrl_get_version();
85 long * winToEmbedInto;
92 bool frontend_handles_display_thread;
114void *fwl_init_instance();
115void fwl_initParams( freewrl_params_t *params) ;
117bool fwl_initFreeWRL(freewrl_params_t *params);
119void terminateFreeWRL();
121int fwl_parse_geometry_string(
const char* geometry,
int* out_width,
int* out_height,
122 int* out_xpos,
int* out_ypos,
int* out_wnum);
127int ConsoleMessage(
const char *fmt, ...);
131bool Anchor_ReplaceWorld();
134#define VIEWER_EXAMINE 1
136#define VIEWER_EXFLY 3
138#define VIEWER_SPHERICAL 5
141#define VIEWER_TPLANE 8
142#define VIEWER_RPLANE 9
143#define VIEWER_TURNTABLE 10
144#define VIEWER_LOOKAT 11
145#define VIEWER_EXPLORE 12
146#define VIEWER_YAWZ 13
148#define VIEWER_YAWPITCH 15
149#define VIEWER_ROLL 16
150#define VIEWER_DIST 17
153#define VIEWER_ZOOM 19
156#define CHORD_YAWPITCH 1
160void setStereoBufferStyle(
int);
167#define INT_ID_UNDEFINED -1
170#define RUNNINGASPLUGIN (isBrowserPlugin)
172extern char *BrowserFullPath;
174extern int _fw_pipe, _fw_FD;
175extern int _fw_browser_plugin;
176extern int isBrowserPlugin;
178extern uintptr_t _fw_instance;
182extern int with_libcurl;
189void fwl_set_strictParsing(
bool flag);
190void fwl_set_plugin_print(
bool flag);
191void fwl_set_occlusion_disable(
bool flag);
192void fwl_set_print_opengl_errors(
bool flag);
193void fwl_set_trace_threads(
bool flag);
194void fwl_set_texture_size(
unsigned int texture_size);
195unsigned int fwl_get_texture_size();
196void fwl_set_glClearColor (
float red ,
float green ,
float blue ,
float alpha);
197void fwl_thread_dump(
void);
198int fwg_get_unread_message_count(
void);
199char *fwg_get_last_message();
200void fwl_set_logfile(
char *);
201void fwl_set_nameTest(
char *);
202void fwl_set_skinning(
char);
205int DROIDDEBUG(
const char*pFmtStr, ...);
206void PRINTF_ALL(
const char*pFmtStr, ...);
225OLDCODE#ifdef HAVE_MOTIF
226OLDCODE #define MC_HAVE_MOTIF 1
228OLDCODE #define MC_HAVE_MOTIF 0
231OLDCODE#ifdef TARGET_MOTIF
232OLDCODE #define MC_TARGET_MOTIF 1
234OLDCODE #define MC_TARGET_MOTIF 0
237OLDCODE#ifdef _MSC_VER
238OLDCODE #define MC_MSC_HAVE_VER 1
240OLDCODE #define MC_MSC_HAVE_VER 0
246int fwl_StringConsoleMessage(
char* message);
248void fwl_init_SnapGif(
void);
249void fwl_set_SnapFile(
const char* file);
250void fwl_set_SnapTmp(
const char* file);
251void fwl_set_LineWidth(
float lwidth);
252void fwl_set_KeyString(
const char *str);
253void fwl_setCurXY(
int x,
int y);
254void fwl_do_keyPress(
char kp,
int type);
255void fwl_doQuit(
char *,
int);
256void fwl_doQuitInstance(
void *instance);
257void fwl_updateScreenDim(
int wi,
int he);
258void fwl_doQuitAndWait();
259void fwl_set_viewer_type(
const int type);
261int fwl_get_modeRecord();
262void fwl_set_modeRecord();
263void fwl_set_modePlayback();
264void set_MIDITransport(
int method);
271#define RxTx_REFRESH 2
273#define RxTx_MOREVERBOSE 8
274#define RxTx_SILENT 16
276#define RxTx_PENDING 64
277#define RxTx_STOP_IF_DISCONNECT 128
278#define RxTx_STATE 32768
279#define RxTx_GET_VERBOSITY 65536
282int fwlio_RxTx_control(
int channel,
int action);
283char * fwlio_RxTx_getbuffer(
int channel) ;
284void fwlio_RxTx_sendbuffer(
char *fromFile,
int fromLine,
int channel,
char *str);
285char * fwlio_RxTx_waitfor(
int channel,
char *str);
287void fwl_init_EaiVerbose();
288char * fwl_EAI_handleBuffer(
char *tempEAIdata);
289int fwl_EAI_allDone();
290char * fwl_EAI_handleRest();
293void fwl_set_ScreenDist(
const char *optArg);
294void fwl_init_StereoDefaults(
void);
295void fwl_set_EyeDist(
const char *optArg);
296void fwl_init_Shutter(
void);
297void fwl_init_SideBySide(
void);
299void fwl_init_UpDown(
void);
300void fwl_init_cardboard(
void);
301void fwl_init_quadrant(
void);
302void fwl_setOrientation2(
int degrees);
303void fwl_set_AnaglyphParameter(
const char *optArg);
304void fwl_set_StereoParameter(
const char *optArg);
305int fwl_getDrawBoundingBoxes();
306void fwl_setDrawBoundingBoxes(
int drawbb);
307void fwl_setJsEngine(
char *optarg);
311void fwl_initializeDisplayThread();
312bool checkNetworkFile(
const char *fn);
313#define fwl_checkNetworkFile(a) checkNetworkFile(a)
316void fwl_initialize_parser();
317void fwl_initializeInputParseThread();
318int fwl_isinputThreadParsing();
319int fwl_isInputThreadInitialized();
322void fwl_initializeTextureThread();
323int fwl_isTextureinitialized();
326int fwl_isTextureParsing();
328void fwl_Next_ViewPoint(
void);
329void fwl_Prev_ViewPoint(
void);
330void fwl_First_ViewPoint(
void);
331void fwl_Last_ViewPoint(
void);
332void fwl_gotoViewpoint (
char *findThisOne);
334void fwl_startFreeWRL(
const char *url);
336int fwl_setCurrentHandle(
void *handle,
char*,
int);
337void fwl_clearCurrentHandle();
338void *fwl_getCurrentHandle(
char *,
int);
340void fwl_resource_push_single_request(
const char *request);
341void fwl_OSX_initializeParameters(
const char* initialURL);
342void fwl_resource_push_single_request_IE_main_scene(
const char *request);
344void fwg_frontEndReturningData(
char* fileData,
int length,
int width,
int height,
bool hasAlpha);
347void fwg_setConsoleParam_maxLines(
int);
348void fwg_setConsoleParam_maxLineLength(
int);
349void fwg_setConsoleParam_replaceTabs(
int);
351void fwg_setFrontEndOnX3DFileLoadedListener(
void (*frontEndOnX3DFileLoadedListener)(
char *));
354void fwg_frontEndReturningLocalFile(
char *localfile,
int iret);
355void fwl_RenderSceneUpdateScene(
void);
356void fwl_gotoCurrentViewPoint();
357void fwl_setScreenDim(
int wi,
int he);
358void fwl_setScreenDim0(
int wi,
int he);
359void fwl_setDensityFactor(
float density_factor);
360float fwl_getDensityFactor();
361int fwl_hwnd_to_windex(
void *hWnd);
362void fwl_setScreenDim1(
int wi,
int he,
int windex);
363bool fwl_initialize_GL(
void);
365int fwl_handle_aqua(
const int mev,
const unsigned int button,
int x,
int y);
367int fwl_handle_mouse(
int mev,
int button,
int x,
int y,
int windex);
368int fwl_handle_touch(
int mev,
unsigned int ID,
int x,
int y,
int windex);
369void fwl_handle_gyro(
float rx,
float ry,
float rz);
370void fwl_handle_accelerometer(
float ax,
float ay,
float az);
371void fwl_handle_magnetic(
float azimuth,
float pitch,
float roll);
375void fwl_replaceWorldNeeded(
char* str);
376int fwl_pollPromptForURL();
377int fwl_pollPromptForFile();
378void fwl_setPromptForURL(
int state);
379void fwl_setPromptForFile(
int state);
381char *fwg_frontEndWantsFileName(
void);
382int fv_display_initialize(
void);
383void fwl_initializeRenderSceneUpdateScene(
void);
384void fwl_setButDown(
int button,
int value);
388int fwl_get_headlight();
389char* fwl_getNavModeStr();
391int fwl_getLookatMode();
392int fwl_getCollision();
393void fwl_setCollision(
int state);
394int fwl_getAnaglyphSide(
int whichSide);
396void fwl_tmpFileLocation(
char *tmpFileLocation);
397void fwl_fontFileLocation(
char *fontFileLocation);
398int fwl_set_ui_colorscheme(
char *colorschemename);
399void fwl_set_ui_colors(
char *fourhtmlcolors);
400void fwl_get_ui_color(
char *use,
float *rgb);
401char *fwl_get_ui_colorschemename();
402void fwl_next_ui_colorscheme();
403int fwl_get_ui_color_changed();
404int fwl_set_sbh_pin_option(
char *optarg);
405int fwl_set_sbh_want_option(
char *optarg);
406void fwl_setShadingStyle(
int style);
407void fwl_set_sbh_pin(
int sb,
int mb);
408void fwl_get_sbh_pin(
int *sb,
int *mb);
409void fwl_set_target_fps(
int target_fps);
410int fwl_get_target_fps();
411void fwl_set_sbh_wantMenubar(
int want);
412int fwl_get_sbh_wantMenubar();
413void fwl_set_sbh_wantStatusbar(
int want);
414int fwl_get_sbh_wantStatusbar();
415void fwl_set_modulation(
int modulation);
416int fwl_get_modulation();
419int fwl_commandline(
char *cmdline);
421void fwl_setShift(
int ishift);
423void fwl_setHover(
int hover);
425void fwl_setPedal(
int pedal);
427void fwl_set_touchtype(
int ion);
428int fwl_get_touchtype();
431void fwl_setConsole_writePrimitive(
int ibool);
432void statusbar_set_window_size(
int width,
int height);
433int statusbar_handle_mouse(
int mev,
int butnum,
int mouseX,
int mouseY);
435void *fwl_frontenditem_dequeue();
436char* fwl_resitem_getURL(
void *res);
437char* fwl_resitem_getTempDir(
void *res);
438void fwl_resitem_setActualFile(
void *res,
char *fname);
439int fwl_resitem_getStatus(
void *res);
440void fwl_resitem_setStatus(
void *resp,
int status);
441int fwl_resitem_getType(
void *res);
442int fwl_resitem_getMediaType(
void *res);
443void fwl_resitem_enqueuNextMulti(
void *res);
444void fwl_resitem_setLocalPath(
void *res,
char* path);
445void fwl_resitem_enqueue(
void *res);
446void fwl_resitem_setDownloadThread(
void *res,
void *thread);
447void *fwl_resitem_getDownloadThread(
void *res);
448void *fwl_resitem_getGlobal(
void *res);
451void fwl_set_testset(
int iset);
452int fwl_get_allow_DIS();
453void fwl_set_allow_DIS(
int allow);
454void fwl_set_DISverbose(
int verbose);
455void fwl_set_DISaddress(
char* address);
456void fwl_set_DISport(
int port);
457void fwl_set_DISsite(
int site);
458void fwl_set_DISapplication(
int app);
460int file2blob(
void *res);
463void SSRserver_enqueue_request_and_wait(
void *fwctx,
void *request);