Open Inventor Release 2024.1.1
 
Loading...
Searching...
No Matches
port.h
1/*=======================================================================
2 *** THE CONTENT OF THIS WORK IS PROPRIETARY TO FEI S.A.S, (FEI S.A.S.), ***
3 *** AND IS DISTRIBUTED UNDER A LICENSE AGREEMENT. ***
4 *** ***
5 *** REPRODUCTION, DISCLOSURE, OR USE, IN WHOLE OR IN PART, OTHER THAN AS ***
6 *** SPECIFIED IN THE LICENSE ARE NOT TO BE UNDERTAKEN EXCEPT WITH PRIOR ***
7 *** WRITTEN AUTHORIZATION OF FEI S.A.S. ***
8 *** ***
9 *** RESTRICTED RIGHTS LEGEND ***
10 *** USE, DUPLICATION, OR DISCLOSURE BY THE GOVERNMENT OF THE CONTENT OF THIS ***
11 *** WORK OR RELATED DOCUMENTATION IS SUBJECT TO RESTRICTIONS AS SET FORTH IN ***
12 *** SUBPARAGRAPH (C)(1) OF THE COMMERCIAL COMPUTER SOFTWARE RESTRICTED RIGHT ***
13 *** CLAUSE AT FAR 52.227-19 OR SUBPARAGRAPH (C)(1)(II) OF THE RIGHTS IN ***
14 *** TECHNICAL DATA AND COMPUTER SOFTWARE CLAUSE AT DFARS 52.227-7013. ***
15 *** ***
16 *** COPYRIGHT (C) 1996-2022 BY FEI S.A.S, ***
17 *** BORDEAUX, FRANCE ***
18 *** ALL RIGHTS RESERVED ***
19**=======================================================================*/
20/*=======================================================================
21** Author : VSG (MMM YYYY)
22**=======================================================================*/
23#ifndef _INVENTOR_PORT_H
24#define _INVENTOR_PORT_H
25
26#include <SbTypes.h>
27
28// kept for compatibility but no more used
29#define __IvStaticImport
30
31#ifdef __GNUC__
32#define OIV_FUNCTION __PRETTY_FUNCTION__
33#else
34#define OIV_FUNCTION __FUNCTION__
35#endif
36
37#ifdef _WIN32
38
39
40# pragma warning( disable: 4800)
41# pragma warning( disable: 4251)
42
43#include <Inventor/Win/SoWinBeginStrict.h>
44
45# include <windows.h>
46# include <winsock.h>
47# include <math.h>
48# include <string.h>
49#ifdef LIBRARYBUILD
50//Don't force customers to use this definition
51# define strcasecmp _stricmp
52#endif
53
54#ifndef _USE_MATH_DEFINES
55# ifdef _WIN64
56# define _USE_MATH_DEFINES
57# endif
58#endif
59
60# include <math.h>
61
62#ifndef _USE_MATH_DEFINES
63#ifndef M_E
64# define M_E 2.7182818284590452354
65#endif
66#ifndef M_LOG2E
67# define M_LOG2E 1.4426950408889634074
68#endif
69#ifndef M_LOG10E
70# define M_LOG10E 0.43429448190325182765
71#endif
72#ifndef M_LN2
73# define M_LN2 0.69314718055994530942
74#endif
75#ifndef M_LN10
76# define M_LN10 2.30258509299404568402
77#endif
78#ifndef M_PI
79# define M_PI 3.14159265358979323846
80#endif
81#ifndef M_PI_2
82# define M_PI_2 1.57079632679489661923
83#endif
84#ifndef M_PI_4
85# define M_PI_4 0.78539816339744830962
86#endif
87#ifndef M_1_PI
88# define M_1_PI 0.31830988618379067154
89#endif
90#ifndef M_2_PI
91# define M_2_PI 0.63661977236758134308
92#endif
93#ifndef M_2_SQRTPI
94# define M_2_SQRTPI 1.12837916709551257390
95#endif
96#ifndef M_SQRT2
97# define M_SQRT2 1.41421356237309504880
98#endif
99#ifndef M_SQRT1_2
100# define M_SQRT1_2 0.70710678118654752440
101#endif
102#ifndef MAXFLOAT
103# define MAXFLOAT ((float)3.40282346638528860e+38)
104#endif
105#endif
106
107
108#if defined(_MSC_VER) && (_MSC_VER < 1300)
109# define __FUNCTION__ "NO__FUNCTION__FOR_VC6"
110#endif
111
112#ifdef bcopy
113# undef bcopy
114#endif
115#define bcopy(from,to,len) memcpy((to),(from),(len))
116
117#include <SoVersion.h>
118
119#define VC_DLL_EXPORT __declspec(dllexport)
120#define VC_DLL_IMPORT __declspec(dllimport)
121
122#include <Inventor/Win/SoWinEndStrict.h>
123
124#include <Inventor/SoInventorImageLibName.h>
125
126// DialogViz_EXPORTS is defined only when building DialogViz dll
127#if defined(DialogVizXt_EXPORTS) || defined(DialogVizWin_EXPORTS) || defined(DialogVizQt_EXPORTS)
128# define VC_DLL_EXPORT
129#else
130# define VC_DLL_IMPORT
131#endif
132
133// DialogVizQt_EXPORTS is defined only when building DialogVizQt dll
134#ifdef DialogVizQt_EXPORTS
135# define VC_DLL_EXPORT
136#else
137# define VC_DLL_IMPORT
138#endif
139
140// HardCopy_EXPORTS is defined only when building HardCopy dll
141#ifdef HardCopy_EXPORTS
142# define VC_DLL_EXPORT
143#else
144# define VC_DLL_IMPORT
145#endif
146
147// HardCopyWin_EXPORTS is defined only when building HardCopyW dll
148#ifdef HardCopyWin_EXPORTS
149# define VC_DLL_EXPORT
150#else
151# define VC_DLL_IMPORT
152#endif
153
154// IvTuneExtenderAPI_EXPORTS is defined only when building IvTuneExtender dll
155#ifdef IvTuneExtenderAPI_EXPORTS
156# define VC_DLL_EXPORT
157#else
158# define VC_DLL_IMPORT
159#endif
160
161// MeshViz_EXPORTS is defined only when building MeshViz dll
162#ifdef MeshViz_EXPORTS
163# define VC_DLL_EXPORT
164#else
165# define VC_DLL_IMPORT
166#endif
167
168// MeshVizWin_EXPORTS is defined only when building MeshVizWin dll
169#ifdef MeshVizWin_EXPORTS
170# define VC_DLL_EXPORT
171#else
172# define VC_DLL_IMPORT
173#endif
174
175// Inventor_EXPORTS is defined only when building Inventor dll
176#ifdef Inventor_EXPORTS
177# define VC_DLL_EXPORT
178#else
179# define VC_DLL_IMPORT
180#endif
181
182// InventorBase_EXPORTS is defined only when building InventorBase dll
183#ifdef InventorBase_EXPORTS
184# define VC_DLL_EXPORT
185#else
186# define VC_DLL_IMPORT
187#endif
188
189// InventorGL_EXPORTS is defined only when building InventorBase dll
190#ifdef InventorGL_EXPORTS
191# define VC_DLL_EXPORT
192#else
193# define VC_DLL_IMPORT
194#endif
195
196// InventorGL_EXPORTS is defined only when building InventorBase dll
197#ifdef InventorImage_EXPORTS
198# define VC_DLL_EXPORT
199#else
200# define VC_DLL_IMPORT
201#endif
202
203// InventorWin_EXPORTS is defined only when building InventorWin dll
204#ifdef InventorWin_EXPORTS
205# define VC_DLL_EXPORT
206#else
207# define VC_DLL_IMPORT
208#endif
209#define
210
211// InventorQt_EXPORTS is defined only when building InventorQt dll
212#ifdef InventorQt_EXPORTS
213# define VC_DLL_EXPORT
214#else
215# define VC_DLL_IMPORT
216#endif
217
218// InventorGui_EXPORTS is defined only when building InventorGui dll
219#ifdef InventorGui_EXPORTS
220# define VC_DLL_EXPORT
221#else
222# define VC_DLL_IMPORT
223#endif
224
225// IvDLCSG_EXPORTS is defined only when building IvDLCSG dll
226#ifdef IvDLCSG_EXPORTS
227# define IVDLCSG_API VC_DLL_EXPORT
228#else
229# define IVDLCSG_API VC_DLL_IMPORT
230#endif
231
232// IvTune_EXPORTS is defined only when building IvTune dll
233#ifdef IvTune_EXPORTS
234# define VC_DLL_EXPORT
235#else
236# define VC_DLL_IMPORT
237#endif
238
239// IvTunePlg_EXPORTS is defined only when building IvTune plugins
240#ifdef IvTunePlg_EXPORTS
241# define IVTUNEPLG_API VC_DLL_EXPORT
242#else
243# define IVTUNEPLG_API VC_DLL_IMPORT
244#endif
245
246// RemoteVizServices_EXPORTS is defined only when building RemoteViz dll
247#ifdef RemoteVizServices_EXPORTS
248# define RENDERSERVICE_API VC_DLL_EXPORT
249#else
250# define RENDERSERVICE_API VC_DLL_IMPORT
251#endif
252
253// RemoteVizClient_EXPORTS is defined only when building RemoteVizClient dll
254#ifdef RemoteVizClient_EXPORTS
255# define RVCLIENT_API VC_DLL_EXPORT
256#else
257# define RVCLIENT_API VC_DLL_IMPORT
258#endif
259
260// ScaleViz_EXPORTS is defined only when building Inv dll
261#ifdef ScaleVizRemote_EXPORTS
262# define SCALEVIZREMOTE_API VC_DLL_EXPORT
263#else
264# define SCALEVIZREMOTE_API VC_DLL_IMPORT
265#endif
266
267// ScaleViz_EXPORTS is defined only when building Inv dll
268#ifdef ScaleViz_EXPORTS
269# define VC_DLL_EXPORT
270#else
271# define VC_DLL_IMPORT
272#endif
273
274// VolumeViz_EXPORTS is defined only when building VolumeViz dll
275#ifdef VolumeViz_EXPORTS
276# define VC_DLL_EXPORT
277#else
278# define VC_DLL_IMPORT
279#endif
280
281// LDM_EXPORTS is defined only when building LDM dll
282#ifdef LDM_EXPORTS
283# define VC_DLL_EXPORT
284#else
285# define VC_DLL_IMPORT
286#endif
287
288// ViewerComponents_EXPORTS is defined only when building ViewerComponents dll
289#ifdef ViewerComponents_EXPORTS
290# define VIEWERCOMPONENTS_API VC_DLL_EXPORT
291#else
292# define VIEWERCOMPONENTS_API VC_DLL_IMPORT
293#endif
294
295// WinViewerComponents_EXPORTS is defined only when building WinViewerComponents dll
296#ifdef WinViewerComponents_EXPORTS
297# define WINVIEWERCOMPONENTS_API VC_DLL_EXPORT
298#else
299# define WINVIEWERCOMPONENTS_API VC_DLL_IMPORT
300#endif
301
302// MFCViewerComponents_EXPORTS is defined only when building MFCViewerComponents dll
303#ifdef MFCViewerComponents_EXPORTS
304# define MFCVIEWERCOMPONENTS_API VC_DLL_EXPORT
305#else
306# define MFCVIEWERCOMPONENTS_API VC_DLL_IMPORT
307#endif
308
309// QtViewerComponents_EXPORTS is defined only when building QtViewerComponents dll
310#ifdef QtViewerComponents_EXPORTS
311# define QTVIEWERCOMPONENTS_API VC_DLL_EXPORT
312#else
313# define QTVIEWERCOMPONENTS_API VC_DLL_IMPORT
314#endif
315
316// InventorMedical_EXPORTS is defined only when building InventorMedical dll
317#ifdef InventorMedical_EXPORTS
318# define INVENTORMEDICAL_API VC_DLL_EXPORT
319#else
320# define INVENTORMEDICAL_API VC_DLL_IMPORT
321#endif
322
323#ifdef OIV_ENABLE_LEAKDETECTOR
324#include <vld.h>
325#endif
326
327#else /********************************************** UNIX **********************************************/
328
329#if __GNUC__ > 3
330 #define GCC_DLLEXPORT __attribute__ ((visibility("default")))
331#else
332 #define GCC_DLLEXPORT
333#endif
334
335//always set the attribute with GCC
336#define VC_DLL_IMPORT GCC_DLLEXPORT
337#define VC_DLL_EXPORT GCC_DLLEXPORT
338
339# include <strings.h>
340
341# ifndef APIENTRY
342# define APIENTRY
343# endif
344# ifndef CALLBACK
345# define CALLBACK
346# endif
347# ifndef WINGDIAPI
348# define WINGDIAPI
349# endif
350# ifndef HDC
351# define HDC void *
352# endif
353# if defined(_HP_NAMESPACE_STD)
354# include <limits>
355# endif
356# ifndef UINT
357 typedef unsigned int UINT;
358# endif
359
360# define GCC_DLLEXPORT
361# define GCC_DLLEXPORT
362# define GCC_DLLEXPORT
363# define GCC_DLLEXPORT
364# define GCC_DLLEXPORT
365# define GCC_DLLEXPORT
366# define GCC_DLLEXPORT
367# define GCC_DLLEXPORT
368# define GCC_DLLEXPORT
369# define GCC_DLLEXPORT
370# define GCC_DLLEXPORT
371# define GCC_DLLEXPORT
372# define GCC_DLLEXPORT
373# define GCC_DLLEXPORT
374# define IVDLCSG_API GCC_DLLEXPORT
375# define GCC_DLLEXPORT
376# define GCC_DLLEXPORT
377# define IVTUNEPLG_API GCC_DLLEXPORT
378# define RENDERSERVICE_API GCC_DLLEXPORT
379# define RVCLIENT_API GCC_DLLEXPORT
380# define GCC_DLLEXPORT
381# define SCALEVIZREMOTE_API GCC_DLLEXPORT
382# define GCC_DLLEXPORT
383# define GCC_DLLEXPORT
384# define VIEWERCOMPONENTS_API GCC_DLLEXPORT
385# define WINVIEWERCOMPONENTS_API GCC_DLLEXPORT
386# define MFCVIEWERCOMPONENTS_API GCC_DLLEXPORT
387# define QTVIEWERCOMPONENTS_API GCC_DLLEXPORT
388# define INVENTORMEDICAL_API GCC_DLLEXPORT
389
390# define SO_DLL_SUFFIX ""
391# define SO_LIB_SUFFIX ""
392
393#endif /* UNIX */
394
395#ifndef __APPLE__
396typedef void* WindowPtr;
397#endif
398
399#endif /* _INVENTOR_PORT_H */
400
401