home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / extensions / include / PEX / PEX.h < prev    next >
Encoding:
C/C++ Source or Header  |  1993-07-21  |  28.4 KB  |  983 lines

  1. /* $XConsortium: PEX.h,v 5.10 92/04/23 17:43:16 hersh Exp $ */
  2.  
  3. /***********************************************************
  4. Copyright 1989, 1990, 1991 by Sun Microsystems, Inc. and the X Consortium.
  5.  
  6.                         All Rights Reserved
  7.  
  8. Permission to use, copy, modify, and distribute this software and its 
  9. documentation for any purpose and without fee is hereby granted, 
  10. provided that the above copyright notice appear in all copies and that
  11. both that copyright notice and this permission notice appear in 
  12. supporting documentation, and that the names of Sun Microsystems,
  13. the X Consortium, and MIT not be used in advertising or publicity 
  14. pertaining to distribution of the software without specific, written 
  15. prior permission.  
  16.  
  17. SUN MICROSYSTEMS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 
  18. INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT 
  19. SHALL SUN MICROSYSTEMS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL 
  20. DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  21. WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
  22. ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
  23. SOFTWARE.
  24.  
  25. ******************************************************************/
  26.  
  27.  
  28. #ifndef PEX_H
  29. #define PEX_H
  30.  
  31. #ifdef LOCAL_PEX_NAME
  32. #define PEX_NAME_STRING        LOCAL_PEX_NAME
  33. #else
  34. #define PEX_NAME_STRING        "X3D-PEX"
  35. #endif
  36.  
  37. /* Matches revision 5.1C */
  38.  
  39. #define PEX_PROTO_MAJOR        5    /* current protocol version */
  40. #define PEX_PROTO_MINOR        1    /* current minor version */
  41.  
  42. /* Events */
  43. #define PEXMaxHitsReached     0
  44. #define PEXNumberEvents       1
  45.  
  46. /* Subsets */
  47. #define PEXCompleteImplementation    0
  48. #define PEXImmediateModeOnly        1
  49. #define PEXPhigsWksOnly            2
  50. #define PEXStructureModeOnly        4
  51.  
  52. /* Resources */
  53. #define PEXAlreadyFreed         1
  54.  
  55. /* Asf Attributes */
  56.  
  57. /* Masks for setting Asf's */
  58. #define PEXMarkerTypeAsf         (1L<<0)
  59. #define PEXMarkerScaleAsf         (1L<<1)
  60. #define PEXMarkerColourAsf         (1L<<2)
  61. #define PEXTextFontIndexAsf         (1L<<3)
  62. #define PEXTextPrecAsf             (1L<<4)
  63. #define PEXCharExpansionAsf         (1L<<5)
  64. #define PEXCharSpacingAsf         (1L<<6)
  65. #define PEXTextColourAsf         (1L<<7)
  66. #define PEXLineTypeAsf             (1L<<8)
  67. #define PEXLineWidthAsf             (1L<<9)
  68. #define PEXLineColourAsf        (1L<<10)
  69. #define PEXCurveApproxAsf        (1L<<11)
  70. #define PEXPolylineInterpAsf        (1L<<12)
  71. #define PEXInteriorStyleAsf        (1L<<13)
  72. #define PEXInteriorStyleIndexAsf    (1L<<14)
  73. #define PEXSurfaceColourAsf        (1L<<15)
  74. #define PEXSurfaceInterpAsf        (1L<<16)
  75. #define PEXReflectionModelAsf        (1L<<17)
  76. #define PEXReflectionAttrAsf        (1L<<18)
  77. #define PEXBfInteriorStyleAsf        (1L<<19)
  78. #define PEXBfInteriorStyleIndexAsf    (1L<<20)
  79. #define PEXBfSurfaceColourAsf        (1L<<21)
  80. #define PEXBfSurfaceInterpAsf        (1L<<22)
  81. #define PEXBfReflectionModelAsf        (1L<<23)
  82. #define PEXBfReflectionAttrAsf        (1L<<24)
  83. #define PEXSurfaceApproxAsf        (1L<<25)
  84. #define PEXSurfaceEdgesAsf        (1L<<26)
  85. #define PEXSurfaceEdgeTypeAsf        (1L<<27)
  86. #define PEXSurfaceEdgeWidthAsf        (1L<<28)
  87. #define PEXSurfaceEdgeColourAsf        (1L<<29)
  88. #define PEXMaxAsfShift    29
  89.  
  90. /* Asf Values */
  91. #define PEXBundled        0
  92. #define PEXIndividual        1
  93.  
  94. /* Composition */
  95. #define PEXPreConcatenate    0
  96. #define PEXPostConcatenate    1
  97. #define PEXReplace        2
  98.  
  99. /* Cull mode */
  100. /* 0 None */
  101. #define PEXBackFaces    1
  102. #define PEXFrontFaces    2
  103.  
  104. /* Curve Type  and Surface Type */
  105. #define PEXRational    0
  106. #define PEXNonRational    1
  107.  
  108. /* Edit Mode */
  109. #define PEXStructureInsert    0
  110. #define PEXStructureReplace    1 
  111.  
  112. /* Whence values */
  113. #define PEXBeginning    0
  114. #define PEXCurrent    1
  115. #define PEXEnd        2
  116.  
  117. /* Match Draw Type */
  118. #define PEXDontCare     0
  119. #define PEXWindow       1
  120. #define PEXPixmap       2
  121. #define PEXBuffer       3
  122.  
  123. /* Pick All State */
  124. #define PEXMoreHits      0
  125. #define PEXNoMoreHits    1
  126. #define PEXMayBeMoreHits 2
  127.  
  128. /* PickOne Methods */
  129. #define PEXLast            1
  130. #define PEXClosestZ        2
  131. #define PEXVisibleAny        3
  132. #define PEXVisibleClosest    4
  133.  
  134. /* PickAll Methods */
  135. #define PEXAllPicks        1
  136. #define PEXVisible        2
  137.  
  138. /* Element Search */
  139. #define PEXNotFound    1
  140. #define PEXFound    2
  141.  
  142. /* GetEnumeratedType return format */
  143. #define PEXETIndex    1
  144. #define PEXETMnemonic    2
  145. #define PEXETBoth    3
  146.  
  147. /* Enum Types */
  148. #define PEXETMarkerType                 1
  149. #define PEXETATextStyle                 2
  150. #define PEXETInteriorStyle             3
  151. #define PEXETHatchStyle                 4
  152. #define PEXETLineType                 5
  153. #define PEXETSurfaceEdgeType             6
  154. #define PEXETPickDeviceType             7
  155. #define PEXETPolylineInterpMethod         8
  156. #define PEXETCurveApproxMethod             9
  157. #define PEXETReflectionModel            10
  158. #define PEXETSurfaceInterpMethod        11
  159. #define PEXETSurfaceApproxMethod        12
  160. #define PEXETModelClipOperator            13
  161. #define PEXETLightType                14
  162. #define PEXETColourType                15
  163. #define PEXETFloatFormat            16
  164. #define PEXETHlhsrMode                17
  165. #define PEXETPromptEchoType            18
  166. #define PEXETDisplayUpdateMode            19
  167. #define PEXETColourApproxType            20
  168. #define PEXETColourApproxModel            21
  169. #define PEXETGDP                22
  170. #define PEXETGDP3                23
  171. #define PEXETGSE                24
  172. #define PEXETTrimCurveApproxMethod        25
  173. #define PEXETRenderingColourModel        26
  174. #define PEXETParaSurfCharacteristics        27
  175. #define PEXETEscape                28
  176. #define PEXETPickOneMethod            29
  177. #define PEXETPickAllMethod            30
  178.  
  179. /* Renderer State */
  180. #define PEXIdle     0
  181. #define PEXRendering    1
  182. #define PEXPicking    2
  183.  
  184. /* Flags (e.g., Switches, Visibility, and Edges) */
  185. #define PEXOff    0
  186. #define PEXOn    1
  187.  
  188. /* Shape hints */
  189. /* Complex, Nonconvex, Convex, are defined  as 0, 1, 2 in X.h */
  190. #define PEXComplex        0
  191. #define PEXNonconvex        1
  192. #define PEXConvex        2
  193. #define PEXUnknownShape        3
  194.  
  195. /* Contour hints */
  196. #define PEXDisjoint        0
  197. #define PEXNested        1
  198. #define PEXIntersecting        2
  199. #define PEXUnknownContour    3
  200.  
  201. /* Table Type */
  202. #define PEXLineBundleLUT     1
  203. #define PEXMarkerBundleLUT     2
  204. #define PEXTextBundleLUT     3
  205. #define PEXInteriorBundleLUT     4
  206. #define PEXEdgeBundleLUT     5
  207. #define PEXPatternLUT         6
  208. #define PEXTextFontLUT         7
  209. #define PEXColourLUT         8
  210. #define PEXViewLUT         9
  211. #define PEXLightLUT        10
  212. #define PEXDepthCueLUT        11
  213. #define PEXColourApproxLUT    12
  214. #define PEXMaxTableType        12
  215.  
  216. /* Status in GetTableEntry */
  217. #define PEXDefaultEntry    0
  218. #define PEXDefinedEntry    1
  219.  
  220. /* ValueType in GetTableEntr{y|ies} */
  221. #define PEXSetValue        0
  222. #define PEXRealizedValue    1
  223.  
  224. /* Constants for Path and Vertical and Horizontal alignment */
  225. #define PEXPathRight    0
  226. #define PEXPathLeft    1
  227. #define PEXPathUp    2
  228. #define PEXPathDown    3
  229. #define PEXValignNormal    0
  230. #define PEXValignTop    1
  231. #define PEXValignCap    2
  232. #define PEXValignHalf    3
  233. #define PEXValignBase    4
  234. #define PEXValignBottom    5
  235. #define PEXHalignNormal    0
  236. #define PEXHalignLeft    1
  237. #define PEXHalignCenter    2
  238. #define PEXHalignRight    3
  239.  
  240. /* Text precision */
  241. #define PEXStringPrecision    0
  242. #define PEXCharPrecision    1
  243. #define PEXStrokePrecision    2
  244.  
  245. /* Character Set Widths */
  246. #define PEXCSByte    0
  247. #define PEXCSShort    1
  248. #define PEXCSLong    2
  249.  
  250. /* Update State */
  251. #define PEXNotPending    0
  252. #define PEXPending    1
  253.  
  254. /* Visual State */
  255. #define PEXCorrect    0
  256. #define PEXDeferred    1
  257. #define PEXSimulated    2
  258.  
  259. /* Display State */
  260. #define PEXEmpty    0
  261. #define PEXNotEmpty    1
  262.  
  263. /* Buffer Mode */
  264. #define PEXSingleBuffered    0
  265. #define PEXDoubleBuffered    1
  266.  
  267. /* Dynamic types */
  268. #define PEXIMM    0
  269. #define PEXIRG    1
  270. #define PEXCBS    2
  271.  
  272. /* Geometric attributes (Vertex, Facet) */
  273. #define PEXGAColour    0x0001
  274. #define PEXGANormal    0x0002
  275. #define PEXGAEdges    0x0004
  276.  
  277. /* Pick Status */
  278. #define PEXNoPick    0
  279. #define PEXOk        1
  280. #define PEXAborted    2
  281.  
  282. /* Pick Echo Switch */
  283. #define PEXNoEcho    0
  284. #define PEXEcho        1
  285. #define PEXUnEcho    2
  286.  
  287. /* Pick Path Order */
  288. #define PEXTopFirst     0
  289. #define PEXBottomFirst  1
  290.  
  291. /* Items for GetStructureInfo */
  292. #define PEXElementPtr        0x0001
  293. #define PEXNumElements        0x0002
  294. #define PEXLengthStructure    0x0004
  295. #define PEXHasRefs        0x0008
  296. #define PEXEditMode        0x0010
  297.  
  298. /* Flags for GetStructuresInNetwork */
  299. #define PEXAll             0
  300. #define PEXOrphans         1
  301.  
  302. /* Path part for GetAncestors */
  303. #define PEXTopPart    0
  304. #define PEXBottomPart    1
  305.  
  306. /* Direction for ElementSearch */
  307. #define PEXForward         0
  308. #define PEXBackward        1
  309.  
  310. /* Nameset changes */
  311. #define PEXNSAdd             0
  312. #define PEXNSRemove          1
  313. #define PEXNSReplace         2
  314.  
  315. /* Priorities */
  316. #define PEXHigher          0
  317. #define PEXLower           1
  318.  
  319. /* Enumerated Type Descriptors */
  320.  
  321. /* Marker Type */
  322. #define PEXMarkerDot        1
  323. #define PEXMarkerCross        2
  324. #define PEXMarkerAsterisk    3
  325. #define PEXMarkerCircle        4
  326. #define PEXMarkerX        5
  327. /* ATextStyle */
  328. #define PEXATextNotConnected    1
  329. #define PEXATextConnected    2
  330. /* InteriorStyle */
  331. #define PEXInteriorStyleHollow    1
  332. #define PEXInteriorStyleSolid    2
  333. #define PEXInteriorStylePattern    3
  334. #define PEXInteriorStyleHatch    4
  335. #define PEXInteriorStyleEmpty    5
  336. /* HatchStyle */
  337. /* LineType */
  338. #define PEXLineTypeSolid    1
  339. #define PEXLineTypeDashed    2
  340. #define PEXLineTypeDotted    3
  341. #define PEXLineTypeDashDot    4
  342. /* SurfaceEdgeType */
  343. #define PEXSurfaceEdgeSolid    1
  344. #define PEXSurfaceEdgeDashed    2
  345. #define PEXSurfaceEdgeDotted    3
  346. #define PEXSurfaceEdgeDashDot    4
  347. /* PickDeviceType */
  348. #define    PEXPickDeviceDC_HitBox    1
  349. #define    PEXPickDeviceNPC_HitVolume    2
  350. /* PolylineInterpMethod */
  351. #define PEXPolylineInterpNone    1
  352. #define PEXPolylineInterpColour    2
  353. /* Curve(and Surface)(and Trim Curve)ApproxMethods */
  354. #define PEXApproxImpDep                1
  355. #define    PEXApproxConstantBetweenKnots         2
  356. #define PEXApproxWcsChordalSize            3
  357. #define PEXApproxNpcChordalSize            4
  358. #define PEXApproxDcChordalSize            5
  359. #define PEXCurveApproxWcsChordalDev        6
  360. #define PEXCurveApproxNpcChordalDev        7
  361. #define PEXCurveApproxDcChordalDev        8
  362. #define PEXSurfaceApproxWcsPlanarDev        6
  363. #define PEXSurfaceApproxNpcPlanarDev        7
  364. #define PEXSurfaceApproxDcPlanarDev        8
  365. #define PEXApproxWcsRelative            9
  366. #define PEXApproxNpcRelative            10
  367. #define PEXApproxDcRelative            11
  368. /* ReflectionModel */
  369. #define PEXReflectionNoShading    1
  370. #define PEXReflectionAmbient    2
  371. #define PEXReflectionDiffuse    3
  372. #define PEXReflectionSpecular    4
  373. /* SurfaceInterpMethod */
  374. #define PEXSurfaceInterpNone        1
  375. #define PEXSurfaceInterpColour        2
  376. #define PEXSurfaceInterpDotProduct    3
  377. #define PEXSurfaceInterpNormal        4
  378. /* ModelClipOperator */
  379. #define PEXModelClipReplace        1
  380. #define PEXModelClipIntersection    2
  381. /* LightType */
  382. #define PEXLightAmbient            1
  383. #define PEXLightWcsVector        2
  384. #define PEXLightWcsPoint        3
  385. #define PEXLightWcsSpot            4
  386. /* ColourType */
  387. #define PEXIndexedColour    0
  388. #define PEXRgbFloatColour    1
  389. #define PEXCieFloatColour    2
  390. #define PEXHsvFloatColour    3
  391. #define PEXHlsFloatColour    4
  392. #define PEXRgb8Colour        5
  393. #define PEXRgb16Colour        6
  394. #define PEXMaxColour        6
  395. /* FloatFormat */
  396. #define PEXIeee_754_32        1
  397. #define PEXDEC_F_Floating    2
  398. #define PEXIeee_754_64        3
  399. #define PEXDEC_D_Floating    4
  400. /* HlhsrMode */
  401. #define PEXHlhsrOff        1
  402. #define PEXHlhsrZBuffer        2
  403. #define PEXHlhsrPainters    3
  404. #define PEXHlhsrScanline    4
  405. #define PEXHlhsrHiddenLineOnly    5
  406. #define PEXHlhsrZBufferId    6
  407. /* PromptEchoType */
  408. #define PEXEchoPrimitive    1
  409. #define PEXEchoStructure    2
  410. #define PEXEchoNetwork    3
  411. /* DisplayUpdateMethod */
  412. #define PEXVisualizeEach    1
  413. #define PEXVisualizeEasy    2
  414. #define PEXVisualizeNone    3
  415. #define PEXSimulateSome        4
  416. #define PEXVisualizeWhenever    5
  417. /* ColourApproxType */
  418. #define PEXColourSpace          1
  419. #define PEXColourRange          2
  420. /* ColourApproxMethod */
  421. #define PEXColourApproxRGB      1
  422. #define PEXColourApproxCIE      2
  423. #define PEXColourApproxHSV      3
  424. #define PEXColourApproxHLS      4
  425. #define PEXColourApproxYIQ      5
  426. /* Escape */
  427. #define PEXEscapeSetEchoColour   1
  428. /* RenderingColourModel    */
  429. #define PEXRdrColourModelImpDep    0
  430. #define PEXRdrColourModelRGB    1
  431. #define PEXRdrColourModelCIE    2
  432. #define PEXRdrColourModelHSV    3
  433. #define PEXRdrColourModelHLS    4
  434. /* ParametricSurfaceCharacteristics */
  435. #define    PEXPSCNone        1
  436. #define    PEXPSCImpDep        2
  437. #define    PEXPSCIsoCurves        3
  438. #define    PEXPSCMcLevelCurves    4
  439. #define    PEXPSCWcLevelCurves    5
  440. /* Isoparametric Curves */
  441. #define PEXICUniformPlacement        0
  442. #define PEXICNonuniformPlacement    1
  443.  
  444. /* Clipping */
  445. #define PEXClipXY         0x0001
  446. #define PEXClipBack         0x0002
  447. #define PEXClipFront         0x0004
  448.  
  449. #define PEXClip            0
  450. #define PEXNoClip        1
  451.  
  452. /* Implementation Dependent Constant Names */
  453. #define PEXIDDitheringSupported         1
  454. #define PEXIDMaxEdgeWidth         2
  455. #define PEXIDMaxLineWidth         3
  456. #define PEXIDMaxMarkerSize         4
  457. #define PEXIDMaxModelClipPlanes         5
  458. #define PEXIDMaxNameSetNames         6
  459. #define PEXIDMaxNonAmbientLights     7
  460. #define PEXIDMaxNURBOrder         8
  461. #define PEXIDMaxTrimCurveOrder         9
  462. #define PEXIDMinEdgeWidth        10
  463. #define PEXIDMinLineWidth        11
  464. #define PEXIDMinMarkerSize        12
  465. #define PEXIDNominalEdgeWidth        13
  466. #define PEXIDNominalLineWidth        14
  467. #define PEXIDNominalMarkerSize        15
  468. #define PEXIDNumSupportedEdgeWidths    16
  469. #define PEXIDNumSupportedLineWidths    17
  470. #define PEXIDNumSupportedMarkerSizes    18
  471. #define PEXIDBestColourApproximation    19
  472. #define PEXIDTransparencySupported    20
  473. #define PEXIDDoubleBufferingSupported    21
  474. #define PEXIDChromaticityRedU        22
  475. #define PEXIDChromaticityRedV        23
  476. #define PEXIDLuminanceRed        24
  477. #define PEXIDChromaticityGreenU        25
  478. #define PEXIDChromaticityGreenV        26
  479. #define PEXIDLuminanceGreen        27
  480. #define PEXIDChromaticityBlueU        28
  481. #define PEXIDChromaticityBlueV        29
  482. #define PEXIDLuminanceBlue        30
  483. #define PEXIDChromaticityWhiteU        31
  484. #define PEXIDChromaticityWhiteV        32
  485. #define PEXIDLuminanceWhite        33
  486. /* have to stick this here since others are not in order */
  487. #define PEXIDMaxHitsEventSupported      34
  488.  
  489. /* Constants for IDRgbBestApproximation */
  490. #define PEXColourApproxAnyValues    0
  491. #define PEXColourApproxPowersOf2    1
  492.  
  493. /** To convert a bit index to a mask number and a mask value, assuming
  494.  ** 32 bit wide words.  For example, a bitIndex of 5 will return 
  495.  ** maskNum == 0 and maskValue == (1 << 5) = 32, while a bitIndex of 39
  496.  ** will return maskNum == 1 and maskValue == (1 << 7) == 128 
  497.  **/
  498. #define PEX_BITNUM_TO_BITMASK(bitIndex, maskNum, maskValue) \
  499.     maskNum    = (bitIndex) / 32; \
  500.     maskValue    = ((unsigned)1L << ((bitIndex) % 32));
  501.  
  502. #define CHECK_BITMASK_ARRAY(mask,bitIndex) \
  503.     if (mask[((bitIndex)/32)] & ((unsigned)1L << ((bitIndex) % 32)))
  504.  
  505. #define PEX_BITMASK(i) ((unsigned)1 << ((i) & 31))
  506. #define PEX_MASKIDX(i) ((i) >> 5)
  507. #define PEX_MASKWORD(buf, i) buf[PEX_MASKIDX(i)]
  508. #define PEX_BITSET(buf, i) PEX_MASKWORD(buf, i) |= PEX_BITMASK(i)
  509. #define PEX_BITCLEAR(buf, i) PEX_MASKWORD(buf, i) &= ~PEX_BITMASK(i)
  510. #define PEX_GETBIT(buf, i) (PEX_MASKWORD(buf, i) & PEX_BITMASK(i))
  511.  
  512. #define PEXMSGetWksInfo         2
  513. #define PEXMSPipeline           3
  514.  
  515. /* Pipeline Context */
  516. #define PEXPCMarkerType             0
  517. #define PEXPCMarkerScale         1
  518. #define PEXPCMarkerColour         2
  519. #define PEXPCMarkerBundleIndex         3
  520. #define PEXPCTextFont             4
  521. #define PEXPCTextPrecision         5
  522. #define PEXPCCharExpansion         6
  523. #define PEXPCCharSpacing         7
  524. #define PEXPCTextColour             8
  525. #define PEXPCCharHeight             9
  526. #define PEXPCCharUpVector        10
  527. #define PEXPCTextPath            11
  528. #define PEXPCTextAlignment        12
  529. #define PEXPCAtextHeight        13
  530. #define PEXPCAtextUpVector        14
  531. #define PEXPCAtextPath            15
  532. #define PEXPCAtextAlignment        16
  533. #define PEXPCAtextStyle            17
  534. #define PEXPCTextBundleIndex        18
  535. #define PEXPCLineType            19
  536. #define PEXPCLineWidth            20
  537. #define PEXPCLineColour            21
  538. #define PEXPCCurveApproximation        22
  539. #define PEXPCPolylineInterp        23
  540. #define PEXPCLineBundleIndex        24
  541. #define PEXPCInteriorStyle        25
  542. #define PEXPCInteriorStyleIndex        26
  543. #define PEXPCSurfaceColour        27
  544. #define PEXPCSurfaceReflAttr        28
  545. #define PEXPCSurfaceReflModel        29
  546. #define PEXPCSurfaceInterp        30
  547. #define PEXPCBfInteriorStyle        31
  548.  
  549. #define PEXPCBfInteriorStyleIndex    32
  550. #define PEXPCBfSurfaceColour        33
  551. #define PEXPCBfSurfaceReflAttr        34
  552. #define PEXPCBfSurfaceReflModel        35
  553. #define PEXPCBfSurfaceInterp        36
  554. #define PEXPCSurfaceApproximation    37
  555. #define PEXPCCullingMode        38
  556. #define PEXPCDistinguishFlag        39
  557. #define PEXPCPatternSize        40
  558. #define PEXPCPatternRefPt        41
  559. #define PEXPCPatternRefVec1        42
  560. #define PEXPCPatternRefVec2        43
  561. #define PEXPCInteriorBundleIndex    44
  562. #define PEXPCSurfaceEdgeFlag        45
  563. #define PEXPCSurfaceEdgeType        46
  564. #define PEXPCSurfaceEdgeWidth        47
  565. #define PEXPCSurfaceEdgeColour        48
  566. #define PEXPCEdgeBundleIndex        49
  567. #define PEXPCLocalTransform        50
  568. #define PEXPCGlobalTransform        51
  569. #define PEXPCModelClip            52
  570. #define PEXPCModelClipVolume        53
  571. #define PEXPCViewIndex            54
  572. #define PEXPCLightState            55
  573. #define PEXPCDepthCueIndex        56
  574. #define PEXPCSetAsfValues        57
  575. #define PEXPCPickId            58
  576. #define PEXPCHlhsrIdentifier        59
  577. #define PEXPCNameSet            60
  578. #define PEXPCColourApproxIndex        61
  579. #define PEXPCRenderingColourModel    62
  580. #define PEXPCParaSurfCharacteristics    63
  581. #define PEXMaxPCIndex    63    
  582.  
  583. /* Renderer Bitmasks */
  584. #define PEXRDPipelineContext         (1L<<0)
  585. #define PEXRDCurrentPath         (1L<<1)
  586. #define PEXRDMarkerBundle         (1L<<2)
  587. #define PEXRDTextBundle             (1L<<3)
  588. #define PEXRDLineBundle             (1L<<4)
  589. #define PEXRDInteriorBundle         (1L<<5)
  590. #define PEXRDEdgeBundle             (1L<<6)
  591. #define PEXRDViewTable             (1L<<7)
  592. #define PEXRDColourTable         (1L<<8)
  593. #define PEXRDDepthCueTable         (1L<<9)
  594. #define PEXRDLightTable            (1L<<10)
  595. #define PEXRDColourApproxTable        (1L<<11)
  596. #define PEXRDPatternTable        (1L<<12)
  597. #define PEXRDTextFontTable        (1L<<13)
  598. #define PEXRDHighlightIncl        (1L<<14)
  599. #define PEXRDHighlightExcl        (1L<<15)
  600. #define PEXRDInvisibilityIncl        (1L<<16)
  601. #define PEXRDInvisibilityExcl        (1L<<17)
  602. #define PEXRDRendererState        (1L<<18)
  603. #define PEXRDHlhsrMode            (1L<<19)
  604. #define PEXRDNpcSubvolume        (1L<<20)
  605. #define PEXRDViewport            (1L<<21)
  606. #define PEXRDClipList            (1L<<22)
  607. #define PEXRDPickInclusion        (1L<<23)
  608. #define PEXRDPickExclusion        (1L<<24)
  609. #define PEXRDPickStartPath        (1L<<25)
  610. #define PEXRDBackgroundColour        (1L<<26)
  611. #define PEXRDClearI                (1L<<27)
  612. #define PEXRDClearZ                (1L<<28)
  613. #define PEXRDEchoMode            (1L<<29)
  614. #define PEXMaxRDShift    29
  615.  
  616. /* Renderer Dynamics Bitmasks */
  617. /*    tables              */
  618. #define PEXDynMarkerBundle             (1L<<0)
  619. #define PEXDynTextBundle             (1L<<1)
  620. #define PEXDynLineBundle             (1L<<2)
  621. #define PEXDynInteriorBundle             (1L<<3)
  622. #define PEXDynEdgeBundle             (1L<<4)
  623. #define PEXDynViewTable                 (1L<<5)
  624. #define PEXDynColourTable             (1L<<6)
  625. #define PEXDynDepthCueTable             (1L<<7)
  626. #define PEXDynLightTable             (1L<<8)
  627. #define PEXDynColourApproxTable             (1L<<9)
  628. #define PEXDynPatternTable            (1L<<10)
  629. #define PEXDynTextFontTable            (1L<<11)
  630. #define PEXDynMarkerBundleContents        (1L<<16)
  631. #define PEXDynTextBundleContents        (1L<<17)
  632. #define PEXDynLineBundleContents        (1L<<18)
  633. #define PEXDynInteriorBundleContents        (1L<<19)
  634. #define PEXDynEdgeBundleContents        (1L<<20)
  635. #define PEXDynViewTableContents            (1L<<21)
  636. #define PEXDynColourTableContents        (1L<<22)
  637. #define PEXDynDepthCueTableContents        (1L<<23)
  638. #define PEXDynLightTableContents        (1L<<24)
  639. #define PEXDynColourApproxContents        (1L<<25)
  640. #define PEXDynPatternTableContents        (1L<<26)
  641. #define PEXDynTextFontTableContents        (1L<<27)
  642. /*    namesets          */
  643. #define PEXDynHighlightNameset             (1L<<0)
  644. #define PEXDynInvisibilityNameset         (1L<<1)
  645. #define PEXDynPickNameset                 (1L<<2)
  646. #define PEXDynHighlightNamesetContents        (1L<<16)
  647. #define PEXDynInvisibilityNamesetContents    (1L<<17)
  648. #define PEXDynPickNamesetContents        (1L<<18)
  649. /*    attributes          */
  650. #define PEXDynHlhsrMode                 (1L<<0)
  651. #define PEXDynNpcSubvolume             (1L<<1)
  652. #define PEXDynViewport                 (1L<<2)
  653. #define PEXDynClipList                 (1L<<3)
  654. #define PEXDynEchoMode                 (1L<<4)
  655.  
  656. #define PEXElementType         (1L<<0)
  657. #define PEXElementSize         (1L<<1)
  658. #define PEXElementData         (1L<<2)
  659.  
  660. /* Search Context Bitmasks */
  661. #define PEXSCPosition            (1L<<0)
  662. #define PEXSCDistance            (1L<<1)
  663. #define PEXSCCeiling             (1L<<2)
  664. #define PEXSCModelClipFlag     (1L<<3)
  665. #define PEXSCStartPath           (1L<<4)
  666. #define PEXSCNormalList          (1L<<5)
  667. #define PEXSCInvertedList        (1L<<6)
  668.  
  669. /* Phigs Workstation Attribute Bitmasks */
  670. #define PEXPWDisplayUpdate    0
  671. #define PEXPWVisualState    1
  672. #define PEXPWDisplaySurface    2
  673. #define PEXPWViewUpdate        3
  674. #define PEXPWDefinedViews    4
  675. #define PEXPWWksUpdate        5
  676. #define PEXPWReqNpcSubvolume    6
  677. #define PEXPWCurNpcSubvolume    7
  678. #define PEXPWReqWksViewport    8
  679. #define PEXPWCurWksViewport    9
  680. #define PEXPWHlhsrUpdate    10
  681. #define PEXPWReqHlhsrMode    11
  682. #define PEXPWCurHlhsrMode    12
  683. #define PEXPWDrawable        13
  684. #define PEXPWMarkerBundle    14
  685. #define PEXPWTextBundle        15
  686. #define PEXPWLineBundle        16
  687. #define PEXPWInteriorBundle    17
  688. #define PEXPWEdgeBundle        18
  689. #define PEXPWColourTable    19
  690. #define PEXPWDepthCueTable    20
  691. #define PEXPWLightTable        21
  692. #define PEXPWColourApproxTable    22
  693. #define PEXPWPatternTable    23
  694. #define PEXPWTextFontTable    24
  695. #define PEXPWHighlightIncl    25
  696. #define PEXPWHighlightExcl    26
  697. #define PEXPWInvisibilityIncl    27
  698. #define PEXPWInvisibilityExcl    28
  699. #define PEXPWPostedStructures    29
  700. #define PEXPWNumPriorities    30
  701. #define PEXPWBufferUpdate    31
  702.  
  703. #define PEXPWReqBufferMode    32
  704. #define PEXPWCurBufferMode    33
  705.  
  706. #define PEXMaxPWIndex        33
  707.  
  708. /* Indices for GetDynamics */
  709. #define PEXPWDViewRep             0
  710. #define PEXPWDMarkerBundle         1
  711. #define PEXPWDTextBundle         2
  712. #define PEXPWDLineBundle         3
  713. #define PEXPWDInteriorBundle         4
  714. #define PEXPWDEdgeBundle         5
  715. #define PEXPWDColourTable         6
  716. #define PEXPWDPatternTable         7
  717. #define PEXPWDWksTransform         8
  718. #define PEXPWDHighlightFilter         9
  719. #define PEXPWDInvisibilityFilter    10
  720. #define PEXPWDHlhsrMode            11
  721. #define PEXPWDStructureModify        12
  722. #define PEXPWDPostStructure        13
  723. #define PEXPWDUnpostStructure        14
  724. #define PEXPWDDeleteStructure        15
  725. #define PEXPWDReferenceModify        16
  726. #define PEXPWDBufferModify        17
  727. #define PEXPWDLightTable        18
  728. #define PEXPWDDepthCueTable        19
  729. #define PEXPWDColourApproxTable        20
  730.  
  731. /* Pick Device Bitmasks */
  732. #define PEXPDPickStatus            (1L<<0)
  733. #define PEXPDPickPath            (1L<<1)
  734. #define PEXPDPickPathOrder        (1L<<2)
  735. #define PEXPDPickIncl            (1L<<3)
  736. #define PEXPDPickExcl                (1L<<4)
  737. #define PEXPDPickDataRec        (1L<<5)
  738. #define PEXPDPickPromptEchoType        (1L<<6)
  739. #define PEXPDPickEchoVolume        (1L<<7)
  740. #define PEXPDPickEchoSwitch        (1L<<8)
  741.  
  742. /* Pick Measure Bitmasks */
  743. #define PEXPMStatus            (1L<<0)
  744. #define PEXPMPath            (1L<<1)
  745.  
  746. /* Errors */
  747. #define PEXColourTypeError         0
  748. #define PEXRendererStateError         1
  749. #define PEXFloatingPointFormatError     2
  750. #define PEXLabelError             3
  751. #define PEXLookupTableError         4
  752. #define PEXNameSetError             5
  753. #define PEXPathError             6
  754. #define PEXFontError             7
  755. #define PEXPhigsWksError         8
  756. #define PEXPickMeasureError         9
  757. #define PEXPipelineContextError        10
  758. #define PEXRendererError        11
  759. #define PEXSearchContextError        12
  760. #define PEXStructureError        13
  761. #define PEXOutputCommandError        14
  762. #define PEXMaxError                     14
  763.  
  764. /* Requests */
  765. #define PEX_GetExtensionInfo         1
  766. #define PEX_GetEnumeratedTypeInfo     2
  767. #define PEX_GetImpDepConstants          3
  768. #define PEX_CreateLookupTable         4
  769. #define PEX_CopyLookupTable         5
  770. #define PEX_FreeLookupTable         6
  771. #define PEX_GetTableInfo         7
  772. #define PEX_GetPredefinedEntries     8
  773. #define PEX_GetDefinedIndices         9
  774. #define PEX_GetTableEntry        10
  775. #define PEX_GetTableEntries        11
  776. #define PEX_SetTableEntries        12
  777. #define PEX_DeleteTableEntries        13
  778. #define PEX_CreatePipelineContext    14
  779. #define PEX_CopyPipelineContext        15
  780. #define PEX_FreePipelineContext        16
  781. #define PEX_GetPipelineContext        17
  782. #define PEX_ChangePipelineContext    18
  783. #define PEX_CreateRenderer        19
  784. #define PEX_FreeRenderer        20
  785. #define PEX_ChangeRenderer        21
  786. #define PEX_GetRendererAttributes    22
  787. #define PEX_GetRendererDynamics        23
  788. #define PEX_BeginRendering        24
  789. #define PEX_EndRendering        25
  790. #define PEX_BeginStructure        26
  791. #define PEX_EndStructure        27
  792. #define PEX_RenderOutputCommands    28
  793. #define PEX_RenderNetwork        29
  794. #define PEX_CreateStructure        30
  795. #define PEX_CopyStructure        31
  796. #define PEX_DestroyStructures        32
  797. #define PEX_GetStructureInfo        33
  798. #define PEX_GetElementInfo        34
  799. #define PEX_GetStructuresInNetwork    35
  800. #define PEX_GetAncestors        36
  801. #define PEX_GetDescendants        37
  802. #define PEX_FetchElements        38
  803. #define PEX_SetEditingMode        39    
  804. #define PEX_SetElementPointer        40
  805. #define PEX_SetElementPointerAtLabel    41
  806. #define PEX_ElementSearch        42
  807. #define PEX_StoreElements        43
  808. #define PEX_DeleteElements        44
  809. #define PEX_DeleteElementsToLabel    45
  810. #define PEX_DeleteBetweenLabels        46
  811. #define PEX_CopyElements        47
  812. #define PEX_ChangeStructureRefs        48
  813. #define PEX_CreateNameSet        49
  814. #define PEX_CopyNameSet            50
  815. #define PEX_FreeNameSet            51
  816. #define PEX_GetNameSet            52
  817. #define PEX_ChangeNameSet        53
  818. #define PEX_CreateSearchContext        54
  819. #define PEX_CopySearchContext        55
  820. #define PEX_FreeSearchContext        56
  821. #define PEX_GetSearchContext        57
  822. #define PEX_ChangeSearchContext        58
  823. #define PEX_SearchNetwork        59
  824. #define PEX_CreatePhigsWks        60
  825. #define PEX_FreePhigsWks        61
  826. #define PEX_GetWksInfo            62
  827. #define PEX_GetDynamics            63
  828. #define PEX_GetViewRep            64
  829. #define PEX_RedrawAllStructures        65
  830. #define PEX_UpdateWorkstation        66
  831. #define PEX_RedrawClipRegion        67
  832. #define PEX_ExecuteDeferredActions    68
  833. #define PEX_SetViewPriority        69
  834. #define PEX_SetDisplayUpdateMode    70
  835. #define PEX_MapDCtoWC            71
  836. #define PEX_MapWCtoDC            72
  837. #define PEX_SetViewRep            73
  838. #define PEX_SetWksWindow        74
  839. #define PEX_SetWksViewport        75
  840. #define PEX_SetHlhsrMode        76
  841. #define PEX_SetWksBufferMode        77
  842. #define PEX_PostStructure        78
  843. #define PEX_UnpostStructure        79
  844. #define PEX_UnpostAllStructures        80
  845. #define PEX_GetWksPostings        81
  846. #define PEX_GetPickDevice        82
  847. #define PEX_ChangePickDevice        83
  848. #define PEX_CreatePickMeasure        84
  849. #define PEX_FreePickMeasure        85
  850. #define PEX_GetPickMeasure        86
  851. #define PEX_UpdatePickMeasure        87
  852. #define PEX_OpenFont            88
  853. #define PEX_CloseFont            89
  854. #define PEX_QueryFont            90
  855. #define PEX_ListFonts            91
  856. #define PEX_ListFontsWithInfo        92
  857. #define PEX_QueryTextExtents         93
  858. #define PEX_MatchRendererTargets        94
  859. #define PEX_Escape                      95
  860. #define PEX_EscapeWithReply             96
  861. #define PEX_RenderElements              97
  862. #define PEX_AccumulateState             98
  863. #define PEX_BeginPickOne                99
  864. #define PEX_EndPickOne                 100
  865. #define PEX_PickOne                    101
  866. #define PEX_BeginPickAll               102
  867. #define PEX_EndPickAll                 103
  868. #define PEX_PickAll                    104
  869. #define PEXMaxRequest               104
  870.  
  871. /* Output Commands */
  872. #define PEXOCAll              0
  873. #define PEXOCMarkerType              1
  874. #define PEXOCMarkerScale          2
  875. #define PEXOCMarkerColourIndex          3
  876. #define PEXOCMarkerColour          4
  877. #define PEXOCMarkerBundleIndex          5
  878. #define PEXOCTextFontIndex          6
  879. #define PEXOCTextPrecision          7
  880. #define PEXOCCharExpansion          8
  881. #define PEXOCCharSpacing          9
  882. #define PEXOCTextColourIndex         10
  883. #define PEXOCTextColour             11
  884. #define PEXOCCharHeight             12
  885. #define PEXOCCharUpVector         13
  886. #define PEXOCTextPath             14
  887. #define PEXOCTextAlignment         15
  888. #define PEXOCAtextHeight         16
  889. #define PEXOCAtextUpVector         17
  890. #define PEXOCAtextPath             18
  891. #define PEXOCAtextAlignment         19
  892. #define PEXOCAtextStyle             20
  893. #define PEXOCTextBundleIndex         21
  894. #define PEXOCLineType             22
  895. #define PEXOCLineWidth             23
  896. #define PEXOCLineColourIndex         24
  897. #define PEXOCLineColour             25
  898. #define PEXOCCurveApproximation         26
  899. #define PEXOCPolylineInterp         27
  900. #define PEXOCLineBundleIndex         28
  901. #define PEXOCInteriorStyle         29
  902. #define PEXOCInteriorStyleIndex         30
  903. #define PEXOCSurfaceColourIndex         31
  904. #define PEXOCSurfaceColour         32
  905. #define PEXOCSurfaceReflAttr         33
  906. #define PEXOCSurfaceReflModel         34
  907. #define PEXOCSurfaceInterp         35
  908. #define PEXOCBfInteriorStyle         36
  909. #define PEXOCBfInteriorStyleIndex     37
  910. #define PEXOCBfSurfaceColourIndex     38
  911. #define PEXOCBfSurfaceColour         39
  912. #define PEXOCBfSurfaceReflAttr         40
  913. #define PEXOCBfSurfaceReflModel         41
  914. #define PEXOCBfSurfaceInterp         42
  915. #define PEXOCSurfaceApproximation     43
  916. #define PEXOCCullingMode         44
  917. #define PEXOCDistinguishFlag         45
  918. #define PEXOCPatternSize         46
  919. #define PEXOCPatternRefPt         47
  920. #define PEXOCPatternAttr         48
  921. #define PEXOCInteriorBundleIndex     49
  922. #define PEXOCSurfaceEdgeFlag         50
  923. #define PEXOCSurfaceEdgeType         51
  924. #define PEXOCSurfaceEdgeWidth         52
  925. #define PEXOCSurfaceEdgeColourIndex     53
  926. #define PEXOCSurfaceEdgeColour         54
  927. #define PEXOCEdgeBundleIndex         55
  928. #define PEXOCSetAsfValues         56
  929. #define PEXOCLocalTransform         57
  930. #define PEXOCLocalTransform2D         58
  931. #define PEXOCGlobalTransform         59
  932. #define PEXOCGlobalTransform2D         60
  933. #define PEXOCModelClip             61
  934. #define PEXOCModelClipVolume         62
  935. #define PEXOCModelClipVolume2D         63
  936. #define PEXOCRestoreModelClip         64
  937. #define PEXOCViewIndex             65
  938. #define PEXOCLightState             66
  939. #define PEXOCDepthCueIndex         67
  940. #define PEXOCPickId             68
  941. #define PEXOCHlhsrIdentifier         69
  942. #define PEXOCColourApproxIndex         70
  943. #define PEXOCRenderingColourModel     71
  944. #define PEXOCParaSurfCharacteristics     72
  945. #define PEXOCAddToNameSet         73
  946. #define PEXOCRemoveFromNameSet         74
  947. #define PEXOCExecuteStructure         75
  948. #define PEXOCLabel             76
  949. #define PEXOCApplicationData         77
  950. #define PEXOCGse             78
  951. #define PEXOCMarker             79
  952. #define PEXOCMarker2D             80
  953. #define PEXOCText             81
  954. #define PEXOCText2D             82
  955. #define PEXOCAnnotationText         83
  956. #define PEXOCAnnotationText2D         84
  957. #define PEXOCPolyline             85
  958. #define PEXOCPolyline2D             86
  959. #define PEXOCPolylineSet         87
  960. #define PEXOCNurbCurve             88
  961. #define PEXOCFillArea             89
  962. #define PEXOCFillArea2D             90
  963. #define PEXOCExtFillArea         91
  964. #define PEXOCFillAreaSet         92
  965. #define PEXOCFillAreaSet2D         93
  966. #define PEXOCExtFillAreaSet         94
  967. #define PEXOCTriangleStrip         95
  968. #define PEXOCQuadrilateralMesh         96
  969. #define PEXOCSOFAS             97
  970. #define PEXOCNurbSurface         98
  971. #define PEXOCCellArray             99
  972. #define PEXOCCellArray2D        100
  973. #define PEXOCExtCellArray        101
  974. #define PEXOCGdp            102
  975. #define PEXOCGdp2D            103
  976. #define PEXOCNoop            104
  977. #define PEXMaxOC            104
  978.  
  979. #define PEXOCNil            0xffff
  980.  
  981. #endif /* PEX.h */
  982.  
  983.