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
49#ifdef COMPILING_IPHONE_FRONT_END
54 void fwl_initializeRenderSceneUpdateScene(
void);
62const char *libFreeWRL_get_version();
63const char *freewrl_get_version();
66const char *fwl_libFreeWRL_get_version();
67const char *fwl_freewrl_get_version();
81 long int winToEmbedInto;
87 bool frontend_handles_display_thread;
109void *fwl_init_instance();
114void terminateFreeWRL();
116int fwl_parse_geometry_string(
const char *geometry,
int *out_width,
int *out_height,
117 int *out_xpos,
int *out_ypos);
122int ConsoleMessage(
const char *fmt, ...);
126bool Anchor_ReplaceWorld();
129#define VIEWER_EXAMINE 1
131#define VIEWER_EXFLY 3
133#define VIEWER_SPHERICAL 5
136#define VIEWER_TPLANE 8
137#define VIEWER_RPLANE 9
138#define VIEWER_TURNTABLE 10
139#define VIEWER_LOOKAT 11
140#define VIEWER_EXPLORE 12
141#define VIEWER_YAWZ 13
143#define VIEWER_YAWPITCH 15
144#define VIEWER_ROLL 16
145#define VIEWER_DIST 17
148#define CHORD_YAWPITCH 1
152void setStereoBufferStyle(
int);
159#define INT_ID_UNDEFINED -1
162#define RUNNINGASPLUGIN (isBrowserPlugin)
164extern char *BrowserFullPath;
166extern int _fw_pipe, _fw_FD;
167extern int _fw_browser_plugin;
168extern int isBrowserPlugin;
170extern uintptr_t _fw_instance;
174extern int with_libcurl;
181void fwl_set_strictParsing(
bool flag);
182void fwl_set_plugin_print(
bool flag);
183void fwl_set_occlusion_disable(
bool flag);
184void fwl_set_print_opengl_errors(
bool flag);
185void fwl_set_trace_threads(
bool flag);
186void fwl_set_texture_size(
unsigned int texture_size);
187unsigned int fwl_get_texture_size();
188void fwl_set_glClearColor (
float red ,
float green ,
float blue ,
float alpha);
189void fwl_thread_dump(
void);
190int fwg_get_unread_message_count(
void);
191char *fwg_get_last_message();
192void fwl_set_logfile(
char *);
193void fwl_set_nameTest(
char *);
194void fwl_set_testPath(
char *);
195void fwl_set_jsengine(
char *);
198int DROIDDEBUG(
const char*pFmtStr, ...);
199void PRINTF_ALL(
const char*pFmtStr, ...);
218OLDCODE#ifdef HAVE_MOTIF
219OLDCODE #define MC_HAVE_MOTIF 1
221OLDCODE #define MC_HAVE_MOTIF 0
224OLDCODE#ifdef TARGET_MOTIF
225OLDCODE #define MC_TARGET_MOTIF 1
227OLDCODE #define MC_TARGET_MOTIF 0
230OLDCODE#ifdef _MSC_VER
231OLDCODE #define MC_MSC_HAVE_VER 1
233OLDCODE #define MC_MSC_HAVE_VER 0
239int fwl_StringConsoleMessage(
char* message);
241void fwl_init_SnapGif(
void);
242void fwl_set_SnapFile(
const char* file);
243void fwl_set_SnapTmp(
const char* file);
244void fwl_set_LineWidth(
float lwidth);
245void fwl_set_KeyString(
const char *str);
246void fwl_setCurXY(
int x,
int y);
247void fwl_do_keyPress(
char kp,
int type);
248void fwl_doQuit(
char *,
int);
249void fwl_doQuitInstance(
void *instance);
250void fwl_updateScreenDim(
int wi,
int he);
251void fwl_doQuitAndWait();
252void fwl_set_viewer_type(
const int type);
263#define RxTx_REFRESH 2
265#define RxTx_MOREVERBOSE 8
266#define RxTx_SILENT 16
268#define RxTx_PENDING 64
269#define RxTx_STOP_IF_DISCONNECT 128
270#define RxTx_STATE 32768
271#define RxTx_GET_VERBOSITY 65536
274int fwlio_RxTx_control(
int channel,
int action);
275char * fwlio_RxTx_getbuffer(
int channel) ;
276void fwlio_RxTx_sendbuffer(
char *fromFile,
int fromLine,
int channel,
char *str);
277char * fwlio_RxTx_waitfor(
int channel,
char *str);
279void fwl_init_EaiVerbose();
280char * fwl_EAI_handleBuffer(
char *tempEAIdata);
281int fwl_EAI_allDone();
282char * fwl_EAI_handleRest();
285void fwl_set_ScreenDist(
const char *optArg);
286void fwl_init_StereoDefaults(
void);
287void fwl_set_EyeDist(
const char *optArg);
288void fwl_init_Shutter(
void);
289void fwl_init_SideBySide(
void);
291void fwl_init_UpDown(
void);
292void fwl_set_AnaglyphParameter(
const char *optArg);
293void fwl_set_StereoParameter(
const char *optArg);
294void fwl_setDrawBoundingBoxes(
int drawbb);
295void fwl_setJsEngine(
char *optarg);
299void fwl_initializeDisplayThread();
300bool checkNetworkFile(
const char *fn);
301#define fwl_checkNetworkFile(a) checkNetworkFile(a)
304void fwl_initialize_parser();
305void fwl_initializeInputParseThread();
306int fwl_isinputThreadParsing();
307int fwl_isInputThreadInitialized();
310void fwl_initializeTextureThread();
311int fwl_isTextureinitialized();
314int fwl_isTextureParsing();
316void fwl_Next_ViewPoint(
void);
317void fwl_Prev_ViewPoint(
void);
318void fwl_First_ViewPoint(
void);
319void fwl_Last_ViewPoint(
void);
320void fwl_gotoViewpoint (
char *findThisOne);
322void fwl_startFreeWRL(
const char *url);
324int fwl_setCurrentHandle(
void *handle,
char*,
int);
325void fwl_clearCurrentHandle();
326void *fwl_getCurrentHandle(
char *,
int);
328void fwl_resource_push_single_request(
const char *request);
329void fwl_OSX_initializeParameters(
const char* initialURL);
330void fwl_resource_push_single_request_IE_main_scene(
const char *request);
332void fwg_frontEndReturningData(
char* fileData,
int length,
int width,
int height,
bool hasAlpha);
335void fwg_setConsoleParam_maxLines(
int);
336void fwg_setConsoleParam_maxLineLength(
int);
337void fwg_setConsoleParam_replaceTabs(
int);
339void fwg_setFrontEndOnX3DFileLoadedListener(
void (*frontEndOnX3DFileLoadedListener)(
char *));
342void fwg_frontEndReturningLocalFile(
char *localfile,
int iret);
343void fwl_RenderSceneUpdateScene(
void);
344void fwl_gotoCurrentViewPoint();
345void fwl_setScreenDim(
int wi,
int he);
346void fwl_setScreenDim0(
int wi,
int he);
347void fwl_setDensityFactor(
float density_factor);
348float fwl_getDensityFactor();
349int fwl_hwnd_to_windex(
void *hWnd);
350void fwl_setScreenDim1(
int wi,
int he,
int windex);
351bool fwl_initialize_GL(
void);
353int fwl_handle_aqua(
const int mev,
const unsigned int button,
int x,
int y);
355int fwl_handle_mouse(
int mev,
int button,
int x,
int y,
int windex);
356int fwl_handle_touch(
int mev,
unsigned int ID,
int x,
int y,
int windex);
357void fwl_handle_gyro(
float rx,
float ry,
float rz);
358void fwl_handle_accelerometer(
float ax,
float ay,
float az);
359void fwl_handle_magnetic(
float azimuth,
float pitch,
float roll);
363void fwl_replaceWorldNeeded(
char* str);
364int fwl_pollPromptForURL();
365int fwl_pollPromptForFile();
366void fwl_setPromptForURL(
int state);
367void fwl_setPromptForFile(
int state);
369char *fwg_frontEndWantsFileName(
void);
370int fv_display_initialize(
void);
371void fwl_initializeRenderSceneUpdateScene(
void);
372void fwl_setButDown(
int button,
int value);
376int fwl_get_headlight();
377char* fwl_getNavModeStr();
379int fwl_getLookatMode();
380int fwl_getCollision();
381void fwl_setCollision(
int state);
382int fwl_getAnaglyphSide(
int whichSide);
384void fwl_tmpFileLocation(
char *tmpFileLocation);
385void fwl_fontFileLocation(
char *fontFileLocation);
386int fwl_set_ui_colorscheme(
char *colorschemename);
387void fwl_set_ui_colors(
char *fourhtmlcolors);
388void fwl_get_ui_color(
char *use,
float *rgb);
389char *fwl_get_ui_colorschemename();
390void fwl_next_ui_colorscheme();
391int fwl_get_ui_color_changed();
392int fwl_set_sbh_pin_option(
char *optarg);
393int fwl_set_sbh_want_option(
char *optarg);
394void fwl_setShadingStyle(
int style);
395void fwl_set_sbh_pin(
int sb,
int mb);
396void fwl_get_sbh_pin(
int *sb,
int *mb);
397void fwl_set_target_fps(
int target_fps);
398int fwl_get_target_fps();
399void fwl_set_sbh_wantMenubar(
int want);
400int fwl_get_sbh_wantMenubar();
401void fwl_set_sbh_wantStatusbar(
int want);
402int fwl_get_sbh_wantStatusbar();
403void fwl_set_modulation(
int modulation);
404int fwl_get_modulation();
407int fwl_commandline(
char *cmdline);
409void fwl_setShift(
int ishift);
411void fwl_setHover(
int hover);
413void fwl_setPedal(
int pedal);
415void fwl_set_emulate_multitouch(
int ion);
416int fwl_get_emulate_multitouch();
419void fwl_setConsole_writePrimitive(
int ibool);
420void statusbar_set_window_size(
int width,
int height);
421int statusbar_handle_mouse(
int mev,
int butnum,
int mouseX,
int mouseY);
423void *fwl_frontenditem_dequeue();
424char* fwl_resitem_getURL(
void *res);
425char* fwl_resitem_getTempDir(
void *res);
426void fwl_resitem_setActualFile(
void *res,
char *fname);
427int fwl_resitem_getStatus(
void *res);
428void fwl_resitem_setStatus(
void *resp,
int status);
429int fwl_resitem_getType(
void *res);
430int fwl_resitem_getMediaType(
void *res);
431void fwl_resitem_enqueuNextMulti(
void *res);
432void fwl_resitem_setLocalPath(
void *res,
char* path);
433void fwl_resitem_enqueue(
void *res);
434void fwl_resitem_setDownloadThread(
void *res,
void *thread);
435void *fwl_resitem_getDownloadThread(
void *res);
436void *fwl_resitem_getGlobal(
void *res);
439int fwl_get_allow_DIS();
440void fwl_set_allow_DIS(
int allow);
443int file2blob(
void *res);
446void SSRserver_enqueue_request_and_wait(
void *fwctx,
void *request);