home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / extensions / lib / PEXlib / PEXlib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1992-10-27  |  109.0 KB  |  4,444 lines

  1. #ifndef _PEXLIB_H_
  2. #define _PEXLIB_H_
  3.  
  4. /* $XConsortium: PEXlib.h,v 1.10 92/10/27 15:42:37 mor Exp $ */
  5.  
  6. /******************************************************************************/
  7. /*  Copyright 1987,1991 by Digital Equipment Corporation, Maynard, Mass.      */
  8. /*                                                                            */
  9. /*  (c) Copyright Hewlett-Packard Company, 1992,  Fort Collins, Colorado      */
  10. /*                                                                            */
  11. /*                            All Rights Reserved                             */
  12. /*                                                                            */
  13. /*  Permission to use, copy, modify, and distribute this software and its     */
  14. /*  documentation for any purpose and without fee is hereby granted,          */
  15. /*  provided that the above copyright notices appear in all copies and that   */
  16. /*  both the copyright notices and this permission notice appear in           */
  17. /*  supporting documentation, and that the names of Digital or                */
  18. /*  Hewlett-Packard not be used in advertising or publicity pertaining to     */
  19. /*  distribution of the software without specific, written prior permission.  */
  20. /*                                                                            */
  21. /*  DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING  */
  22. /*  ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL  */
  23. /*  DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR   */
  24. /*  ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,       */
  25. /*  WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,    */
  26. /*  ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS       */
  27. /*  SOFTWARE.                                                                 */
  28. /*                                                                            */
  29. /*  HEWLETT-PACKARD MAKES NO WARRANTY OF ANY KIND WITH REGARD TO THIS         */
  30. /*  SOFTWARE, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF        */
  31. /*  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.  Hewlett-Packard    */
  32. /*  shall not be liable for errors contained herein or direct, indirect,      */
  33. /*  special, incidental or consequential damages in connection with the       */
  34. /*  furnishing, performance or use of this software.                          */
  35. /*                                                                            */
  36. /******************************************************************************/
  37.  
  38. #include <X11/Xlib.h>
  39. #include <X11/PEX5/PEX.h>
  40.  
  41.  
  42. #ifndef NeedFunctionPrototypes
  43. #if defined(FUNCPROTO) || defined(__STDC__) || defined(__cplusplus) || defined(c_plusplus)
  44. #define NeedFunctionPrototypes  1
  45. #else
  46. #define NeedFunctionPrototypes  0
  47. #endif /* FUNCPROTO, __STDC__, __cplusplus, c_plusplus */
  48. #endif /* NeedFunctionPrototypes */
  49.  
  50.  
  51. #ifdef __cplusplus                      /* do not leave open across includes */
  52. extern "C" {                                    /* for C++ V2.0 */
  53. #endif
  54.  
  55.  
  56. /*
  57.  * floating point min and max values
  58.  */
  59. #define PEXMinFloatIeee_754_32  1.40129846432481707e-45
  60. #define PEXMaxFloatIeee_754_32  3.40282346638528860e+38
  61. #define PEXMinFloatIeee_754_64  4.94065645841246544e-324
  62. #define PEXMaxFloatIeee_754_64  1.797693134862315708e+308
  63.  
  64. /*
  65.  * constants for PEXInitiliaze - failure return values and error string length
  66.  */
  67. #define PEXBadExtension         1
  68. #define PEXBadProtocolVersion   2
  69. #define PEXBadFloatConversion   3
  70. #define PEXBadLocalAlloc        4
  71.  
  72. #define PEXErrorStringLength    80
  73.  
  74.  
  75. /*
  76.  * type definitions
  77.  */
  78. typedef XID             PEXFont;
  79. typedef XID             PEXLookupTable;
  80. typedef XID             PEXNameSet;
  81. typedef XID             PEXPickMeasure;
  82. typedef XID             PEXPipelineContext;
  83. typedef XID             PEXRenderer;
  84. typedef XID             PEXSearchContext;
  85. typedef XID             PEXStructure;
  86. typedef XID             PEXWorkstation;
  87.  
  88. typedef unsigned long   PEXBitmask;
  89. typedef unsigned short  PEXBitmaskShort;
  90. typedef short           PEXColorType;
  91. typedef unsigned char   PEXContourHint;
  92. typedef unsigned short  PEXCoordType;
  93. typedef short           PEXComposition;
  94. typedef unsigned short  PEXCullMode;
  95. typedef unsigned char   PEXDynamicType;
  96. typedef short           PEXEnumTypeIndex;
  97. typedef float           PEXMatrix[4][4];
  98. typedef float           PEXMatrix3x3[3][3];
  99. typedef unsigned long   PEXName;
  100. typedef int             PEXOCRequestType;
  101. typedef unsigned short  PEXShapeHint;
  102. typedef unsigned char   PEXSwitch;
  103. typedef unsigned short  PEXTableIndex;
  104. typedef unsigned short  PEXTypeOrTableIndex;
  105.  
  106. #if NeedFunctionPrototypes
  107. typedef void *PEXPointer;
  108. #else
  109. typedef char *PEXPointer;
  110. #endif
  111.  
  112.  
  113. /*
  114.  * PEX extension information
  115.  */
  116. typedef struct {
  117.     unsigned short      major_version;
  118.     unsigned short      minor_version;
  119.     unsigned long       release;
  120.     unsigned long       subset_info;
  121.     char                *vendor_name;
  122.     int                 major_opcode;
  123.     int                 first_event;
  124.     int                 first_error;
  125. } PEXExtensionInfo;
  126.  
  127. /*
  128.  * enumerated type information
  129.  */
  130. typedef struct {
  131.     PEXEnumTypeIndex    index;
  132.     char                *descriptor;            /* null terminated string */
  133. } PEXEnumTypeDesc;
  134.  
  135. /*
  136.  * implementation dependent constants
  137.  */
  138. typedef union {
  139.     unsigned long       integer;
  140.     float               flt_point;
  141. } PEXImpDepConstant;
  142.  
  143. /*
  144.  * match rendering targets
  145.  */
  146. typedef struct {
  147.     int                 depth;
  148.     int                 type;
  149.     Visual              *visual;
  150. } PEXRenderingTarget;
  151.  
  152.  
  153. /*
  154.  * output primitive and attribute
  155.  */
  156.  
  157. /* output command request types */
  158. #define PEXOCRender             0
  159. #define PEXOCStore              1
  160. #define PEXOCRenderSingle       2
  161. #define PEXOCStoreSingle        3
  162.  
  163. /* coordinates */
  164. typedef struct {
  165.     float               x;
  166.     float               y;
  167.     float               z;
  168. } PEXCoord;
  169.  
  170. typedef struct {
  171.     float               x;
  172.     float               y;
  173. } PEXCoord2D;
  174.  
  175. typedef struct {
  176.     float               x;
  177.     float               y;
  178.     float               z;
  179.     float               w;
  180. } PEXCoord4D;
  181.  
  182. /* coordinate lists without data */
  183. typedef struct {
  184.     unsigned long       count;                  /* number of points */
  185.     PEXCoord2D          *points;
  186. } PEXListOfCoord2D;     /* Pointer to an array of 2D points */
  187.  
  188. typedef struct {
  189.     unsigned long       count;                  /* number of points */
  190.     PEXCoord            *points;
  191. } PEXListOfCoord;       /* Pointer to an array of 3D points */
  192.  
  193. typedef struct {
  194.     unsigned long       count;                  /* number of points */
  195.     PEXCoord4D          *points;
  196. } PEXListOfCoord4D;     /* Pointer to an array of 4D points */
  197.  
  198. typedef union {
  199.     PEXCoord2D          *point_2d;
  200.     PEXCoord            *point;
  201.     PEXCoord4D          *point_4d;
  202. } PEXArrayOfCoord;      /* Pointer to array of points */
  203.  
  204. /* colors */
  205. typedef struct {
  206.     float               red;
  207.     float               green;
  208.     float               blue;
  209. } PEXColorRGB;
  210.  
  211. typedef struct {
  212.     float               hue;
  213.     float               saturation;
  214.     float               value;
  215. } PEXColorHSV;
  216.  
  217. typedef struct {
  218.     float               hue;
  219.     float               lightness;
  220.     float               saturation;
  221. } PEXColorHLS;
  222.  
  223. typedef struct {
  224.     float               x;
  225.     float               y;
  226.     float               z;
  227. } PEXColorCIE;
  228.  
  229. typedef struct {
  230.     unsigned char       red;
  231.     unsigned char       green;
  232.     unsigned char       blue;
  233.     unsigned char       reserved;
  234. } PEXColorRGB8;
  235.  
  236. typedef struct {
  237.     unsigned short      red;
  238.     unsigned short      green;
  239.     unsigned short      blue;
  240.     unsigned short      reserved;
  241. } PEXColorRGB16;
  242.  
  243. typedef struct {
  244.     PEXTableIndex       index;
  245.     unsigned short      reserved;
  246. } PEXColorIndexed;
  247.  
  248. typedef union {
  249.     PEXColorIndexed     indexed;
  250.     PEXColorRGB         rgb;
  251.     PEXColorHSV         hsv;
  252.     PEXColorHLS         hls;
  253.     PEXColorCIE         cie;
  254.     PEXColorRGB8        rgb8;
  255.     PEXColorRGB16       rgb16;
  256. } PEXColor;
  257.  
  258. typedef union {
  259.     PEXColorIndexed     *indexed;
  260.     PEXColorRGB         *rgb;
  261.     PEXColorHSV         *hsv;
  262.     PEXColorHLS         *hls;
  263.     PEXColorCIE         *cie;
  264.     PEXColorRGB8        *rgb8;
  265.     PEXColorRGB16       *rgb16;
  266. } PEXArrayOfColor;
  267.  
  268. /* vectors */
  269. typedef struct {
  270.     float               x;
  271.     float               y;
  272.     float               z;
  273. } PEXVector;
  274.  
  275. typedef struct {
  276.     float               x;
  277.     float               y;
  278. } PEXVector2D;
  279.  
  280. /* facet data */
  281. typedef struct {
  282.     PEXColorIndexed     index;
  283.     PEXVector           normal;
  284. } PEXColorIndexedNormal;
  285.  
  286. typedef struct {
  287.     PEXColorRGB         rgb;
  288.     PEXVector           normal;
  289. } PEXColorRGBNormal;
  290.  
  291. typedef struct {
  292.     PEXColorCIE         cie;
  293.     PEXVector           normal;
  294. } PEXColorCIENormal;
  295.  
  296. typedef struct {
  297.     PEXColorHSV         hsv;
  298.     PEXVector           normal;
  299. } PEXColorHSVNormal;
  300.  
  301. typedef struct {
  302.     PEXColorHLS         hls;
  303.     PEXVector           normal;
  304. } PEXColorHLSNormal;
  305.  
  306. typedef struct {
  307.     PEXColorRGB8        rgb8;
  308.     PEXVector           normal;
  309. } PEXColorRGB8Normal;
  310.  
  311. typedef struct {
  312.     PEXColorRGB16       rgb16;
  313.     PEXVector           normal;
  314. } PEXColorRGB16Normal;
  315.  
  316. typedef union {
  317.     PEXColorIndexed     index;
  318.     PEXColorRGB         rgb;
  319.     PEXColorHSV         hsv;
  320.     PEXColorHLS         hls;
  321.     PEXColorCIE         cie;
  322.     PEXColorRGB8        rgb8;
  323.     PEXColorRGB16       rgb16;
  324.     PEXVector           normal;
  325.     PEXColorIndexedNormal index_normal;
  326.     PEXColorRGBNormal   rgb_normal;
  327.     PEXColorHSVNormal   hsv_normal;
  328.     PEXColorHLSNormal   hls_normal;
  329.     PEXColorCIENormal   cie_normal;
  330.     PEXColorRGB8Normal  rgb8_normal;
  331.     PEXColorRGB16Normal rgb16_normal;
  332. } PEXFacetData;
  333.  
  334. typedef union {
  335.     PEXColorIndexed     *index;
  336.     PEXColorRGB         *rgb;
  337.     PEXColorHSV         *hsv;
  338.     PEXColorHLS         *hls;
  339.     PEXColorCIE         *cie;
  340.     PEXColorRGB8        *rgb8;
  341.     PEXColorRGB16       *rgb16;
  342.     PEXVector           *normal;
  343.     PEXColorIndexedNormal *index_normal;
  344.     PEXColorRGBNormal   *rgb_normal;
  345.     PEXColorCIENormal   *cie_normal;
  346.     PEXColorHSVNormal   *hsv_normal;
  347.     PEXColorHLSNormal   *hls_normal;
  348.     PEXColorRGB8Normal  *rgb8_normal;
  349.     PEXColorRGB16Normal *rgb16_normal;
  350. } PEXArrayOfFacetData;
  351.  
  352. /* vertex data */
  353. typedef struct {
  354.     PEXCoord            point;
  355.     PEXColorIndexed     index;
  356. } PEXVertexIndexed;
  357.  
  358. typedef struct {
  359.     PEXCoord            point;
  360.     PEXColorRGB         rgb;
  361. } PEXVertexRGB;
  362.  
  363. typedef struct {
  364.     PEXCoord            point;
  365.     PEXColorHSV         hsv;
  366. } PEXVertexHSV;
  367.  
  368. typedef struct {
  369.     PEXCoord            point;
  370.     PEXColorHLS         hls;
  371. } PEXVertexHLS;
  372.  
  373. typedef struct {
  374.     PEXCoord            point;
  375.     PEXColorCIE         cie;
  376. } PEXVertexCIE;
  377.  
  378. typedef struct {
  379.     PEXCoord            point;
  380.     PEXColorRGB8        rgb8;
  381. } PEXVertexRGB8;
  382.  
  383. typedef struct {
  384.     PEXCoord            point;
  385.     PEXColorRGB16       rgb16;
  386. } PEXVertexRGB16;
  387.  
  388. typedef struct {
  389.     PEXCoord            point;
  390.     PEXVector           normal;
  391. } PEXVertexNormal;
  392.  
  393. typedef struct {
  394.     PEXCoord            point;
  395.     unsigned int        edge;
  396. } PEXVertexEdge;
  397.  
  398. typedef struct {
  399.     PEXCoord            point;
  400.     PEXColorIndexed     index;
  401.     PEXVector           normal;
  402. } PEXVertexIndexedNormal;
  403.  
  404. typedef struct {
  405.     PEXCoord            point;
  406.     PEXColorRGB         rgb;
  407.     PEXVector           normal;
  408. } PEXVertexRGBNormal;
  409.  
  410. typedef struct {
  411.     PEXCoord            point;
  412.     PEXColorHSV         hsv;
  413.     PEXVector           normal;
  414. } PEXVertexHSVNormal;
  415.  
  416. typedef struct {
  417.     PEXCoord            point;
  418.     PEXColorHLS         hls;
  419.     PEXVector           normal;
  420. } PEXVertexHLSNormal;
  421.  
  422. typedef struct {
  423.     PEXCoord            point;
  424.     PEXColorCIE         cie;
  425.     PEXVector           normal;
  426. } PEXVertexCIENormal;
  427.  
  428. typedef struct {
  429.     PEXCoord            point;
  430.     PEXColorRGB8        rgb8;
  431.     PEXVector           normal;
  432. } PEXVertexRGB8Normal;
  433.  
  434. typedef struct {
  435.     PEXCoord            point;
  436.     PEXColorRGB16       rgb16;
  437.     PEXVector           normal;
  438. } PEXVertexRGB16Normal;
  439.  
  440. typedef struct {
  441.     PEXCoord            point;
  442.     PEXColorIndexed     index;
  443.     unsigned int        edge;
  444. } PEXVertexIndexedEdge;
  445.  
  446. typedef struct {
  447.     PEXCoord            point;
  448.     PEXColorRGB         rgb;
  449.     unsigned int        edge;
  450. } PEXVertexRGBEdge;
  451.  
  452. typedef struct {
  453.     PEXCoord            point;
  454.     PEXColorHSV         hsv;
  455.     unsigned int        edge;
  456. } PEXVertexHSVEdge;
  457.  
  458. typedef struct {
  459.     PEXCoord            point;
  460.     PEXColorHLS         hls;
  461.     unsigned int        edge;
  462. } PEXVertexHLSEdge;
  463.  
  464. typedef struct {
  465.     PEXCoord            point;
  466.     PEXColorCIE         cie;
  467.     unsigned int        edge;
  468. } PEXVertexCIEEdge;
  469.  
  470. typedef struct {
  471.     PEXCoord            point;
  472.     PEXColorRGB8        rgb8;
  473.     unsigned int        edge;
  474. } PEXVertexRGB8Edge;
  475.  
  476. typedef struct {
  477.     PEXCoord            point;
  478.     PEXColorRGB16       rgb16;
  479.     unsigned int        edge;
  480. } PEXVertexRGB16Edge;
  481.  
  482. typedef struct {
  483.     PEXCoord            point;
  484.     PEXVector           normal;
  485.     unsigned int        edge;
  486. } PEXVertexNormalEdge;
  487.  
  488. typedef struct {
  489.     PEXCoord            point;
  490.     PEXColorIndexed     index;
  491.     PEXVector           normal;
  492.     unsigned int        edge;
  493. } PEXVertexIndexedNormalEdge;
  494.  
  495. typedef struct {
  496.     PEXCoord            point;
  497.     PEXColorRGB         rgb;
  498.     PEXVector           normal;
  499.     unsigned int        edge;
  500. } PEXVertexRGBNormalEdge;
  501.  
  502. typedef struct {
  503.     PEXCoord            point;
  504.     PEXColorHSV         hsv;
  505.     PEXVector           normal;
  506.     unsigned int        edge;
  507. } PEXVertexHSVNormalEdge;
  508.  
  509. typedef struct {
  510.     PEXCoord            point;
  511.     PEXColorHLS         hls;
  512.     PEXVector           normal;
  513.     unsigned int        edge;
  514. } PEXVertexHLSNormalEdge;
  515.  
  516. typedef struct {
  517.     PEXCoord            point;
  518.     PEXColorCIE         cie;
  519.     PEXVector           normal;
  520.     unsigned int        edge;
  521. } PEXVertexCIENormalEdge;
  522.  
  523. typedef struct {
  524.     PEXCoord            point;
  525.     PEXColorRGB8        rgb8;
  526.     PEXVector           normal;
  527.     unsigned int        edge;
  528. } PEXVertexRGB8NormalEdge;
  529.  
  530. typedef struct {
  531.     PEXCoord            point;
  532.     PEXColorRGB16       rgb16;
  533.     PEXVector           normal;
  534.     unsigned int        edge;
  535. } PEXVertexRGB16NormalEdge;
  536.  
  537. typedef union {
  538.     PEXCoord                    *no_data;
  539.     PEXVertexIndexed            *index;
  540.     PEXVertexRGB                *rgb;
  541.     PEXVertexHSV                *hsv;
  542.     PEXVertexHLS                *hls;
  543.     PEXVertexCIE                *cie;
  544.     PEXVertexRGB8               *rgb8;
  545.     PEXVertexRGB16              *rgb16;
  546.     PEXVertexNormal             *normal;
  547.     PEXVertexEdge               *edge;
  548.     PEXVertexIndexedNormal      *index_normal;
  549.     PEXVertexRGBNormal          *rgb_normal;
  550.     PEXVertexHSVNormal          *hsv_normal;
  551.     PEXVertexHLSNormal          *hls_normal;
  552.     PEXVertexCIENormal          *cie_normal;
  553.     PEXVertexRGB8Normal         *rgb8_normal;
  554.     PEXVertexRGB16Normal        *rgb16_normal;
  555.     PEXVertexIndexedEdge        *index_edge;
  556.     PEXVertexRGBEdge            *rgb_edge;
  557.     PEXVertexHSVEdge            *hsv_edge;
  558.     PEXVertexHLSEdge            *hls_edge;
  559.     PEXVertexCIEEdge            *cie_edge;
  560.     PEXVertexRGB8Edge           *rgb8_edge;
  561.     PEXVertexRGB16Edge          *rgb16_edge;
  562.     PEXVertexNormalEdge         *normal_edge;
  563.     PEXVertexIndexedNormalEdge  *index_normal_edge;
  564.     PEXVertexRGBNormalEdge      *rgb_normal_edge;
  565.     PEXVertexHSVNormalEdge      *hsv_normal_edge;
  566.     PEXVertexHLSNormalEdge      *hls_normal_edge;
  567.     PEXVertexCIENormalEdge      *cie_normal_edge;
  568.     PEXVertexRGB8NormalEdge     *rgb8_normal_edge;
  569.     PEXVertexRGB16NormalEdge    *rgb16_normal_edge;
  570. } PEXArrayOfVertex;
  571.  
  572. typedef struct {
  573.     unsigned long       count;                  /* number of vertices */
  574.     PEXArrayOfVertex    vertices;               /* pointer to vertices */
  575. } PEXListOfVertex;
  576.  
  577. /* connectivity list for set of fill area sets */
  578. typedef struct {
  579.     unsigned short      count;                  /* number of shorts */
  580.     unsigned short      *shorts;
  581. } PEXListOfUShort;
  582.  
  583. typedef struct {
  584.     unsigned short      count;                  /* number of lists */
  585.     PEXListOfUShort     *lists;
  586. } PEXConnectivityData;
  587.  
  588. /* encoded text */
  589. typedef struct {
  590.     unsigned short      character_set;
  591.     unsigned char       character_set_width;
  592.     unsigned char       encoding_state;
  593.     unsigned short      reserved;
  594.     unsigned short      length;
  595.     char                *ch;
  596. } PEXEncodedTextData;
  597.  
  598. typedef struct {
  599.     unsigned short      count;                  /* number of encodings */
  600.     PEXEncodedTextData  *encoded_text;
  601. } PEXListOfEncodedText;
  602.  
  603. /* trimming curves */
  604. typedef struct {
  605.     unsigned short      count;                  /* number of floats */
  606.     float               *floats;
  607. } PEXListOfFloat;
  608.  
  609. typedef struct {
  610.     PEXSwitch           visibility;
  611.     unsigned char       reserved;
  612.     unsigned short      order;
  613.     PEXCoordType        rationality;
  614.     PEXEnumTypeIndex    approx_method;
  615.     float               tolerance;
  616.     float               tmin, tmax;
  617.     PEXListOfFloat      knots;
  618.     unsigned short      count;                  /* number of control points */
  619.     PEXArrayOfCoord     control_points;
  620. } PEXTrimCurve;
  621.  
  622. typedef struct {
  623.     unsigned short      count;                  /* number of curves */
  624.     PEXTrimCurve        *curves;
  625. } PEXListOfTrimCurve;
  626.  
  627. /* half spaces */
  628. typedef struct {
  629.     PEXCoord            point;
  630.     PEXVector           vector;
  631. } PEXHalfSpace;
  632.  
  633. typedef struct {
  634.     PEXCoord2D          point;
  635.     PEXVector2D         vector;
  636. } PEXHalfSpace2D;
  637.  
  638. /* parametric surface characteristics */
  639. typedef struct {
  640.     unsigned short      placement_type;
  641.     unsigned short      reserved;
  642.     unsigned short      u_count;
  643.     unsigned short      v_count;
  644. } PEXPSCIsoparametricCurves;
  645.  
  646. typedef struct {
  647.     PEXCoord            origin;
  648.     PEXVector           direction;
  649.     unsigned short      count;                  /* number of parameters */
  650.     unsigned short      reserved;
  651.     float               *parameters;
  652. } PEXPSCLevelCurves;
  653.  
  654. typedef struct {
  655.     unsigned short      length;
  656.     char                *data;
  657. } PEXPSCImpDepData;
  658.  
  659. typedef union {
  660.     PEXPSCIsoparametricCurves iso_curves;
  661.     PEXPSCLevelCurves       level_curves;
  662.     PEXPSCImpDepData        imp_dep;
  663. } PEXPSCData;
  664.  
  665.  
  666. /*
  667.  * pipeline context
  668.  */
  669. typedef struct {
  670.     PEXColorType        type;
  671.     unsigned short      reserved;
  672.     PEXColor            value;
  673. } PEXColorSpecifier;
  674.  
  675. typedef struct {
  676.     unsigned short      vertical;
  677.     unsigned short      horizontal;
  678. } PEXTextAlignment;
  679.  
  680. typedef struct {
  681.     PEXEnumTypeIndex    method;
  682.     unsigned short      reserved;
  683.     float               tolerance;
  684. } PEXCurveApprox;
  685.  
  686. typedef struct {
  687.     float               ambient;
  688.     float               diffuse;
  689.     float               specular;
  690.     float               specular_conc;
  691.     float               transmission;
  692.     PEXColorSpecifier   specular_color;
  693. } PEXReflectionAttributes;
  694.  
  695. typedef struct {
  696.     PEXEnumTypeIndex    method;
  697.     unsigned short      reserved;
  698.     float               u_tolerance;
  699.     float               v_tolerance;
  700. } PEXSurfaceApprox;
  701.  
  702. typedef struct {
  703.     unsigned short      count;                  /* number of half spaces */
  704.     PEXHalfSpace        *half_spaces;
  705. } PEXModelClipVolume;
  706.  
  707. typedef struct {
  708.     unsigned short      count;                  /* number of lights */
  709.     PEXTableIndex       *indices;
  710. } PEXListOfLight;
  711.  
  712. typedef struct {
  713.     short               type;
  714.     PEXPSCData          psc;
  715. } PEXPSCSpecifier;
  716.  
  717. typedef struct {
  718.     PEXEnumTypeIndex    marker_type;
  719.     float               marker_scale;
  720.     PEXColorSpecifier   marker_color;
  721.     PEXTableIndex       marker_bundle_index;
  722.     PEXTableIndex       text_font;
  723.     unsigned short      text_precision;
  724.     float               char_expansion;
  725.     float               char_spacing;
  726.     PEXColorSpecifier   text_color;
  727.     float               char_height;
  728.     PEXVector2D         char_up_vector;
  729.     unsigned short      text_path;
  730.     PEXTextAlignment    text_alignment;
  731.     float               atext_height;
  732.     PEXVector2D         atext_up_vector;
  733.     unsigned short      atext_path;
  734.     PEXTextAlignment    atext_alignment;
  735.     PEXEnumTypeIndex    atext_style;
  736.     PEXTableIndex       text_bundle_index;
  737.     PEXEnumTypeIndex    line_type;
  738.     float               line_width;
  739.     PEXColorSpecifier   line_color;
  740.     PEXCurveApprox      curve_approx;
  741.     PEXEnumTypeIndex    polyline_interp;
  742.     PEXTableIndex       line_bundle_index;
  743.     PEXEnumTypeIndex    interior_style;
  744.     PEXTypeOrTableIndex interior_style_index;
  745.     PEXColorSpecifier   surface_color;
  746.     PEXReflectionAttributes   reflection_attr;
  747.     PEXEnumTypeIndex    reflection_model;
  748.     PEXEnumTypeIndex    surface_interp;
  749.     PEXEnumTypeIndex    bf_interior_style;
  750.     PEXTypeOrTableIndex bf_interior_style_index;
  751.     PEXColorSpecifier   bf_surface_color;
  752.     PEXReflectionAttributes   bf_reflection_attr;
  753.     PEXEnumTypeIndex    bf_reflection_model;
  754.     PEXEnumTypeIndex    bf_surface_interp;
  755.     PEXSurfaceApprox    surface_approx;
  756.     unsigned short      culling_mode;
  757.     Bool                distinguish;
  758.     PEXCoord2D          pattern_size;
  759.     PEXCoord            pattern_ref_point;
  760.     PEXVector           pattern_ref_vec1;
  761.     PEXVector           pattern_ref_vec2;
  762.     PEXTableIndex       interior_bundle_index;
  763.     PEXSwitch           surface_edges;
  764.     PEXEnumTypeIndex    surface_edge_type;
  765.     float               surface_edge_width;
  766.     PEXColorSpecifier   surface_edge_color;
  767.     PEXTableIndex       edge_bundle_index;
  768.     PEXMatrix           local_transform;
  769.     PEXMatrix           global_transform;
  770.     unsigned short      model_clip;
  771.     PEXModelClipVolume  model_clip_volume;
  772.     PEXTableIndex       view_index;
  773.     PEXListOfLight      light_state;
  774.     PEXTableIndex       depth_cue_index;
  775.     PEXBitmask          asf_enables;
  776.     PEXBitmask          asf_values;
  777.     long                pick_id;
  778.     unsigned long       hlhsr_id;
  779.     PEXNameSet          name_set;
  780.     PEXTableIndex       color_approx_index;
  781.     PEXEnumTypeIndex    rendering_color_model;
  782.     PEXPSCSpecifier     para_surf_char;
  783. } PEXPCAttributes;
  784.  
  785. /* macros for setting bits in a PC attribute bitmask */
  786.  
  787. #define PEXSetPCAttributeMask(mask, attr) \
  788.     mask[((attr)) >> 5] |= (unsigned long) 1 << ( ((attr)) & 0x1f)
  789.  
  790. #define PEXSetPCAttributeMaskAll(mask) \
  791.     mask[0] = 0xffffffff;              \
  792.     mask[1] = 0xffffffff;              \
  793.     mask[2] = 0x0
  794.  
  795.  
  796. /*
  797.  * renderer
  798.  */
  799. typedef struct {
  800.     short               xmin;
  801.     short               ymin;
  802.     short               xmax;
  803.     short               ymax;
  804. } PEXDeviceRect;
  805.  
  806. typedef struct {
  807.     unsigned short      count;          /* number of device rectangles */
  808.     PEXDeviceRect       *rectangles;
  809. } PEXListOfClipRect;
  810.  
  811. typedef struct {
  812.     PEXCoord            min;
  813.     PEXCoord            max;
  814. } PEXNPCSubVolume;
  815.  
  816. typedef struct {
  817.     short               x;
  818.     short               y;
  819.     float               z;
  820. } PEXDeviceCoord;
  821.  
  822. typedef struct {
  823.     short               x;
  824.     short               y;
  825. } PEXDeviceCoord2D;
  826.  
  827. typedef struct {
  828.     PEXDeviceCoord      min;
  829.     PEXDeviceCoord      max;
  830.     PEXSwitch           use_drawable;
  831.     unsigned char       reserved[3];
  832. } PEXViewport;
  833.  
  834. typedef struct {
  835.     PEXStructure        structure;
  836.     unsigned long       offset;
  837. } PEXElementRef;
  838.  
  839. typedef struct {
  840.     unsigned long       count;                  /* number of elements */
  841.     PEXElementRef       *elements;
  842. } PEXStructurePath;
  843.  
  844. typedef struct {
  845.     PEXStructure        sid;
  846.     unsigned long       offset;
  847.     unsigned long       pick_id;
  848. } PEXPickElementRef;
  849.  
  850. typedef struct {
  851.     unsigned long       count;                  /* number of elements */
  852.     PEXPickElementRef   *elements;
  853. } PEXPickPath;
  854.  
  855. typedef struct {
  856.     PEXPipelineContext  pipeline_context;
  857.     PEXStructurePath    current_path;
  858.     PEXLookupTable      marker_bundle;
  859.     PEXLookupTable      text_bundle;
  860.     PEXLookupTable      line_bundle;
  861.     PEXLookupTable      interior_bundle;
  862.     PEXLookupTable      edge_bundle;
  863.     PEXLookupTable      view_table;
  864.     PEXLookupTable      color_table;
  865.     PEXLookupTable      depth_cue_table;
  866.     PEXLookupTable      light_table;
  867.     PEXLookupTable      color_approx_table;
  868.     PEXLookupTable      pattern_table;
  869.     PEXLookupTable      text_font_table;
  870.     PEXNameSet          highlight_incl;
  871.     PEXNameSet          highlight_excl;
  872.     PEXNameSet          invisibility_incl;
  873.     PEXNameSet          invisibility_excl;
  874.     int                 renderer_state;
  875.     PEXEnumTypeIndex    hlhsr_mode;
  876.     PEXNPCSubVolume     npc_subvolume;
  877.     PEXViewport         viewport;
  878.     PEXListOfClipRect   clip_list;
  879.     PEXNameSet          pick_incl;
  880.     PEXNameSet          pick_excl;
  881.     PEXStructurePath    pick_start_path;
  882.     PEXColorSpecifier   background_color;
  883.     Bool                clear_image;
  884.     Bool                clear_z;
  885.     int                 echo_mode;
  886. } PEXRendererAttributes;
  887.  
  888. /* renderer picking */
  889. typedef PEXNPCSubVolume PEXPDNPCHitVolume;
  890.  
  891. typedef struct {
  892.     PEXDeviceCoord2D    position;
  893.     float               distance;
  894. } PEXPDDCHitBox;
  895.  
  896. typedef struct {
  897.     unsigned short      length;                 /* number of bytes in record */
  898.     char                *record;
  899. } PEXPickDataRecord;
  900.  
  901. typedef union {
  902.     PEXPDNPCHitVolume       volume;
  903.     PEXPDDCHitBox           box;
  904.     PEXPickDataRecord       data;
  905. } PEXPickRecord;
  906.  
  907.  
  908. /*
  909.  * name set
  910.  */
  911. typedef struct {
  912.     PEXNameSet          inclusion;
  913.     PEXNameSet          exclusion;
  914. } PEXNameSetPair;
  915.  
  916. typedef struct {
  917.     unsigned short      count;                  /* number of pairs */
  918.     PEXNameSetPair      *pairs;
  919. } PEXListOfNameSetPair;
  920.  
  921.  
  922. /*
  923.  * font
  924.  */
  925. typedef struct {
  926.     Atom                name;
  927.     unsigned long       value;
  928. } PEXFontProp;
  929.  
  930. typedef struct {
  931.     unsigned long       first_glyph;
  932.     unsigned long       last_glyph;
  933.     unsigned long       default_glyph;
  934.     Bool                all_exist;
  935.     Bool                stroke;
  936.     unsigned short      count;                  /* number of properties */
  937.     PEXFontProp         *props;
  938. } PEXFontInfo;
  939.  
  940. typedef struct {
  941.     unsigned short      length;
  942.     char                *ch;
  943. } PEXStringData;
  944.  
  945. typedef struct {
  946.     PEXCoord2D          lower_left;
  947.     PEXCoord2D          upper_right;
  948.     PEXCoord2D          concat_point;
  949. } PEXTextExtent;
  950.  
  951.  
  952. /*
  953.  * look up table
  954.  */
  955. typedef struct {
  956.     unsigned short      definable_entries;
  957.     unsigned short      predefined_count;
  958.     unsigned short      predefined_min;
  959.     unsigned short      predefined_max;
  960. } PEXTableInfo;
  961.  
  962. typedef struct {
  963.     PEXEnumTypeIndex    type;
  964.     PEXEnumTypeIndex    interp_method;
  965.     PEXCurveApprox      curve_approx;
  966.     float               width;
  967.     PEXColorSpecifier   color;
  968. } PEXLineBundleEntry;
  969.  
  970. typedef struct {
  971.     PEXEnumTypeIndex    type;
  972.     short               reserved;
  973.     float               scale;
  974.     PEXColorSpecifier   color;
  975. } PEXMarkerBundleEntry;
  976.  
  977. typedef struct {
  978.     PEXTableIndex       font_index;
  979.     PEXEnumTypeIndex    precision;
  980.     float               char_expansion;
  981.     float               char_spacing;
  982.     PEXColorSpecifier   color;
  983. } PEXTextBundleEntry;
  984.  
  985. typedef struct {
  986.     PEXEnumTypeIndex    style;
  987.     PEXTypeOrTableIndex style_index;
  988.     PEXEnumTypeIndex    reflection_model;
  989.     PEXEnumTypeIndex    interp_method;
  990.     PEXEnumTypeIndex    bf_style;
  991.     PEXTypeOrTableIndex bf_style_index;
  992.     PEXEnumTypeIndex    bf_reflection_model;
  993.     PEXEnumTypeIndex    bf_interp_method;
  994.     PEXSurfaceApprox    surface_approx;
  995.     PEXColorSpecifier   color;
  996.     PEXReflectionAttributes   reflection_attr;
  997.     PEXColorSpecifier   bf_color;
  998.     PEXReflectionAttributes   bf_reflection_attr;
  999. } PEXInteriorBundleEntry;
  1000.  
  1001. typedef struct {
  1002.     PEXSwitch           edge_flag;
  1003.     unsigned char       reserved;
  1004.     PEXEnumTypeIndex    type;
  1005.     float               width;
  1006.     PEXColorSpecifier   color;
  1007. } PEXEdgeBundleEntry;
  1008.  
  1009. typedef struct {
  1010.     PEXColorType        color_type;
  1011.     unsigned short      row_count;
  1012.     unsigned short      col_count;
  1013.     PEXArrayOfColor     colors;  /* pointer to 2D array of colors */
  1014. } PEXPatternEntry;
  1015.  
  1016. typedef PEXColorSpecifier       PEXColorEntry;
  1017.  
  1018. typedef struct {
  1019.     unsigned short      count;          /* number of fonts */
  1020.     PEXFont             *fonts;
  1021. } PEXTextFontEntry;
  1022.  
  1023. typedef struct {
  1024.     PEXEnumTypeIndex    type;
  1025.     unsigned short      reserved;
  1026.     PEXVector           direction;
  1027.     PEXCoord            point;
  1028.     float               concentration;
  1029.     float               spread_angle;
  1030.     float               attenuation1;
  1031.     float               attenuation2;
  1032.     PEXColorSpecifier   color;
  1033. } PEXLightEntry;
  1034.  
  1035. typedef struct {
  1036.     PEXSwitch           mode;
  1037.     unsigned char       reserved[3];
  1038.     float               front_plane;
  1039.     float               back_plane;
  1040.     float               front_scaling;
  1041.     float               back_scaling;
  1042.     PEXColorSpecifier   color;
  1043. } PEXDepthCueEntry;
  1044.  
  1045. typedef struct {
  1046.     PEXEnumTypeIndex    type;
  1047.     PEXEnumTypeIndex    model;
  1048.     unsigned short      max1;
  1049.     unsigned short      max2;
  1050.     unsigned short      max3;
  1051.     PEXSwitch           dither;
  1052.     unsigned char       reserved;
  1053.     unsigned long       mult1;
  1054.     unsigned long       mult2;
  1055.     unsigned long       mult3;
  1056.     float               weight1;
  1057.     float               weight2;
  1058.     float               weight3;
  1059.     unsigned long       base_pixel;
  1060. } PEXColorApproxEntry;
  1061.  
  1062. typedef struct { 
  1063.     unsigned short      clip_flags;
  1064.     unsigned short      reserved;
  1065.     PEXNPCSubVolume     clip_limits;
  1066.     PEXMatrix           orientation;
  1067.     PEXMatrix           mapping;
  1068. } PEXViewEntry;
  1069.  
  1070.  
  1071. /*
  1072.  * structure
  1073.  */
  1074. typedef struct {
  1075.     unsigned long       element_count;
  1076.     unsigned long       size;
  1077.     Bool                has_refs;
  1078.     unsigned short      edit_mode;
  1079.     unsigned long       element_pointer;
  1080. } PEXStructureInfo;
  1081.  
  1082. typedef struct {
  1083.     unsigned short      type;
  1084.     unsigned short      length;
  1085. } PEXElementInfo;
  1086.  
  1087.  
  1088. /*
  1089.  * search context
  1090.  */
  1091. typedef struct {
  1092.     PEXCoord            position;
  1093.     float               distance;
  1094.     unsigned short      ceiling;
  1095.     Bool                model_clip_flag;
  1096.     PEXStructurePath    start_path;
  1097.     PEXListOfNameSetPair normal;
  1098.     PEXListOfNameSetPair inverted;
  1099. } PEXSCAttributes;
  1100.  
  1101.  
  1102. /*
  1103.  * PHIGS workstation
  1104.  */
  1105. typedef struct {
  1106.     PEXTableIndex       index;
  1107.     unsigned short      reserved;
  1108.     PEXViewEntry        view;
  1109. } PEXViewRep;
  1110.  
  1111. typedef struct {
  1112.     unsigned short      count;                  /* number of views */
  1113.     PEXTableIndex       *views;
  1114. } PEXListOfView;
  1115.  
  1116. typedef struct {
  1117.     PEXStructure        sid;
  1118.     float               priority;
  1119. } PEXPostedStructure;
  1120.  
  1121. typedef struct {
  1122.     unsigned long       count;                  /* number of posted structures*/
  1123.     PEXPostedStructure  *structures;
  1124. } PEXListOfPostedStructure;
  1125.  
  1126. typedef struct {
  1127.     short               drawable_update;
  1128.     int                 visual_state;
  1129.     int                 drawable_surface;
  1130.     int                 view_update;
  1131.     PEXListOfView       defined_views;
  1132.     int                 wks_update;
  1133.     PEXNPCSubVolume     req_npc_subvolume;
  1134.     PEXNPCSubVolume     cur_npc_subvolume;
  1135.     PEXViewport         req_workstation_viewport;
  1136.     PEXViewport         cur_workstation_viewport;
  1137.     int                 hlhsr_update;
  1138.     PEXEnumTypeIndex    req_hlhsr_mode;
  1139.     PEXEnumTypeIndex    cur_hlhsr_mode;
  1140.     Drawable            drawable;
  1141.     PEXLookupTable      marker_bundle;
  1142.     PEXLookupTable      text_bundle;
  1143.     PEXLookupTable      line_bundle;
  1144.     PEXLookupTable      interior_bundle;
  1145.     PEXLookupTable      edge_bundle;
  1146.     PEXLookupTable      color_table;
  1147.     PEXLookupTable      depth_cue_table;
  1148.     PEXLookupTable      light_table;
  1149.     PEXLookupTable      color_approx_table;
  1150.     PEXLookupTable      pattern_table;
  1151.     PEXLookupTable      text_font_table;
  1152.     PEXNameSet          highlight_incl;
  1153.     PEXNameSet          highlight_excl;
  1154.     PEXNameSet          invisibility_incl;
  1155.     PEXNameSet          invisibility_excl;
  1156.     PEXListOfPostedStructure posted_structures;
  1157.     unsigned long       count_priorities;
  1158.     int                 buffer_update;
  1159.     int                 req_buffer_mode;
  1160.     int                 cur_buffer_mode;
  1161. } PEXWorkstationAttributes;
  1162.  
  1163. /* macros for setting bits in a workstation attribute bitmask */
  1164.  
  1165. #define PEXSetPWAttributeMask(mask, attr) \
  1166.     mask[((attr)) >> 5] |= (unsigned long) 1 << ( ((attr)) & 0x1f)
  1167.  
  1168. #define PEXSetPWAttributeMaskAll(mask) \
  1169.     mask[0] = 0xffffffff;              \
  1170.     mask[1] = 0x00000003
  1171.  
  1172. typedef struct {
  1173.     unsigned char       view_rep;
  1174.     unsigned char       marker_bundle;
  1175.     unsigned char       text_bundle;
  1176.     unsigned char       line_bundle;
  1177.     unsigned char       interior_bundle;
  1178.     unsigned char       edge_bundle;
  1179.     unsigned char       color_table;
  1180.     unsigned char       pattern_table;
  1181.     unsigned char       wks_transform;
  1182.     unsigned char       highlight_filter;
  1183.     unsigned char       invisibility_filter;
  1184.     unsigned char       hlhsr_mode;
  1185.     unsigned char       structure_modify;
  1186.     unsigned char       post_structure;
  1187.     unsigned char       unpost_structure;
  1188.     unsigned char       delete_structure;
  1189.     unsigned char       reference_modify;
  1190.     unsigned char       buffer_modify;
  1191.     unsigned char       light_table;
  1192.     unsigned char       depth_cue_table;
  1193.     unsigned char       color_approx_table;
  1194. } PEXWorkstationDynamics;
  1195.  
  1196.  
  1197. /*
  1198.  * workstation picking
  1199.  */
  1200. typedef struct {
  1201.     unsigned short      status;
  1202.     PEXPickPath         pick_path;
  1203. } PEXPMAttributes;
  1204.  
  1205. typedef struct {
  1206.     unsigned short      status;
  1207.     PEXPickPath         path;
  1208.     int                 path_order;
  1209.     PEXNameSet          inclusion;
  1210.     PEXNameSet          exclusion;
  1211.     PEXPickRecord       pick_record;
  1212.     PEXEnumTypeIndex    prompt_echo_type;
  1213.     PEXViewport         echo_volume;
  1214.     int                 echo_switch;
  1215. } PEXPDAttributes;
  1216.  
  1217.  
  1218. /*
  1219.  * errors
  1220.  */
  1221. /* similar to XErrorEvent - use to access additional info in OC error */
  1222. typedef struct {
  1223.     int             type;
  1224.     Display         *display;      /* Display the event was read from */
  1225.     XID             resourceid;    /* resource id of renderer or structure */
  1226.     unsigned long   serial;        /* serial number of failed request */
  1227.     unsigned char   error_code;    /* error code of failed request */
  1228.     unsigned char   request_code;  /* Major op-code of failed request */
  1229.     unsigned char   minor_code;    /* Minor op-code of failed request */
  1230.     unsigned short  op_code;       /* op-code of failed output command */
  1231.     unsigned short  count;         /* number of output commands successfully */
  1232.                                    /* executed before error */
  1233. } PEXOCErrorEvent;
  1234.  
  1235.  
  1236. /*
  1237.  * events
  1238.  */
  1239. typedef struct {
  1240.     int             type;
  1241.     unsigned long   serial;     /* # of last request processed by server */
  1242.     Bool            send_event; /* true if this came from a SendEvent request */
  1243.     Display         *display;   /* Display the event was read from */
  1244.     PEXRenderer     renderer;
  1245. } PEXMaxHitsReachedEvent;
  1246.  
  1247.  
  1248. /*
  1249.  * encode and decode
  1250.  */
  1251. typedef struct {
  1252.     unsigned short oc_type;
  1253.     union {
  1254.         struct {
  1255.             unsigned long count;
  1256.             PEXName *names;
  1257.         } AddToNameSet;
  1258.         struct {
  1259.             int length;
  1260.             char *data;
  1261.         } ApplicationData;
  1262.         struct {
  1263.             PEXCoord point1;
  1264.             PEXCoord point2;
  1265.             PEXCoord point3;
  1266.             unsigned int col_count;
  1267.             unsigned int row_count;
  1268.             PEXTableIndex *color_indices;
  1269.         } CellArray;
  1270.         struct {
  1271.             PEXCoord2D point1;
  1272.             PEXCoord2D point2;
  1273.             unsigned int col_count;
  1274.             unsigned int row_count;
  1275.             PEXTableIndex *color_indices;
  1276.         } CellArray2D;
  1277.         struct {
  1278.             PEXCoord origin;
  1279.             PEXCoord offset;
  1280.             unsigned int count;
  1281.             PEXEncodedTextData *encoded_text;
  1282.         } EncodedAnnoText;
  1283.         struct {
  1284.             PEXCoord2D origin;
  1285.             PEXCoord2D offset;
  1286.             unsigned int count;
  1287.             PEXEncodedTextData *encoded_text;
  1288.         } EncodedAnnoText2D;
  1289.         struct {
  1290.             PEXCoord origin;
  1291.             PEXVector vector1;
  1292.             PEXVector vector2;
  1293.             unsigned int count;
  1294.             PEXEncodedTextData *encoded_text;
  1295.         } EncodedText;
  1296.         struct {
  1297.             PEXCoord2D origin;
  1298.             unsigned int count;
  1299.             PEXEncodedTextData *encoded_text;
  1300.         } EncodedText2D;
  1301.         struct {
  1302.             PEXStructure structure;
  1303.         } ExecuteStructure;
  1304.         struct {
  1305.             PEXCoord point1;
  1306.             PEXCoord point2;
  1307.             PEXCoord point3;
  1308.             unsigned int col_count;
  1309.             unsigned int row_count;
  1310.             int color_type;
  1311.             PEXArrayOfColor colors;
  1312.         } ExtendedCellArray;
  1313.         struct {
  1314.             int shape_hint;
  1315.             int ignore_edges;
  1316.             unsigned int count;
  1317.             PEXCoord *points;
  1318.         } FillArea;
  1319.         struct {
  1320.             int shape_hint;
  1321.             int ignore_edges;
  1322.             unsigned int count;
  1323.             PEXCoord2D *points;
  1324.         } FillArea2D;
  1325.         struct {
  1326.             int shape_hint;
  1327.             int ignore_edges;
  1328.             int contour_hint;
  1329.             unsigned int count;
  1330.             PEXListOfCoord *point_lists;
  1331.         } FillAreaSet;
  1332.         struct {
  1333.             int shape_hint;
  1334.             int ignore_edges;
  1335.             int contour_hint;
  1336.             unsigned int count;
  1337.             PEXListOfCoord2D *point_lists;
  1338.         } FillAreaSet2D;
  1339.         struct {
  1340.             int shape_hint;
  1341.             int ignore_edges;
  1342.             int contour_hint;
  1343.             unsigned int facet_attributes;
  1344.             unsigned int vertex_attributes;
  1345.             int color_type;
  1346.             unsigned int count;
  1347.             PEXFacetData facet_data;
  1348.             PEXListOfVertex *vertex_lists;
  1349.         } FillAreaSetWithData;
  1350.         struct {
  1351.             int shape_hint;
  1352.             int ignore_edges;
  1353.             unsigned int facet_attributes;
  1354.             unsigned int vertex_attributes;
  1355.             int color_type;
  1356.             PEXFacetData facet_data;
  1357.             unsigned int count;
  1358.             PEXArrayOfVertex vertices;
  1359.         } FillAreaWithData;
  1360.         struct {
  1361.             long gdp_id;
  1362.             unsigned int count;
  1363.             PEXCoord *points;
  1364.             unsigned long length;
  1365.             char *data;
  1366.         } GDP;
  1367.         struct {
  1368.             long gdp_id;
  1369.             unsigned int count;
  1370.             PEXCoord2D *points;
  1371.             unsigned long length;
  1372.             char *data;
  1373.         } GDP2D;
  1374.         struct {
  1375.             long id;
  1376.             int length;
  1377.             char *data;
  1378.         } GSE;
  1379.         struct {
  1380.             long label;
  1381.         } Label;
  1382.         struct {
  1383.             unsigned int count;
  1384.             PEXCoord *points;
  1385.         } Markers;
  1386.         struct {
  1387.             unsigned int count;
  1388.             PEXCoord2D *points;
  1389.         } Markers2D;
  1390.         struct {
  1391.             int rationality;
  1392.             int order;
  1393.             float *knots;
  1394.             unsigned int count;
  1395.             PEXArrayOfCoord points;
  1396.             double tmin;
  1397.             double tmax;
  1398.         } NURBCurve;
  1399.         struct {
  1400.             int rationality;
  1401.             int uorder;
  1402.             int vorder;
  1403.             float *uknots;
  1404.             float *vknots;
  1405.             unsigned int col_count;
  1406.             unsigned int row_count;
  1407.             PEXArrayOfCoord points;
  1408.             unsigned int curve_count;
  1409.             PEXListOfTrimCurve *trim_curves;
  1410.         } NURBSurface;
  1411.         struct {
  1412.             unsigned int count;
  1413.             PEXCoord *points;
  1414.         } Polyline;
  1415.         struct {
  1416.             unsigned int count;
  1417.             PEXCoord2D *points;
  1418.         } Polyline2D;
  1419.         struct {
  1420.             unsigned int vertex_attributes;
  1421.             int color_type;
  1422.             unsigned int count;
  1423.             PEXListOfVertex *vertex_lists;
  1424.         } PolylineSetWithData;
  1425.         struct {
  1426.             int shape_hint;
  1427.             unsigned int facet_attributes;
  1428.             unsigned int vertex_attributes;
  1429.             int color_type;
  1430.             PEXArrayOfFacetData facet_data;
  1431.             unsigned int col_count;
  1432.             unsigned int row_count;
  1433.             PEXArrayOfVertex vertices;
  1434.         } QuadrilateralMesh;
  1435.         struct {
  1436.             unsigned long count;
  1437.             PEXName *names;
  1438.         } RemoveFromNameSet;
  1439.         struct {
  1440.             int halignment;
  1441.             int valignment;
  1442.         } SetATextAlignment;
  1443.         struct {
  1444.             double height;
  1445.         } SetATextHeight;
  1446.         struct {
  1447.             int path;
  1448.         } SetATextPath;
  1449.         struct {
  1450.             int style;
  1451.         } SetATextStyle;
  1452.         struct {
  1453.             PEXVector2D vector;
  1454.         } SetATextUpVector;
  1455.         struct {
  1456.             int style;
  1457.         } SetBFInteriorStyle;
  1458.         struct {
  1459.             int index;
  1460.         } SetBFInteriorStyleIndex;
  1461.         struct {
  1462.             PEXReflectionAttributes attributes;
  1463.         } SetBFReflectionAttributes;
  1464.         struct {
  1465.             int model;
  1466.         } SetBFReflectionModel;
  1467.         struct {
  1468.             int color_type;
  1469.             PEXColor color;
  1470.         } SetBFSurfaceColor;
  1471.         struct {
  1472.             unsigned int index;
  1473.         } SetBFSurfaceColorIndex;
  1474.         struct {
  1475.             int method;
  1476.         } SetBFSurfaceInterpMethod;
  1477.         struct {
  1478.             double expansion;
  1479.         } SetCharExpansion;
  1480.         struct {
  1481.             double height;
  1482.         } SetCharHeight;
  1483.         struct {
  1484.             double spacing;
  1485.         } SetCharSpacing;
  1486.         struct {
  1487.             PEXVector2D vector;
  1488.         } SetCharUpVector;
  1489.         struct {
  1490.             unsigned int index;
  1491.         } SetColorApproxIndex;
  1492.         struct {
  1493.             int method;
  1494.             double tolerance;
  1495.         } SetCurveApprox;
  1496.         struct {
  1497.             unsigned int index;
  1498.         } SetDepthCueIndex;
  1499.         struct {
  1500.             unsigned int index;
  1501.         } SetEdgeBundleIndex;
  1502.         struct {
  1503.             int mode;
  1504.         } SetFacetCullingMode;
  1505.         struct {
  1506.             int flag;
  1507.         } SetFacetDistinguishFlag;
  1508.         struct {
  1509.             PEXMatrix transform;
  1510.         } SetGlobalTransform;
  1511.         struct {
  1512.             PEXMatrix3x3 transform;
  1513.         } SetGlobalTransform2D;
  1514.         struct {
  1515.             unsigned long hlhsr_id;
  1516.         } SetHLHSRID;
  1517.         struct {
  1518.             unsigned long attribute;
  1519.             int asf;
  1520.         } SetIndividualASF;
  1521.         struct {
  1522.             unsigned int index;
  1523.         } SetInteriorBundleIndex;
  1524.         struct {
  1525.             int style;
  1526.         } SetInteriorStyle;
  1527.         struct {
  1528.             int index;
  1529.         } SetInteriorStyleIndex;
  1530.         struct {
  1531.             unsigned int enable_count;
  1532.             PEXTableIndex *enable;
  1533.             unsigned int disable_count;
  1534.             PEXTableIndex *disable;
  1535.         } SetLightSourceState;
  1536.         struct {
  1537.             unsigned int index;
  1538.         } SetLineBundleIndex;
  1539.         struct {
  1540.             int color_type;
  1541.             PEXColor color;
  1542.         } SetLineColor;
  1543.         struct {
  1544.             unsigned int index;
  1545.         } SetLineColorIndex;
  1546.         struct {
  1547.             int line_type;
  1548.         } SetLineType;
  1549.         struct {
  1550.             double width;
  1551.         } SetLineWidth;
  1552.         struct {
  1553.             int composition;
  1554.             PEXMatrix transform;
  1555.         } SetLocalTransform;
  1556.         struct {
  1557.             int composition;
  1558.             PEXMatrix3x3 transform;
  1559.         } SetLocalTransform2D;
  1560.         struct {
  1561.             unsigned int index;
  1562.         } SetMarkerBundleIndex;
  1563.         struct {
  1564.             int color_type;
  1565.             PEXColor color;
  1566.         } SetMarkerColor;
  1567.         struct {
  1568.             unsigned int index;
  1569.         } SetMarkerColorIndex;
  1570.         struct {
  1571.             double scale;
  1572.         } SetMarkerScale;
  1573.         struct {
  1574.             int marker_type;
  1575.         } SetMarkerType;
  1576.         struct {
  1577.             int flag;
  1578.         } SetModelClipFlag;
  1579.         struct {
  1580.             int op;
  1581.             unsigned int count;
  1582.             PEXHalfSpace *half_spaces;
  1583.         } SetModelClipVolume;
  1584.         struct {
  1585.             int op;
  1586.             unsigned int count;
  1587.             PEXHalfSpace2D *half_spaces;
  1588.         } SetModelClipVolume2D;
  1589.         struct {
  1590.             int shape_hint;
  1591.             unsigned int facet_attributes;
  1592.             unsigned int vertex_attributes;
  1593.             unsigned int edge_attributes;
  1594.             int contour_hint;
  1595.             int contours_all_one;
  1596.             int color_type;
  1597.             unsigned int set_count;
  1598.             PEXArrayOfFacetData facet_data;
  1599.             unsigned int vertex_count;
  1600.             PEXArrayOfVertex vertices;
  1601.             unsigned int index_count;
  1602.             PEXSwitch *edge_flags;
  1603.             PEXConnectivityData *connectivity;
  1604.         } SetOfFillAreaSets;
  1605.         struct {
  1606.             int psc_type;
  1607.             PEXPSCData characteristics;
  1608.         } SetParaSurfCharacteristics;
  1609.         struct {
  1610.             PEXCoord ref_point;
  1611.             PEXVector vector1;
  1612.             PEXVector vector2;
  1613.         } SetPatternAttributes;
  1614.         struct {
  1615.             PEXCoord2D ref_point;
  1616.         } SetPatternAttributes2D;
  1617.         struct {
  1618.             double width;
  1619.             double height;
  1620.         } SetPatternSize;
  1621.         struct {
  1622.             unsigned long pick_id;
  1623.         } SetPickID;
  1624.         struct {
  1625.             int method;
  1626.         } SetPolylineInterpMethod;
  1627.         struct {
  1628.             PEXReflectionAttributes attributes;
  1629.         } SetReflectionAttributes;
  1630.         struct {
  1631.             int model;
  1632.         } SetReflectionModel;
  1633.         struct {
  1634.             int model;
  1635.         } SetRenderingColorModel;
  1636.         struct {
  1637.             int method;
  1638.             double utolerance;
  1639.             double vtolerance;
  1640.         } SetSurfaceApprox;
  1641.         struct {
  1642.             int color_type;
  1643.             PEXColor color;
  1644.         } SetSurfaceColor;
  1645.         struct {
  1646.             unsigned int index;
  1647.         } SetSurfaceColorIndex;
  1648.         struct {
  1649.             int color_type;
  1650.             PEXColor color;
  1651.         } SetSurfaceEdgeColor;
  1652.         struct {
  1653.             unsigned int index;
  1654.         } SetSurfaceEdgeColorIndex;
  1655.         struct {
  1656.             int flag;
  1657.         } SetSurfaceEdgeFlag;
  1658.         struct {
  1659.             int edge_type;
  1660.         } SetSurfaceEdgeType;
  1661.         struct {
  1662.             double width;
  1663.         } SetSurfaceEdgeWidth;
  1664.         struct {
  1665.             int method;
  1666.         } SetSurfaceInterpMethod;
  1667.         struct {
  1668.             int halignment;
  1669.             int valignment;
  1670.         } SetTextAlignment;
  1671.         struct {
  1672.             unsigned int index;
  1673.         } SetTextBundleIndex;
  1674.         struct {
  1675.             int color_type;
  1676.             PEXColor color;
  1677.         } SetTextColor;
  1678.         struct {
  1679.             unsigned int index;
  1680.         } SetTextColorIndex;
  1681.         struct {
  1682.             unsigned int index;
  1683.         } SetTextFontIndex;
  1684.         struct {
  1685.             int path;
  1686.         } SetTextPath;
  1687.         struct {
  1688.             int precision;
  1689.         } SetTextPrecision;
  1690.         struct {
  1691.             unsigned int index;
  1692.         } SetViewIndex;
  1693.         struct {
  1694.             unsigned int facet_attributes;
  1695.             unsigned int vertex_attributes;
  1696.             int color_type;
  1697.             PEXArrayOfFacetData facet_data;
  1698.             unsigned int count;
  1699.             PEXArrayOfVertex vertices;
  1700.         } TriangleStrip;
  1701.     } data;
  1702. } PEXOCData;
  1703.  
  1704.  
  1705. /*
  1706.  * encoded output commands
  1707.  */
  1708.  
  1709. /* macro for inquiring max length for PEXGetOCAddr */
  1710.  
  1711. #define PEXGetOCAddrMaxSize(_display) \
  1712.     ((_display)->bufmax - (_display)->buffer)   /* this macro returns the     */
  1713.                                                 /* maximum allowable size (in */
  1714.                                                 /* bytes) for PEXGetOCAddr    */
  1715.                                                 /* individual implementations */
  1716.                                                 /* can modify the value, but  */
  1717.                                                 /* the minimum allowed is 1024*/
  1718.  
  1719.  
  1720. /*
  1721.  * constants for utilities
  1722.  */
  1723.  
  1724. /* constants for PEXRotate */
  1725. #define PEXXAxis                1
  1726. #define PEXYAxis                2
  1727. #define PEXZAxis                3
  1728.  
  1729. /* constants for utilities error return status */
  1730. #define PEXBadVector            1
  1731. #define PEXBadVectors           2
  1732. #define PEXBadLimits            3
  1733. #define PEXBadViewport          4
  1734. #define PEXBadPlanes            5
  1735. #define PEXBadPRP               6
  1736. #define PEXBadMatrix            7
  1737. #define PEXBadPrimitive         8
  1738. #define PEXBadDistance          9
  1739. #define PEXBadAxis              10
  1740. #define PEXBadHomoCoord         11
  1741. #define PEXBadSubVolume         12
  1742.  
  1743.  
  1744. /*
  1745.  * function declarations
  1746.  */
  1747.  
  1748. extern void PEXAccumulateState(
  1749. #if NeedFunctionPrototypes
  1750.     Display *        /* display */,
  1751.     PEXRenderer         /* renderer */,
  1752.     unsigned long         /* count */,
  1753.     PEXElementRef *        /* elements */
  1754. #endif
  1755. );
  1756.  
  1757. extern void PEXAddToNameSet(
  1758. #if NeedFunctionPrototypes
  1759.     Display *        /* display */,
  1760.     XID         /* resource_id */,
  1761.     PEXOCRequestType         /* req_type */,
  1762.     unsigned long         /* count */,
  1763.     PEXName *        /* names */
  1764. #endif
  1765. );
  1766.  
  1767. extern void PEXAnnotationText(
  1768. #if NeedFunctionPrototypes
  1769.     Display *        /* display */,
  1770.     XID         /* resource_id */,
  1771.     PEXOCRequestType         /* req_type */,
  1772.     PEXCoord *        /* origin */,
  1773.     PEXCoord *        /* offset */,
  1774.     int         /* length */,
  1775.     char *        /* string */
  1776. #endif
  1777. );
  1778.  
  1779. extern void PEXAnnotationText2D(
  1780. #if NeedFunctionPrototypes
  1781.     Display *        /* display */,
  1782.     XID         /* resource_id */,
  1783.     PEXOCRequestType         /* req_type */,
  1784.     PEXCoord2D *        /* origin */,
  1785.     PEXCoord2D *        /* offset */,
  1786.     int         /* length */,
  1787.     char *        /* string */
  1788. #endif
  1789. );
  1790.  
  1791. extern void PEXApplicationData(
  1792. #if NeedFunctionPrototypes
  1793.     Display *        /* display */,
  1794.     XID         /* resource_id */,
  1795.     PEXOCRequestType         /* req_type */,
  1796.     int         /* length */,
  1797.     char *        /* data */
  1798. #endif
  1799. );
  1800.  
  1801. extern void PEXBeginPickAll(
  1802. #if NeedFunctionPrototypes
  1803.     Display *        /* display */,
  1804.     Drawable         /* drawable */,
  1805.     PEXRenderer         /* renderer */,
  1806.     long         /* structure_id */,
  1807.     int         /* method */,
  1808.     int         /* send_event */,
  1809.     int         /* max_hits */,
  1810.     int         /* pick_device_type */,
  1811.     PEXPickRecord *        /* pick_record */
  1812. #endif
  1813. );
  1814.  
  1815. extern void PEXBeginPickOne(
  1816. #if NeedFunctionPrototypes
  1817.     Display *        /* display */,
  1818.     Drawable         /* drawable */,
  1819.     PEXRenderer         /* renderer */,
  1820.     long         /* structure_id */,
  1821.     int         /* method */,
  1822.     int         /* pick_device_type */,
  1823.     PEXPickRecord *        /* pick_record */
  1824. #endif
  1825. );
  1826.  
  1827. extern void PEXBeginRendering(
  1828. #if NeedFunctionPrototypes
  1829.     Display *        /* display */,
  1830.     Drawable         /* drawable */,
  1831.     PEXRenderer         /* renderer */
  1832. #endif
  1833. );
  1834.  
  1835. extern void PEXBeginStructure(
  1836. #if NeedFunctionPrototypes
  1837.     Display *        /* display */,
  1838.     PEXRenderer         /* renderer */,
  1839.     long         /* structure_id */
  1840. #endif
  1841. );
  1842.  
  1843. extern void PEXBuildTransform(
  1844. #if NeedFunctionPrototypes
  1845.     PEXCoord *        /* fixed_point */,
  1846.     PEXVector *        /* trans_vector */,
  1847.     double         /* angle_x */,
  1848.     double         /* angle_y */,
  1849.     double         /* angle_z */,
  1850.     PEXVector *        /* scale_vector */,
  1851.     PEXMatrix         /* matrix_return */
  1852. #endif
  1853. );
  1854.  
  1855. extern void PEXBuildTransform2D(
  1856. #if NeedFunctionPrototypes
  1857.     PEXCoord2D *        /* fixed_point */,
  1858.     PEXVector2D *        /* trans_vector */,
  1859.     double         /* angle_z */,
  1860.     PEXVector2D *        /* scale_vector */,
  1861.     PEXMatrix3x3         /* matrix_return */
  1862. #endif
  1863. );
  1864.  
  1865. extern void PEXCellArray(
  1866. #if NeedFunctionPrototypes
  1867.     Display *        /* display */,
  1868.     XID         /* resource_id */,
  1869.     PEXOCRequestType         /* req_type */,
  1870.     PEXCoord *        /* point1 */,
  1871.     PEXCoord *        /* point2 */,
  1872.     PEXCoord *        /* point3 */,
  1873.     unsigned int         /* col_count */,
  1874.     unsigned int         /* row_count */,
  1875.     PEXTableIndex *        /* color_indices */
  1876. #endif
  1877. );
  1878.  
  1879. extern void PEXCellArray2D(
  1880. #if NeedFunctionPrototypes
  1881.     Display *        /* display */,
  1882.     XID         /* resource_id */,
  1883.     PEXOCRequestType         /* req_type */,
  1884.     PEXCoord2D *        /* point1 */,
  1885.     PEXCoord2D *        /* point2 */,
  1886.     unsigned int         /* col_count */,
  1887.     unsigned int         /* row_count */,
  1888.     PEXTableIndex *        /* color_indices */
  1889. #endif
  1890. );
  1891.  
  1892. extern void PEXChangeNameSet(
  1893. #if NeedFunctionPrototypes
  1894.     Display *        /* display */,
  1895.     PEXNameSet         /* nameset */,
  1896.     int         /* action */,
  1897.     unsigned long         /* count */,
  1898.     PEXName *        /* names */
  1899. #endif
  1900. );
  1901.  
  1902. extern void PEXChangePickDevice(
  1903. #if NeedFunctionPrototypes
  1904.     Display *        /* display */,
  1905.     PEXWorkstation         /* workstation */,
  1906.     int         /* pick_device_type */,
  1907.     unsigned long         /* value_mask */,
  1908.     PEXPDAttributes *        /* values */
  1909. #endif
  1910. );
  1911.  
  1912. extern void PEXChangePipelineContext(
  1913. #if NeedFunctionPrototypes
  1914.     Display *        /* display */,
  1915.     PEXPipelineContext         /* context */,
  1916.     unsigned long *        /* value_mask */,
  1917.     PEXPCAttributes *        /* values */
  1918. #endif
  1919. );
  1920.  
  1921. extern void PEXChangeRenderer(
  1922. #if NeedFunctionPrototypes
  1923.     Display *        /* display */,
  1924.     PEXRenderer         /* renderer */,
  1925.     unsigned long         /* value_mask */,
  1926.     PEXRendererAttributes *        /* values */
  1927. #endif
  1928. );
  1929.  
  1930. extern void PEXChangeSearchContext(
  1931. #if NeedFunctionPrototypes
  1932.     Display *        /* display */,
  1933.     PEXSearchContext         /* context */,
  1934.     unsigned long         /* value_mask */,
  1935.     PEXSCAttributes *        /* values */
  1936. #endif
  1937. );
  1938.  
  1939. extern void PEXChangeStructureRefs(
  1940. #if NeedFunctionPrototypes
  1941.     Display *        /* display */,
  1942.     PEXStructure         /* old_structure */,
  1943.     PEXStructure         /* new_structure */
  1944. #endif
  1945. );
  1946.  
  1947. extern void PEXCopyBytesToOC(
  1948. #if NeedFunctionPrototypes
  1949.     Display *        /* display */,
  1950.     int         /* length */,
  1951.     char *        /* data */
  1952. #endif
  1953. );
  1954.  
  1955. extern void PEXCopyElements(
  1956. #if NeedFunctionPrototypes
  1957.     Display *        /* display */,
  1958.     PEXStructure         /* src_structure */,
  1959.     int         /* src_whence1 */,
  1960.     long         /* src_offset1 */,
  1961.     int         /* src_whence2 */,
  1962.     long         /* src_offset2 */,
  1963.     PEXStructure         /* dst_structure */,
  1964.     int         /* dst_whence */,
  1965.     long         /* dst_offset */
  1966. #endif
  1967. );
  1968.  
  1969. extern void PEXCopyLookupTable(
  1970. #if NeedFunctionPrototypes
  1971.     Display *        /* display */,
  1972.     PEXLookupTable         /* src_table */,
  1973.     PEXLookupTable         /* dst_table */
  1974. #endif
  1975. );
  1976.  
  1977. extern void PEXCopyNameSet(
  1978. #if NeedFunctionPrototypes
  1979.     Display *        /* display */,
  1980.     PEXNameSet         /* src_nameset */,
  1981.     PEXNameSet         /* dst_nameset */
  1982. #endif
  1983. );
  1984.  
  1985. extern void PEXCopyPipelineContext(
  1986. #if NeedFunctionPrototypes
  1987.     Display *        /* display */,
  1988.     unsigned long *        /* value_mask */,
  1989.     PEXPipelineContext         /* src_context */,
  1990.     PEXPipelineContext         /* dst_context */
  1991. #endif
  1992. );
  1993.  
  1994. extern void PEXCopySearchContext(
  1995. #if NeedFunctionPrototypes
  1996.     Display *        /* display */,
  1997.     unsigned long         /* value_mask */,
  1998.     PEXSearchContext         /* src_context */,
  1999.     PEXSearchContext         /* dst_context */
  2000. #endif
  2001. );
  2002.  
  2003. extern void PEXCopyStructure(
  2004. #if NeedFunctionPrototypes
  2005.     Display *        /* display */,
  2006.     PEXStructure         /* src_structure */,
  2007.     PEXStructure         /* dst_structure */
  2008. #endif
  2009. );
  2010.  
  2011. extern PEXLookupTable PEXCreateLookupTable(
  2012. #if NeedFunctionPrototypes
  2013.     Display *        /* display */,
  2014.     Drawable         /* drawable */,
  2015.     int         /* table_type */
  2016. #endif
  2017. );
  2018.  
  2019. extern PEXNameSet PEXCreateNameSet(
  2020. #if NeedFunctionPrototypes
  2021.     Display *        /* display */
  2022. #endif
  2023. );
  2024.  
  2025. extern PEXPickMeasure PEXCreatePickMeasure(
  2026. #if NeedFunctionPrototypes
  2027.     Display *        /* display */,
  2028.     PEXWorkstation         /* workstation */,
  2029.     int         /* pick_device_type */
  2030. #endif
  2031. );
  2032.  
  2033. extern PEXPipelineContext PEXCreatePipelineContext(
  2034. #if NeedFunctionPrototypes
  2035.     Display *        /* display */,
  2036.     unsigned long *        /* value_mask */,
  2037.     PEXPCAttributes *        /* values */
  2038. #endif
  2039. );
  2040.  
  2041. extern PEXRenderer PEXCreateRenderer(
  2042. #if NeedFunctionPrototypes
  2043.     Display *        /* display */,
  2044.     Drawable         /* drawable */,
  2045.     unsigned long         /* value_mask */,
  2046.     PEXRendererAttributes *        /* values */
  2047. #endif
  2048. );
  2049.  
  2050. extern PEXSearchContext PEXCreateSearchContext(
  2051. #if NeedFunctionPrototypes
  2052.     Display *        /* display */,
  2053.     unsigned long         /* value_mask */,
  2054.     PEXSCAttributes *        /* values */
  2055. #endif
  2056. );
  2057.  
  2058. extern PEXStructure PEXCreateStructure(
  2059. #if NeedFunctionPrototypes
  2060.     Display *        /* display */
  2061. #endif
  2062. );
  2063.  
  2064. extern PEXWorkstation PEXCreateWorkstation(
  2065. #if NeedFunctionPrototypes
  2066.     Display *        /* display */,
  2067.     Drawable         /* drawable */,
  2068.     PEXLookupTable         /* line_bundle */,
  2069.     PEXLookupTable         /* marker_bundle */,
  2070.     PEXLookupTable         /* text_bundle */,
  2071.     PEXLookupTable         /* interior_bundle */,
  2072.     PEXLookupTable         /* edge_bundle */,
  2073.     PEXLookupTable         /* color_table */,
  2074.     PEXLookupTable         /* pattern_table */,
  2075.     PEXLookupTable         /* font_table */,
  2076.     PEXLookupTable         /* depth_cue_table */,
  2077.     PEXLookupTable         /* light_table */,
  2078.     PEXLookupTable         /* color_approx_table */,
  2079.     PEXNameSet         /* highlight_incl */,
  2080.     PEXNameSet         /* highlight_excl */,
  2081.     PEXNameSet         /* invisibility_incl */,
  2082.     PEXNameSet         /* invisibility_excl */,
  2083.     int         /* buffer_mode */
  2084. #endif
  2085. );
  2086.  
  2087. extern PEXOCData *PEXDecodeOCs(
  2088. #if NeedFunctionPrototypes
  2089.     int         /* float_format */,
  2090.     unsigned long         /* oc_count */,
  2091.     unsigned long         /* length */,
  2092.     char *        /* encoded_ocs */
  2093. #endif
  2094. );
  2095.  
  2096. extern void PEXDeleteBetweenLabels(
  2097. #if NeedFunctionPrototypes
  2098.     Display *        /* display */,
  2099.     PEXStructure         /* structure */,
  2100.     long         /* label1 */,
  2101.     long         /* label2 */
  2102. #endif
  2103. );
  2104.  
  2105. extern void PEXDeleteElements(
  2106. #if NeedFunctionPrototypes
  2107.     Display *        /* display */,
  2108.     PEXStructure         /* structure */,
  2109.     int         /* whence1 */,
  2110.     long         /* offset1 */,
  2111.     int         /* whence2 */,
  2112.     long         /* offset2 */
  2113. #endif
  2114. );
  2115.  
  2116. extern void PEXDeleteTableEntries(
  2117. #if NeedFunctionPrototypes
  2118.     Display *        /* display */,
  2119.     PEXLookupTable         /* table */,
  2120.     unsigned int         /* start */,
  2121.     unsigned int         /* count */
  2122. #endif
  2123. );
  2124.  
  2125. extern void PEXDeleteToLabel(
  2126. #if NeedFunctionPrototypes
  2127.     Display *        /* display */,
  2128.     PEXStructure         /* structure */,
  2129.     int         /* whence */,
  2130.     long         /* offset */,
  2131.     long         /* label */
  2132. #endif
  2133. );
  2134.  
  2135. extern void PEXDestroyStructures(
  2136. #if NeedFunctionPrototypes
  2137.     Display *        /* display */,
  2138.     unsigned long         /* count */,
  2139.     PEXStructure *        /* structures */
  2140. #endif
  2141. );
  2142.  
  2143. extern Status PEXElementSearch(
  2144. #if NeedFunctionPrototypes
  2145.     Display *        /* display */,
  2146.     PEXStructure         /* structure */,
  2147.     int         /* whence */,
  2148.     long         /* offset */,
  2149.     int         /* direction */,
  2150.     unsigned long         /* incl_count */,
  2151.     unsigned short *        /* incl_list */,
  2152.     unsigned long         /* excl_count */,
  2153.     unsigned short *        /* excl_list */,
  2154.     unsigned long *        /* elem_offset_return */
  2155. #endif
  2156. );
  2157.  
  2158. extern char *PEXEncodeOCs(
  2159. #if NeedFunctionPrototypes
  2160.     int         /* float_format */,
  2161.     unsigned long         /* oc_count */,
  2162.     PEXOCData *        /* oc_data */,
  2163.     unsigned long *        /* length_return */
  2164. #endif
  2165. );
  2166.  
  2167. extern void PEXEncodedAnnoText(
  2168. #if NeedFunctionPrototypes
  2169.     Display *        /* display */,
  2170.     XID         /* resource_id */,
  2171.     PEXOCRequestType         /* req_type */,
  2172.     PEXCoord *        /* origin */,
  2173.     PEXCoord *        /* offset */,
  2174.     unsigned int         /* count */,
  2175.     PEXEncodedTextData *        /* encoded_text */
  2176. #endif
  2177. );
  2178.  
  2179. extern void PEXEncodedAnnoText2D(
  2180. #if NeedFunctionPrototypes
  2181.     Display *        /* display */,
  2182.     XID         /* resource_id */,
  2183.     PEXOCRequestType         /* req_type */,
  2184.     PEXCoord2D *        /* origin */,
  2185.     PEXCoord2D *        /* offset */,
  2186.     unsigned int         /* count */,
  2187.     PEXEncodedTextData *        /* encoded_text */
  2188. #endif
  2189. );
  2190.  
  2191. extern void PEXEncodedText(
  2192. #if NeedFunctionPrototypes
  2193.     Display *        /* display */,
  2194.     XID         /* resource_id */,
  2195.     PEXOCRequestType         /* req_type */,
  2196.     PEXCoord *        /* origin */,
  2197.     PEXVector *        /* vector1 */,
  2198.     PEXVector *        /* vector2 */,
  2199.     unsigned int         /* count */,
  2200.     PEXEncodedTextData *        /* encoded_text */
  2201. #endif
  2202. );
  2203.  
  2204. extern void PEXEncodedText2D(
  2205. #if NeedFunctionPrototypes
  2206.     Display *        /* display */,
  2207.     XID         /* resource_id */,
  2208.     PEXOCRequestType         /* req_type */,
  2209.     PEXCoord2D *        /* origin */,
  2210.     unsigned int         /* count */,
  2211.     PEXEncodedTextData *        /* encoded_text */
  2212. #endif
  2213. );
  2214.  
  2215. extern PEXPickPath *PEXEndPickAll(
  2216. #if NeedFunctionPrototypes
  2217.     Display *        /* display */,
  2218.     PEXRenderer         /* renderer */,
  2219.     int *        /* status_return */,
  2220.     int *        /* more_return */,
  2221.     unsigned long *        /* count_return */
  2222. #endif
  2223. );
  2224.  
  2225. extern PEXPickPath *PEXEndPickOne(
  2226. #if NeedFunctionPrototypes
  2227.     Display *        /* display */,
  2228.     PEXRenderer         /* renderer */,
  2229.     int *        /* status_return */,
  2230.     int *        /* undetectable_return */
  2231. #endif
  2232. );
  2233.  
  2234. extern void PEXEndRendering(
  2235. #if NeedFunctionPrototypes
  2236.     Display *        /* display */,
  2237.     PEXRenderer         /* renderer */,
  2238.     int         /* flush */
  2239. #endif
  2240. );
  2241.  
  2242. extern void PEXEndStructure(
  2243. #if NeedFunctionPrototypes
  2244.     Display *        /* display */,
  2245.     PEXRenderer         /* renderer */
  2246. #endif
  2247. );
  2248.  
  2249. extern void PEXEscape(
  2250. #if NeedFunctionPrototypes
  2251.     Display *        /* display */,
  2252.     unsigned long         /* escape_id */,
  2253.     int         /* length */,
  2254.     char *        /* escape_data */
  2255. #endif
  2256. );
  2257.  
  2258. extern char *PEXEscapeWithReply(
  2259. #if NeedFunctionPrototypes
  2260.     Display *        /* display */,
  2261.     unsigned long         /* escape_id */,
  2262.     int         /* length */,
  2263.     char *        /* escape_data */,
  2264.     unsigned long *        /* reply_length_return */
  2265. #endif
  2266. );
  2267.  
  2268. extern void PEXExecuteDeferredActions(
  2269. #if NeedFunctionPrototypes
  2270.     Display *        /* display */,
  2271.     PEXWorkstation         /* workstation */
  2272. #endif
  2273. );
  2274.  
  2275. extern void PEXExecuteStructure(
  2276. #if NeedFunctionPrototypes
  2277.     Display *        /* display */,
  2278.     XID         /* resource_id */,
  2279.     PEXOCRequestType         /* req_type */,
  2280.     PEXStructure         /* structure */
  2281. #endif
  2282. );
  2283.  
  2284. extern void PEXExtendedCellArray(
  2285. #if NeedFunctionPrototypes
  2286.     Display *        /* display */,
  2287.     XID         /* resource_id */,
  2288.     PEXOCRequestType         /* req_type */,
  2289.     PEXCoord *        /* point1 */,
  2290.     PEXCoord *        /* point2 */,
  2291.     PEXCoord *        /* point3 */,
  2292.     unsigned int         /* col_count */,
  2293.     unsigned int         /* row_count */,
  2294.     int         /* color_type */,
  2295.     PEXArrayOfColor         /* colors */
  2296. #endif
  2297. );
  2298.  
  2299. extern Status PEXFetchElements(
  2300. #if NeedFunctionPrototypes
  2301.     Display *        /* display */,
  2302.     PEXStructure         /* structure */,
  2303.     int         /* whence1 */,
  2304.     long         /* offset1 */,
  2305.     int         /* whence2 */,
  2306.     long         /* offset2 */,
  2307.     int         /* float_format */,
  2308.     unsigned long *        /* count_return */,
  2309.     unsigned long *        /* length_return */,
  2310.     char **        /* ocs_return */
  2311. #endif
  2312. );
  2313.  
  2314. extern Status PEXFetchElementsAndSend(
  2315. #if NeedFunctionPrototypes
  2316.     Display *        /* src_display */,
  2317.     PEXStructure         /* structure */,
  2318.     int         /* whence1 */,
  2319.     long         /* offset1 */,
  2320.     int         /* whence2 */,
  2321.     long         /* offset2 */,
  2322.     Display *        /* dst_display */,
  2323.     XID         /* resource_id */,
  2324.     PEXOCRequestType         /* req_type */
  2325. #endif
  2326. );
  2327.  
  2328. extern void PEXFillArea(
  2329. #if NeedFunctionPrototypes
  2330.     Display *        /* display */,
  2331.     XID         /* resource_id */,
  2332.     PEXOCRequestType         /* req_type */,
  2333.     int         /* shape_hint */,
  2334.     int         /* ignore_edges */,
  2335.     unsigned int         /* count */,
  2336.     PEXCoord *        /* points */
  2337. #endif
  2338. );
  2339.  
  2340. extern void PEXFillArea2D(
  2341. #if NeedFunctionPrototypes
  2342.     Display *        /* display */,
  2343.     XID         /* resource_id */,
  2344.     PEXOCRequestType         /* req_type */,
  2345.     int         /* shape_hint */,
  2346.     int         /* ignore_edges */,
  2347.     unsigned int         /* count */,
  2348.     PEXCoord2D *        /* points */
  2349. #endif
  2350. );
  2351.  
  2352. extern void PEXFillAreaSet(
  2353. #if NeedFunctionPrototypes
  2354.     Display *        /* display */,
  2355.     XID         /* resource_id */,
  2356.     PEXOCRequestType         /* req_type */,
  2357.     int         /* shape_hint */,
  2358.     int         /* ignore_edges */,
  2359.     int         /* contour_hint */,
  2360.     unsigned int         /* count */,
  2361.     PEXListOfCoord *        /* point_lists */
  2362. #endif
  2363. );
  2364.  
  2365. extern void PEXFillAreaSet2D(
  2366. #if NeedFunctionPrototypes
  2367.     Display *        /* display */,
  2368.     XID         /* resource_id */,
  2369.     PEXOCRequestType         /* req_type */,
  2370.     int         /* shape_hint */,
  2371.     int         /* ignore_edges */,
  2372.     int         /* contour_hint */,
  2373.     unsigned int         /* count */,
  2374.     PEXListOfCoord2D *        /* point_lists */
  2375. #endif
  2376. );
  2377.  
  2378. extern void PEXFillAreaSetWithData(
  2379. #if NeedFunctionPrototypes
  2380.     Display *        /* display */,
  2381.     XID         /* resource_id */,
  2382.     PEXOCRequestType         /* req_type */,
  2383.     int         /* shape_hint */,
  2384.     int         /* ignore_edges */,
  2385.     int         /* contour_hint */,
  2386.     unsigned int         /* facet_attributes */,
  2387.     unsigned int         /* vertex_attributes */,
  2388.     int         /* color_type */,
  2389.     unsigned int         /* count */,
  2390.     PEXFacetData *        /* facet_data */,
  2391.     PEXListOfVertex *        /* vertex_lists */
  2392. #endif
  2393. );
  2394.  
  2395. extern void PEXFillAreaWithData(
  2396. #if NeedFunctionPrototypes
  2397.     Display *        /* display */,
  2398.     XID         /* resource_id */,
  2399.     PEXOCRequestType         /* req_type */,
  2400.     int         /* shape_hint */,
  2401.     int         /* ignore_edges */,
  2402.     unsigned int         /* facet_attributes */,
  2403.     unsigned int         /* vertex_attributes */,
  2404.     int         /* color_type */,
  2405.     PEXFacetData *        /* facet_data */,
  2406.     unsigned int         /* count */,
  2407.     PEXArrayOfVertex         /* vertices */
  2408. #endif
  2409. );
  2410.  
  2411. extern void PEXFinishOCs(
  2412. #if NeedFunctionPrototypes
  2413.     Display *        /* display */
  2414. #endif
  2415. );
  2416.  
  2417. extern void PEXFreeEnumInfo(
  2418. #if NeedFunctionPrototypes
  2419.     unsigned long         /* count */,
  2420.     unsigned long *        /* info_count */,
  2421.     PEXEnumTypeDesc *        /* enum_info */
  2422. #endif
  2423. );
  2424.  
  2425. extern void PEXFreeFontInfo(
  2426. #if NeedFunctionPrototypes
  2427.     unsigned long         /* count */,
  2428.     PEXFontInfo *        /* font_info */
  2429. #endif
  2430. );
  2431.  
  2432. extern void PEXFreeFontNames(
  2433. #if NeedFunctionPrototypes
  2434.     unsigned long         /* count */,
  2435.     char **        /* font_names */
  2436. #endif
  2437. );
  2438.  
  2439. extern void PEXFreeLookupTable(
  2440. #if NeedFunctionPrototypes
  2441.     Display *        /* display */,
  2442.     PEXLookupTable         /* table */
  2443. #endif
  2444. );
  2445.  
  2446. extern void PEXFreeNameSet(
  2447. #if NeedFunctionPrototypes
  2448.     Display *        /* display */,
  2449.     PEXNameSet         /* nameset */
  2450. #endif
  2451. );
  2452.  
  2453. extern void PEXFreeOCData(
  2454. #if NeedFunctionPrototypes
  2455.     unsigned long         /* count */,
  2456.     PEXOCData *        /* oc_data */
  2457. #endif
  2458. );
  2459.  
  2460. extern void PEXFreePCAttributes(
  2461. #if NeedFunctionPrototypes
  2462.     PEXPCAttributes *        /* values */
  2463. #endif
  2464. );
  2465.  
  2466. extern void PEXFreePDAttributes(
  2467. #if NeedFunctionPrototypes
  2468.     PEXPDAttributes *        /* values */
  2469. #endif
  2470. );
  2471.  
  2472. extern void PEXFreePMAttributes(
  2473. #if NeedFunctionPrototypes
  2474.     PEXPMAttributes *        /* values */
  2475. #endif
  2476. );
  2477.  
  2478. extern void PEXFreePickMeasure(
  2479. #if NeedFunctionPrototypes
  2480.     Display *        /* display */,
  2481.     PEXPickMeasure         /* pick_measure */
  2482. #endif
  2483. );
  2484.  
  2485. extern void PEXFreePickPaths(
  2486. #if NeedFunctionPrototypes
  2487.     unsigned long         /* count */,
  2488.     PEXPickPath *        /* pick_paths */
  2489. #endif
  2490. );
  2491.  
  2492. extern void PEXFreePipelineContext(
  2493. #if NeedFunctionPrototypes
  2494.     Display *        /* display */,
  2495.     PEXPipelineContext         /* context */
  2496. #endif
  2497. );
  2498.  
  2499. extern void PEXFreeRenderer(
  2500. #if NeedFunctionPrototypes
  2501.     Display *        /* display */,
  2502.     PEXRenderer         /* renderer */
  2503. #endif
  2504. );
  2505.  
  2506. extern void PEXFreeRendererAttributes(
  2507. #if NeedFunctionPrototypes
  2508.     PEXRendererAttributes *        /* values */
  2509. #endif
  2510. );
  2511.  
  2512. extern void PEXFreeSCAttributes(
  2513. #if NeedFunctionPrototypes
  2514.     PEXSCAttributes *        /* values */
  2515. #endif
  2516. );
  2517.  
  2518. extern void PEXFreeSearchContext(
  2519. #if NeedFunctionPrototypes
  2520.     Display *        /* display */,
  2521.     PEXSearchContext         /* context */
  2522. #endif
  2523. );
  2524.  
  2525. extern void PEXFreeStructurePaths(
  2526. #if NeedFunctionPrototypes
  2527.     unsigned long         /* count */,
  2528.     PEXStructurePath *        /* paths */
  2529. #endif
  2530. );
  2531.  
  2532. extern void PEXFreeTableEntries(
  2533. #if NeedFunctionPrototypes
  2534.     int         /* table_type */,
  2535.     unsigned int         /* count */,
  2536.     PEXPointer         /* entries */
  2537. #endif
  2538. );
  2539.  
  2540. extern void PEXFreeWorkstation(
  2541. #if NeedFunctionPrototypes
  2542.     Display *        /* display */,
  2543.     PEXWorkstation         /* workstation */
  2544. #endif
  2545. );
  2546.  
  2547. extern void PEXFreeWorkstationAttributes(
  2548. #if NeedFunctionPrototypes
  2549.     PEXWorkstationAttributes *        /* values */
  2550. #endif
  2551. );
  2552.  
  2553. extern void PEXGDP(
  2554. #if NeedFunctionPrototypes
  2555.     Display *        /* display */,
  2556.     XID         /* resource_id */,
  2557.     PEXOCRequestType         /* req_type */,
  2558.     long         /* gdp_id */,
  2559.     unsigned int         /* count */,
  2560.     PEXCoord *        /* points */,
  2561.     unsigned long         /* length */,
  2562.     char *        /* data */
  2563. #endif
  2564. );
  2565.  
  2566. extern void PEXGDP2D(
  2567. #if NeedFunctionPrototypes
  2568.     Display *        /* display */,
  2569.     XID         /* resource_id */,
  2570.     PEXOCRequestType         /* req_type */,
  2571.     long         /* gdp_id */,
  2572.     unsigned int         /* count */,
  2573.     PEXCoord2D *        /* points */,
  2574.     unsigned long         /* length */,
  2575.     char *        /* data */
  2576. #endif
  2577. );
  2578.  
  2579. extern void PEXGSE(
  2580. #if NeedFunctionPrototypes
  2581.     Display *        /* display */,
  2582.     XID         /* resource_id */,
  2583.     PEXOCRequestType         /* req_type */,
  2584.     long         /* id */,
  2585.     int         /* length */,
  2586.     char *        /* data */
  2587. #endif
  2588. );
  2589.  
  2590. extern int PEXGeoNormFillArea(
  2591. #if NeedFunctionPrototypes
  2592.     unsigned int         /* facet_attributes */,
  2593.     unsigned int         /* vertex_attributes */,
  2594.     int         /* color_type */,
  2595.     PEXFacetData *        /* facet_data */,
  2596.     unsigned int         /* count */,
  2597.     PEXArrayOfVertex         /* vertices */
  2598. #endif
  2599. );
  2600.  
  2601. extern int PEXGeoNormFillAreaSet(
  2602. #if NeedFunctionPrototypes
  2603.     unsigned int         /* facet_attributes */,
  2604.     unsigned int         /* vertex_attributes */,
  2605.     int         /* color_type */,
  2606.     unsigned int         /* count */,
  2607.     PEXFacetData *        /* facet_data */,
  2608.     PEXListOfVertex *        /* vertex_lists */
  2609. #endif
  2610. );
  2611.  
  2612. extern int PEXGeoNormQuadrilateralMesh(
  2613. #if NeedFunctionPrototypes
  2614.     unsigned int         /* facet_attributes */,
  2615.     unsigned int         /* vertex_attributes */,
  2616.     int         /* color_type */,
  2617.     PEXArrayOfFacetData         /* facet_data */,
  2618.     unsigned int         /* col_count */,
  2619.     unsigned int         /* row_count */,
  2620.     PEXArrayOfVertex         /* vertices */
  2621. #endif
  2622. );
  2623.  
  2624. extern int PEXGeoNormSetOfFillAreaSets(
  2625. #if NeedFunctionPrototypes
  2626.     unsigned int         /* facet_attributes */,
  2627.     unsigned int         /* vertex_attributes */,
  2628.     int         /* color_type */,
  2629.     unsigned int         /* set_count */,
  2630.     PEXArrayOfFacetData         /* facet_data */,
  2631.     unsigned int         /* vertex_count */,
  2632.     PEXArrayOfVertex         /* vertices */,
  2633.     unsigned int         /* index_count */,
  2634.     PEXConnectivityData *        /* connectivity */
  2635. #endif
  2636. );
  2637.  
  2638. extern int PEXGeoNormTriangleStrip(
  2639. #if NeedFunctionPrototypes
  2640.     unsigned int         /* facet_attributes */,
  2641.     unsigned int         /* vertex_attributes */,
  2642.     int         /* color_type */,
  2643.     PEXArrayOfFacetData         /* facet_data */,
  2644.     unsigned int         /* count */,
  2645.     PEXArrayOfVertex         /* vertices */
  2646. #endif
  2647. );
  2648.  
  2649. extern PEXStructurePath *PEXGetAncestors(
  2650. #if NeedFunctionPrototypes
  2651.     Display *        /* display */,
  2652.     PEXStructure         /* structure */,
  2653.     int         /* path_part */,
  2654.     unsigned long         /* path_depth */,
  2655.     unsigned long *        /* count_return */
  2656. #endif
  2657. );
  2658.  
  2659. extern Status PEXGetDefinedIndices(
  2660. #if NeedFunctionPrototypes
  2661.     Display *        /* display */,
  2662.     PEXLookupTable         /* table */,
  2663.     unsigned long *        /* count_return */,
  2664.     PEXTableIndex **        /* indices_return */
  2665. #endif
  2666. );
  2667.  
  2668. extern PEXStructurePath *PEXGetDescendants(
  2669. #if NeedFunctionPrototypes
  2670.     Display *        /* display */,
  2671.     PEXStructure         /* structure */,
  2672.     int         /* path_part */,
  2673.     unsigned long         /* path_depth */,
  2674.     unsigned long *        /* count_return */
  2675. #endif
  2676. );
  2677.  
  2678. extern Status PEXGetElementInfo(
  2679. #if NeedFunctionPrototypes
  2680.     Display *        /* display */,
  2681.     PEXStructure         /* structure */,
  2682.     int         /* whence1 */,
  2683.     long         /* offset1 */,
  2684.     int         /* whence2 */,
  2685.     long         /* offset2 */,
  2686.     int         /* float_format */,
  2687.     unsigned long *        /* count_return */,
  2688.     PEXElementInfo **        /* info_return */
  2689. #endif
  2690. );
  2691.  
  2692. extern Status PEXGetEnumTypeInfo(
  2693. #if NeedFunctionPrototypes
  2694.     Display *        /* display */,
  2695.     Drawable         /* drawable */,
  2696.     unsigned long         /* count */,
  2697.     int *        /* enum_types */,
  2698.     unsigned long         /* item_mask */,
  2699.     unsigned long **        /* info_count_return */,
  2700.     PEXEnumTypeDesc **        /* enum_info_return */
  2701. #endif
  2702. );
  2703.  
  2704. extern PEXExtensionInfo *PEXGetExtensionInfo(
  2705. #if NeedFunctionPrototypes
  2706.     Display *        /* display */
  2707. #endif
  2708. );
  2709.  
  2710. extern Status PEXGetImpDepConstants(
  2711. #if NeedFunctionPrototypes
  2712.     Display *        /* display */,
  2713.     Drawable         /* drawable */,
  2714.     unsigned long         /* count */,
  2715.     unsigned short *        /* names */,
  2716.     PEXImpDepConstant **        /* constants_return */
  2717. #endif
  2718. );
  2719.  
  2720. extern Status PEXGetNameSet(
  2721. #if NeedFunctionPrototypes
  2722.     Display *        /* display */,
  2723.     PEXNameSet         /* nameset */,
  2724.     unsigned long *        /* count_return */,
  2725.     PEXName **        /* names_return */
  2726. #endif
  2727. );
  2728.  
  2729. extern char *PEXGetOCAddr(
  2730. #if NeedFunctionPrototypes
  2731.     Display *        /* display */,
  2732.     int         /* length */
  2733. #endif
  2734. );
  2735.  
  2736. extern PEXPDAttributes *PEXGetPickDevice(
  2737. #if NeedFunctionPrototypes
  2738.     Display *        /* display */,
  2739.     PEXWorkstation         /* workstation */,
  2740.     int         /* pick_device_type */,
  2741.     unsigned long         /* value_mask */
  2742. #endif
  2743. );
  2744.  
  2745. extern PEXPMAttributes *PEXGetPickMeasure(
  2746. #if NeedFunctionPrototypes
  2747.     Display *        /* display */,
  2748.     PEXPickMeasure         /* pick_measure */,
  2749.     unsigned long         /* value_mask */
  2750. #endif
  2751. );
  2752.  
  2753. extern PEXPCAttributes *PEXGetPipelineContext(
  2754. #if NeedFunctionPrototypes
  2755.     Display *        /* display */,
  2756.     PEXPipelineContext         /* context */,
  2757.     unsigned long *        /* value_mask */
  2758. #endif
  2759. );
  2760.  
  2761. extern Status PEXGetPredefinedEntries(
  2762. #if NeedFunctionPrototypes
  2763.     Display *        /* display */,
  2764.     Drawable         /* drawable */,
  2765.     int         /* table_type */,
  2766.     unsigned int         /* start */,
  2767.     unsigned int         /* count */,
  2768.     PEXPointer *        /* entries_return */
  2769. #endif
  2770. );
  2771.  
  2772. extern int PEXGetProtocolFloatFormat(
  2773. #if NeedFunctionPrototypes
  2774.     Display *        /* display */
  2775. #endif
  2776. );
  2777.  
  2778. extern PEXRendererAttributes *PEXGetRendererAttributes(
  2779. #if NeedFunctionPrototypes
  2780.     Display *        /* display */,
  2781.     PEXRenderer         /* renderer */,
  2782.     unsigned long         /* value_mask */
  2783. #endif
  2784. );
  2785.  
  2786. extern Status PEXGetRendererDynamics(
  2787. #if NeedFunctionPrototypes
  2788.     Display *        /* display */,
  2789.     PEXRenderer         /* renderer */,
  2790.     unsigned long *        /* tables_return */,
  2791.     unsigned long *        /* name_sets_return */,
  2792.     unsigned long *        /* attributes_return */
  2793. #endif
  2794. );
  2795.  
  2796. extern PEXSCAttributes *PEXGetSearchContext(
  2797. #if NeedFunctionPrototypes
  2798.     Display *        /* display */,
  2799.     PEXSearchContext         /* context */,
  2800.     unsigned long         /* value_mask */
  2801. #endif
  2802. );
  2803.  
  2804. extern int PEXGetSizeOCs(
  2805. #if NeedFunctionPrototypes
  2806.     int         /* float_format */,
  2807.     int         /* oc_count */,
  2808.     PEXOCData *        /* oc_data */
  2809. #endif
  2810. );
  2811.  
  2812. extern Status PEXGetStructureInfo(
  2813. #if NeedFunctionPrototypes
  2814.     Display *        /* display */,
  2815.     PEXStructure         /* structure */,
  2816.     int         /* float_format */,
  2817.     unsigned long         /* value_mask */,
  2818.     PEXStructureInfo *        /* info_return */
  2819. #endif
  2820. );
  2821.  
  2822. extern PEXStructure *PEXGetStructuresInNetwork(
  2823. #if NeedFunctionPrototypes
  2824.     Display *        /* display */,
  2825.     PEXStructure         /* structure */,
  2826.     int         /* which */,
  2827.     unsigned long *        /* count_return */
  2828. #endif
  2829. );
  2830.  
  2831. extern Status PEXGetTableEntries(
  2832. #if NeedFunctionPrototypes
  2833.     Display *        /* display */,
  2834.     PEXLookupTable         /* table */,
  2835.     unsigned int         /* start */,
  2836.     unsigned int         /* count */,
  2837.     int         /* value_type */,
  2838.     int *        /* table_type_return */,
  2839.     PEXPointer *        /* entries_return */
  2840. #endif
  2841. );
  2842.  
  2843. extern PEXPointer PEXGetTableEntry(
  2844. #if NeedFunctionPrototypes
  2845.     Display *        /* display */,
  2846.     PEXLookupTable         /* table */,
  2847.     unsigned int         /* index */,
  2848.     int         /* value_type */,
  2849.     int *        /* status_return */,
  2850.     int *        /* table_type_return */
  2851. #endif
  2852. );
  2853.  
  2854. extern Status PEXGetTableInfo(
  2855. #if NeedFunctionPrototypes
  2856.     Display *        /* display */,
  2857.     Drawable         /* drawable */,
  2858.     int         /* table_type */,
  2859.     PEXTableInfo *        /* info_return */
  2860. #endif
  2861. );
  2862.  
  2863. extern PEXWorkstationAttributes *PEXGetWorkstationAttributes(
  2864. #if NeedFunctionPrototypes
  2865.     Display *        /* display */,
  2866.     PEXWorkstation         /* workstation */,
  2867.     unsigned long *        /* value_mask */
  2868. #endif
  2869. );
  2870.  
  2871. extern Status PEXGetWorkstationDynamics(
  2872. #if NeedFunctionPrototypes
  2873.     Display *        /* display */,
  2874.     Drawable         /* drawable */,
  2875.     PEXWorkstationDynamics *        /* dynamics_return */
  2876. #endif
  2877. );
  2878.  
  2879. extern Status PEXGetWorkstationPostings(
  2880. #if NeedFunctionPrototypes
  2881.     Display *        /* display */,
  2882.     PEXStructure         /* structure */,
  2883.     unsigned long *        /* count_return */,
  2884.     PEXWorkstation **        /* postings_return */
  2885. #endif
  2886. );
  2887.  
  2888. extern Status PEXGetWorkstationViewRep(
  2889. #if NeedFunctionPrototypes
  2890.     Display *        /* display */,
  2891.     PEXWorkstation         /* workstation */,
  2892.     unsigned int         /* index */,
  2893.     int *        /* update_return */,
  2894.     PEXViewRep *        /* req_view_return */,
  2895.     PEXViewRep *        /* cur_view_return */
  2896. #endif
  2897. );
  2898.  
  2899. extern void PEXIdentityMatrix(
  2900. #if NeedFunctionPrototypes
  2901.     PEXMatrix         /* transform_return */
  2902. #endif
  2903. );
  2904.  
  2905. extern void PEXIdentityMatrix2D(
  2906. #if NeedFunctionPrototypes
  2907.     PEXMatrix3x3         /* transform_return */
  2908. #endif
  2909. );
  2910.  
  2911. extern int PEXInitialize(
  2912. #if NeedFunctionPrototypes
  2913.     Display *        /* display */,
  2914.     PEXExtensionInfo **        /* info_return */,
  2915.     int         /* length */,
  2916.     char *        /* error_string */
  2917. #endif
  2918. );
  2919.  
  2920. extern int PEXInvertMatrix(
  2921. #if NeedFunctionPrototypes
  2922.     PEXMatrix         /* transform */,
  2923.     PEXMatrix         /* transform_return */
  2924. #endif
  2925. );
  2926.  
  2927. extern int PEXInvertMatrix2D(
  2928. #if NeedFunctionPrototypes
  2929.     PEXMatrix3x3         /* transform */,
  2930.     PEXMatrix3x3         /* transform_return */
  2931. #endif
  2932. );
  2933.  
  2934. extern void PEXLabel(
  2935. #if NeedFunctionPrototypes
  2936.     Display *        /* display */,
  2937.     XID         /* resource_id */,
  2938.     PEXOCRequestType         /* req_type */,
  2939.     long         /* label */
  2940. #endif
  2941. );
  2942.  
  2943. extern char **PEXListFonts(
  2944. #if NeedFunctionPrototypes
  2945.     Display *        /* display */,
  2946.     char *        /* pattern */,
  2947.     unsigned int         /* max_names */,
  2948.     unsigned long *        /* count_return */
  2949. #endif
  2950. );
  2951.  
  2952. extern char **PEXListFontsWithInfo(
  2953. #if NeedFunctionPrototypes
  2954.     Display *        /* display */,
  2955.     char *        /* pattern */,
  2956.     unsigned int         /* max_names */,
  2957.     unsigned long *        /* count_return */,
  2958.     PEXFontInfo **        /* info_return */
  2959. #endif
  2960. );
  2961.  
  2962. extern PEXFont PEXLoadFont(
  2963. #if NeedFunctionPrototypes
  2964.     Display *        /* display */,
  2965.     char *        /* font_name */
  2966. #endif
  2967. );
  2968.  
  2969. extern int PEXLookAtViewMatrix(
  2970. #if NeedFunctionPrototypes
  2971.     PEXCoord *        /* from */,
  2972.     PEXCoord *        /* to */,
  2973.     PEXVector *        /* up */,
  2974.     PEXMatrix         /* matrix_return */
  2975. #endif
  2976. );
  2977.  
  2978. extern Status PEXMapDCToWC(
  2979. #if NeedFunctionPrototypes
  2980.     Display *        /* display */,
  2981.     PEXWorkstation         /* workstation */,
  2982.     unsigned long         /* dc_count */,
  2983.     PEXDeviceCoord *        /* dc_points */,
  2984.     unsigned int *        /* view_index_return */,
  2985.     unsigned long *        /* wc_count_return */,
  2986.     PEXCoord **        /* wc_points_return */
  2987. #endif
  2988. );
  2989.  
  2990. extern Status PEXMapWCToDC(
  2991. #if NeedFunctionPrototypes
  2992.     Display *        /* display */,
  2993.     PEXWorkstation         /* workstation */,
  2994.     unsigned long         /* wc_count */,
  2995.     PEXCoord *        /* wc_points */,
  2996.     unsigned int         /* view_index */,
  2997.     unsigned long *        /* dc_count_return */,
  2998.     PEXDeviceCoord **        /* dc_points_return */
  2999. #endif
  3000. );
  3001.  
  3002. extern int PEXMapXCToNPC(
  3003. #if NeedFunctionPrototypes
  3004.     int         /* point_count */,
  3005.     PEXDeviceCoord2D *        /* points */,
  3006.     unsigned int         /* window_height */,
  3007.     double         /* z_dc */,
  3008.     PEXDeviceCoord *        /* viewport */,
  3009.     PEXNPCSubVolume *        /* npc_sub_volume */,
  3010.     int         /* view_count */,
  3011.     PEXViewEntry *        /* views */,
  3012.     int *        /* view_return */,
  3013.     int *        /* count_return */,
  3014.     PEXCoord *        /* points_return */
  3015. #endif
  3016. );
  3017.  
  3018. extern int PEXMapXCToNPC2D(
  3019. #if NeedFunctionPrototypes
  3020.     int         /* point_count */,
  3021.     PEXDeviceCoord2D *        /* points */,
  3022.     unsigned int         /* window_height */,
  3023.     PEXDeviceCoord2D *        /* viewport */,
  3024.     PEXNPCSubVolume *        /* npc_sub_volume */,
  3025.     int         /* view_count */,
  3026.     PEXViewEntry *        /* views */,
  3027.     int *        /* view_return */,
  3028.     int *        /* count_return */,
  3029.     PEXCoord2D *        /* points_return */
  3030. #endif
  3031. );
  3032.  
  3033. extern void PEXMarkers(
  3034. #if NeedFunctionPrototypes
  3035.     Display *        /* display */,
  3036.     XID         /* resource_id */,
  3037.     PEXOCRequestType         /* req_type */,
  3038.     unsigned int         /* count */,
  3039.     PEXCoord *        /* points */
  3040. #endif
  3041. );
  3042.  
  3043. extern void PEXMarkers2D(
  3044. #if NeedFunctionPrototypes
  3045.     Display *        /* display */,
  3046.     XID         /* resource_id */,
  3047.     PEXOCRequestType         /* req_type */,
  3048.     unsigned int         /* count */,
  3049.     PEXCoord2D *        /* points */
  3050. #endif
  3051. );
  3052.  
  3053. extern Status PEXMatchRenderingTargets(
  3054. #if NeedFunctionPrototypes
  3055.     Display *        /* display */,
  3056.     Drawable         /* drawable */,
  3057.     int         /* depth */,
  3058.     int         /* type */,
  3059.     Visual *        /* visual */,
  3060.     unsigned long         /* max_targets */,
  3061.     unsigned long *        /* count_return */,
  3062.     PEXRenderingTarget **        /* targets_return */
  3063. #endif
  3064. );
  3065.  
  3066. extern void PEXMatrixMult(
  3067. #if NeedFunctionPrototypes
  3068.     PEXMatrix         /* matrix1 */,
  3069.     PEXMatrix         /* matrix2 */,
  3070.     PEXMatrix         /* matrix_return */
  3071. #endif
  3072. );
  3073.  
  3074. extern void PEXMatrixMult2D(
  3075. #if NeedFunctionPrototypes
  3076.     PEXMatrix3x3         /* matrix1 */,
  3077.     PEXMatrix3x3         /* matrix2 */,
  3078.     PEXMatrix3x3         /* matrix_return */
  3079. #endif
  3080. );
  3081.  
  3082. extern int PEXNPCToXCTransform(
  3083. #if NeedFunctionPrototypes
  3084.     PEXNPCSubVolume *        /* npc_sub_volume */,
  3085.     PEXDeviceCoord *        /* viewport */,
  3086.     unsigned int         /* window_height */,
  3087.     PEXMatrix         /* transform_return */
  3088. #endif
  3089. );
  3090.  
  3091. extern int PEXNPCToXCTransform2D(
  3092. #if NeedFunctionPrototypes
  3093.     PEXNPCSubVolume *        /* npc_sub_volume */,
  3094.     PEXDeviceCoord2D *        /* viewport */,
  3095.     unsigned int         /* window_height */,
  3096.     PEXMatrix3x3         /* transform_return */
  3097. #endif
  3098. );
  3099.  
  3100. extern void PEXNURBCurve(
  3101. #if NeedFunctionPrototypes
  3102.     Display *        /* display */,
  3103.     XID         /* resource_id */,
  3104.     PEXOCRequestType         /* req_type */,
  3105.     int         /* rationality */,
  3106.     int         /* order */,
  3107.     float *        /* knots */,
  3108.     unsigned int         /* count */,
  3109.     PEXArrayOfCoord         /* points */,
  3110.     double         /* tmin */,
  3111.     double         /* tmax */
  3112. #endif
  3113. );
  3114.  
  3115. extern void PEXNURBSurface(
  3116. #if NeedFunctionPrototypes
  3117.     Display *        /* display */,
  3118.     XID         /* resource_id */,
  3119.     PEXOCRequestType         /* req_type */,
  3120.     int         /* rationality */,
  3121.     int         /* uorder */,
  3122.     int         /* vorder */,
  3123.     float *        /* uknots */,
  3124.     float *        /* vknots */,
  3125.     unsigned int         /* col_count */,
  3126.     unsigned int         /* row_count */,
  3127.     PEXArrayOfCoord         /* points */,
  3128.     unsigned int         /* curve_count */,
  3129.     PEXListOfTrimCurve *        /* trim_curves */
  3130. #endif
  3131. );
  3132.  
  3133. extern void PEXNoop(
  3134. #if NeedFunctionPrototypes
  3135.     Display *        /* display */,
  3136.     XID         /* resource_id */,
  3137.     PEXOCRequestType         /* req_type */
  3138. #endif
  3139. );
  3140.  
  3141. extern int PEXNormalizeVectors(
  3142. #if NeedFunctionPrototypes
  3143.     int         /* count */,
  3144.     PEXVector *        /* vectors */,
  3145.     PEXVector *        /* vectors_return */
  3146. #endif
  3147. );
  3148.  
  3149. extern int PEXNormalizeVectors2D(
  3150. #if NeedFunctionPrototypes
  3151.     int         /* count */,
  3152.     PEXVector2D *        /* vectors */,
  3153.     PEXVector2D *        /* vectors_return */
  3154. #endif
  3155. );
  3156.  
  3157. extern int PEXOrthoProjMatrix(
  3158. #if NeedFunctionPrototypes
  3159.     double         /* height */,
  3160.     double         /* aspect */,
  3161.     double         /* near */,
  3162.     double         /* far */,
  3163.     PEXMatrix         /* matrix_return */
  3164. #endif
  3165. );
  3166.  
  3167. extern int PEXPerspProjMatrix(
  3168. #if NeedFunctionPrototypes
  3169.     double         /* fovy */,
  3170.     double         /* distance */,
  3171.     double         /* aspect */,
  3172.     double         /* near */,
  3173.     double         /* far */,
  3174.     PEXMatrix         /* matrix_return */
  3175. #endif
  3176. );
  3177.  
  3178. extern PEXPickPath *PEXPickAll(
  3179. #if NeedFunctionPrototypes
  3180.     Display *        /* display */,
  3181.     Drawable         /* drawable */,
  3182.     PEXRenderer         /* renderer */,
  3183.     int         /* method */,
  3184.     int         /* max_hits */,
  3185.     int         /* pick_device_type */,
  3186.     PEXPickRecord *        /* pick_record */,
  3187.     int *        /* status_return */,
  3188.     int *        /* more_return */,
  3189.     unsigned long *        /* count_return */
  3190. #endif
  3191. );
  3192.  
  3193. extern PEXPickPath *PEXPickOne(
  3194. #if NeedFunctionPrototypes
  3195.     Display *        /* display */,
  3196.     Drawable         /* drawable */,
  3197.     PEXRenderer         /* renderer */,
  3198.     PEXStructure         /* structure */,
  3199.     int         /* method */,
  3200.     int         /* pick_device_type */,
  3201.     PEXPickRecord *        /* pick_record */,
  3202.     int *        /* status_return */,
  3203.     int *        /* undetectable_return */
  3204. #endif
  3205. );
  3206.  
  3207. extern int PEXPolarViewMatrix(
  3208. #if NeedFunctionPrototypes
  3209.     PEXCoord *        /* from */,
  3210.     double         /* distance */,
  3211.     double         /* azimuth */,
  3212.     double         /* altitude */,
  3213.     double         /* twist */,
  3214.     PEXMatrix         /* matrix_return */
  3215. #endif
  3216. );
  3217.  
  3218. extern void PEXPolyline(
  3219. #if NeedFunctionPrototypes
  3220.     Display *        /* display */,
  3221.     XID         /* resource_id */,
  3222.     PEXOCRequestType         /* req_type */,
  3223.     unsigned int         /* count */,
  3224.     PEXCoord *        /* points */
  3225. #endif
  3226. );
  3227.  
  3228. extern void PEXPolyline2D(
  3229. #if NeedFunctionPrototypes
  3230.     Display *        /* display */,
  3231.     XID         /* resource_id */,
  3232.     PEXOCRequestType         /* req_type */,
  3233.     unsigned int         /* count */,
  3234.     PEXCoord2D *        /* points */
  3235. #endif
  3236. );
  3237.  
  3238. extern void PEXPolylineSetWithData(
  3239. #if NeedFunctionPrototypes
  3240.     Display *        /* display */,
  3241.     XID         /* resource_id */,
  3242.     PEXOCRequestType         /* req_type */,
  3243.     unsigned int         /* vertex_attributes */,
  3244.     int         /* color_type */,
  3245.     unsigned int         /* count */,
  3246.     PEXListOfVertex *        /* vertex_lists */
  3247. #endif
  3248. );
  3249.  
  3250. extern void PEXPostStructure(
  3251. #if NeedFunctionPrototypes
  3252.     Display *        /* display */,
  3253.     PEXWorkstation         /* workstation */,
  3254.     PEXStructure         /* structure */,
  3255.     double         /* priority */
  3256. #endif
  3257. );
  3258.  
  3259. extern void PEXQuadrilateralMesh(
  3260. #if NeedFunctionPrototypes
  3261.     Display *        /* display */,
  3262.     XID         /* resource_id */,
  3263.     PEXOCRequestType         /* req_type */,
  3264.     int         /* shape_hint */,
  3265.     unsigned int         /* facet_attributes */,
  3266.     unsigned int         /* vertex_attributes */,
  3267.     int         /* color_type */,
  3268.     PEXArrayOfFacetData         /* facet_data */,
  3269.     unsigned int         /* col_count */,
  3270.     unsigned int         /* row_count */,
  3271.     PEXArrayOfVertex         /* vertices */
  3272. #endif
  3273. );
  3274.  
  3275. extern PEXTextExtent *PEXQueryEncodedTextExtents(
  3276. #if NeedFunctionPrototypes
  3277.     Display *        /* display */,
  3278.     XID         /* resource_id */,
  3279.     unsigned int         /* font_table_index */,
  3280.     int         /* path */,
  3281.     double         /* expansion */,
  3282.     double         /* spacing */,
  3283.     double         /* height */,
  3284.     int         /* halign */,
  3285.     int         /* valign */,
  3286.     unsigned long         /* count */,
  3287.     PEXListOfEncodedText *        /* encoded_text */
  3288. #endif
  3289. );
  3290.  
  3291. extern PEXFontInfo *PEXQueryFont(
  3292. #if NeedFunctionPrototypes
  3293.     Display *        /* display */,
  3294.     PEXFont         /* font */
  3295. #endif
  3296. );
  3297.  
  3298. extern PEXTextExtent *PEXQueryTextExtents(
  3299. #if NeedFunctionPrototypes
  3300.     Display *        /* display */,
  3301.     XID         /* resource_id */,
  3302.     unsigned int         /* font_table_index */,
  3303.     int         /* path */,
  3304.     double         /* expansion */,
  3305.     double         /* spacing */,
  3306.     double         /* height */,
  3307.     int         /* halign */,
  3308.     int         /* valign */,
  3309.     unsigned long         /* count */,
  3310.     PEXStringData *        /* text */
  3311. #endif
  3312. );
  3313.  
  3314. extern void PEXRedrawAllStructures(
  3315. #if NeedFunctionPrototypes
  3316.     Display *        /* display */,
  3317.     PEXWorkstation         /* workstation */
  3318. #endif
  3319. );
  3320.  
  3321. extern void PEXRedrawClipRegion(
  3322. #if NeedFunctionPrototypes
  3323.     Display *        /* display */,
  3324.     PEXWorkstation         /* workstation */,
  3325.     unsigned long         /* count */,
  3326.     PEXDeviceRect *        /* clip_rectangles */
  3327. #endif
  3328. );
  3329.  
  3330. extern void PEXRemoveFromNameSet(
  3331. #if NeedFunctionPrototypes
  3332.     Display *        /* display */,
  3333.     XID         /* resource_id */,
  3334.     PEXOCRequestType         /* req_type */,
  3335.     unsigned long         /* count */,
  3336.     PEXName *        /* names */
  3337. #endif
  3338. );
  3339.  
  3340. extern void PEXRenderElements(
  3341. #if NeedFunctionPrototypes
  3342.     Display *        /* display */,
  3343.     PEXRenderer         /* renderer */,
  3344.     PEXStructure         /* structure */,
  3345.     int         /* whence1 */,
  3346.     long         /* offset1 */,
  3347.     int         /* whence2 */,
  3348.     long         /* offset2 */
  3349. #endif
  3350. );
  3351.  
  3352. extern void PEXRenderNetwork(
  3353. #if NeedFunctionPrototypes
  3354.     Display *        /* display */,
  3355.     Drawable         /* drawable */,
  3356.     PEXRenderer         /* renderer */,
  3357.     PEXStructure         /* structure */
  3358. #endif
  3359. );
  3360.  
  3361. extern void PEXRestoreModelClipVolume(
  3362. #if NeedFunctionPrototypes
  3363.     Display *        /* display */,
  3364.     XID         /* resource_id */,
  3365.     PEXOCRequestType         /* req_type */
  3366. #endif
  3367. );
  3368.  
  3369. extern int PEXRotate(
  3370. #if NeedFunctionPrototypes
  3371.     int         /* axis */,
  3372.     double         /* angle */,
  3373.     PEXMatrix         /* matrix_return */
  3374. #endif
  3375. );
  3376.  
  3377. extern void PEXRotate2D(
  3378. #if NeedFunctionPrototypes
  3379.     double         /* angle */,
  3380.     PEXMatrix3x3         /* matrix_return */
  3381. #endif
  3382. );
  3383.  
  3384. extern int PEXRotateGeneral(
  3385. #if NeedFunctionPrototypes
  3386.     PEXCoord *        /* point1 */,
  3387.     PEXCoord *        /* point2 */,
  3388.     double         /* angle */,
  3389.     PEXMatrix         /* matrix_return */
  3390. #endif
  3391. );
  3392.  
  3393. extern void PEXScale(
  3394. #if NeedFunctionPrototypes
  3395.     PEXVector *        /* scale_vector */,
  3396.     PEXMatrix         /* matrix_return */
  3397. #endif
  3398. );
  3399.  
  3400. extern void PEXScale2D(
  3401. #if NeedFunctionPrototypes
  3402.     PEXVector2D *        /* scale_vector */,
  3403.     PEXMatrix3x3         /* matrix_return */
  3404. #endif
  3405. );
  3406.  
  3407. extern Status PEXSearchNetwork(
  3408. #if NeedFunctionPrototypes
  3409.     Display *        /* display */,
  3410.     PEXSearchContext         /* context */,
  3411.     PEXStructurePath **        /* path_return */
  3412. #endif
  3413. );
  3414.  
  3415. extern void PEXSendOCs(
  3416. #if NeedFunctionPrototypes
  3417.     Display *        /* display */,
  3418.     XID         /* resource_id */,
  3419.     PEXOCRequestType         /* req_type */,
  3420.     int         /* float_format */,
  3421.     unsigned long         /* oc_count */,
  3422.     unsigned int         /* length */,
  3423.     char *        /* encoded_ocs */
  3424. #endif
  3425. );
  3426.  
  3427. extern void PEXSetATextAlignment(
  3428. #if NeedFunctionPrototypes
  3429.     Display *        /* display */,
  3430.     XID         /* resource_id */,
  3431.     PEXOCRequestType         /* req_type */,
  3432.     int         /* halignment */,
  3433.     int         /* valignment */
  3434. #endif
  3435. );
  3436.  
  3437. extern void PEXSetATextHeight(
  3438. #if NeedFunctionPrototypes
  3439.     Display *        /* display */,
  3440.     XID         /* resource_id */,
  3441.     PEXOCRequestType         /* req_type */,
  3442.     double         /* height */
  3443. #endif
  3444. );
  3445.  
  3446. extern void PEXSetATextPath(
  3447. #if NeedFunctionPrototypes
  3448.     Display *        /* display */,
  3449.     XID         /* resource_id */,
  3450.     PEXOCRequestType         /* req_type */,
  3451.     int         /* path */
  3452. #endif
  3453. );
  3454.  
  3455. extern void PEXSetATextStyle(
  3456. #if NeedFunctionPrototypes
  3457.     Display *        /* display */,
  3458.     XID         /* resource_id */,
  3459.     PEXOCRequestType         /* req_type */,
  3460.     int         /* style */
  3461. #endif
  3462. );
  3463.  
  3464. extern void PEXSetATextUpVector(
  3465. #if NeedFunctionPrototypes
  3466.     Display *        /* display */,
  3467.     XID         /* resource_id */,
  3468.     PEXOCRequestType         /* req_type */,
  3469.     PEXVector2D *        /* vector */
  3470. #endif
  3471. );
  3472.  
  3473. extern void PEXSetBFInteriorStyle(
  3474. #if NeedFunctionPrototypes
  3475.     Display *        /* display */,
  3476.     XID         /* resource_id */,
  3477.     PEXOCRequestType         /* req_type */,
  3478.     int         /* style */
  3479. #endif
  3480. );
  3481.  
  3482. extern void PEXSetBFInteriorStyleIndex(
  3483. #if NeedFunctionPrototypes
  3484.     Display *        /* display */,
  3485.     XID         /* resource_id */,
  3486.     PEXOCRequestType         /* req_type */,
  3487.     int         /* index */
  3488. #endif
  3489. );
  3490.  
  3491. extern void PEXSetBFReflectionAttributes(
  3492. #if NeedFunctionPrototypes
  3493.     Display *        /* display */,
  3494.     XID         /* resource_id */,
  3495.     PEXOCRequestType         /* req_type */,
  3496.     PEXReflectionAttributes *        /* attributes */
  3497. #endif
  3498. );
  3499.  
  3500. extern void PEXSetBFReflectionModel(
  3501. #if NeedFunctionPrototypes
  3502.     Display *        /* display */,
  3503.     XID         /* resource_id */,
  3504.     PEXOCRequestType         /* req_type */,
  3505.     int         /* model */
  3506. #endif
  3507. );
  3508.  
  3509. extern void PEXSetBFSurfaceColor(
  3510. #if NeedFunctionPrototypes
  3511.     Display *        /* display */,
  3512.     XID         /* resource_id */,
  3513.     PEXOCRequestType         /* req_type */,
  3514.     int         /* color_type */,
  3515.     PEXColor *        /* color */
  3516. #endif
  3517. );
  3518.  
  3519. extern void PEXSetBFSurfaceColorIndex(
  3520. #if NeedFunctionPrototypes
  3521.     Display *        /* display */,
  3522.     XID         /* resource_id */,
  3523.     PEXOCRequestType         /* req_type */,
  3524.     unsigned int         /* index */
  3525. #endif
  3526. );
  3527.  
  3528. extern void PEXSetBFSurfaceInterpMethod(
  3529. #if NeedFunctionPrototypes
  3530.     Display *        /* display */,
  3531.     XID         /* resource_id */,
  3532.     PEXOCRequestType         /* req_type */,
  3533.     int         /* method */
  3534. #endif
  3535. );
  3536.  
  3537. extern void PEXSetCharExpansion(
  3538. #if NeedFunctionPrototypes
  3539.     Display *        /* display */,
  3540.     XID         /* resource_id */,
  3541.     PEXOCRequestType         /* req_type */,
  3542.     double         /* expansion */
  3543. #endif
  3544. );
  3545.  
  3546. extern void PEXSetCharHeight(
  3547. #if NeedFunctionPrototypes
  3548.     Display *        /* display */,
  3549.     XID         /* resource_id */,
  3550.     PEXOCRequestType         /* req_type */,
  3551.     double         /* height */
  3552. #endif
  3553. );
  3554.  
  3555. extern void PEXSetCharSpacing(
  3556. #if NeedFunctionPrototypes
  3557.     Display *        /* display */,
  3558.     XID         /* resource_id */,
  3559.     PEXOCRequestType         /* req_type */,
  3560.     double         /* spacing */
  3561. #endif
  3562. );
  3563.  
  3564. extern void PEXSetCharUpVector(
  3565. #if NeedFunctionPrototypes
  3566.     Display *        /* display */,
  3567.     XID         /* resource_id */,
  3568.     PEXOCRequestType         /* req_type */,
  3569.     PEXVector2D *        /* vector */
  3570. #endif
  3571. );
  3572.  
  3573. extern void PEXSetColorApproxIndex(
  3574. #if NeedFunctionPrototypes
  3575.     Display *        /* display */,
  3576.     XID         /* resource_id */,
  3577.     PEXOCRequestType         /* req_type */,
  3578.     unsigned int         /* index */
  3579. #endif
  3580. );
  3581.  
  3582. extern void PEXSetCurveApprox(
  3583. #if NeedFunctionPrototypes
  3584.     Display *        /* display */,
  3585.     XID         /* resource_id */,
  3586.     PEXOCRequestType         /* req_type */,
  3587.     int         /* method */,
  3588.     double         /* tolerance */
  3589. #endif
  3590. );
  3591.  
  3592. extern void PEXSetDepthCueIndex(
  3593. #if NeedFunctionPrototypes
  3594.     Display *        /* display */,
  3595.     XID         /* resource_id */,
  3596.     PEXOCRequestType         /* req_type */,
  3597.     unsigned int         /* index */
  3598. #endif
  3599. );
  3600.  
  3601. extern void PEXSetEchoColor(
  3602. #if NeedFunctionPrototypes
  3603.     Display *        /* display */,
  3604.     PEXRenderer         /* renderer */,
  3605.     int         /* color_type */,
  3606.     PEXColor *        /* color */
  3607. #endif
  3608. );
  3609.  
  3610. extern void PEXSetEdgeBundleIndex(
  3611. #if NeedFunctionPrototypes
  3612.     Display *        /* display */,
  3613.     XID         /* resource_id */,
  3614.     PEXOCRequestType         /* req_type */,
  3615.     unsigned int         /* index */
  3616. #endif
  3617. );
  3618.  
  3619. extern void PEXSetEditingMode(
  3620. #if NeedFunctionPrototypes
  3621.     Display *        /* display */,
  3622.     PEXStructure         /* structure */,
  3623.     int         /* mode */
  3624. #endif
  3625. );
  3626.  
  3627. extern void PEXSetElementPtr(
  3628. #if NeedFunctionPrototypes
  3629.     Display *        /* display */,
  3630.     PEXStructure         /* structure */,
  3631.     int         /* whence */,
  3632.     long         /* offset */
  3633. #endif
  3634. );
  3635.  
  3636. extern void PEXSetElementPtrAtLabel(
  3637. #if NeedFunctionPrototypes
  3638.     Display *        /* display */,
  3639.     PEXStructure         /* structure */,
  3640.     long         /* label */,
  3641.     long         /* offset */
  3642. #endif
  3643. );
  3644.  
  3645. extern void PEXSetFacetCullingMode(
  3646. #if NeedFunctionPrototypes
  3647.     Display *        /* display */,
  3648.     XID         /* resource_id */,
  3649.     PEXOCRequestType         /* req_type */,
  3650.     int         /* mode */
  3651. #endif
  3652. );
  3653.  
  3654. extern void PEXSetFacetDistinguishFlag(
  3655. #if NeedFunctionPrototypes
  3656.     Display *        /* display */,
  3657.     XID         /* resource_id */,
  3658.     PEXOCRequestType         /* req_type */,
  3659.     int         /* flag */
  3660. #endif
  3661. );
  3662.  
  3663. extern void PEXSetGlobalTransform(
  3664. #if NeedFunctionPrototypes
  3665.     Display *        /* display */,
  3666.     XID         /* resource_id */,
  3667.     PEXOCRequestType         /* req_type */,
  3668.     PEXMatrix         /* transform */
  3669. #endif
  3670. );
  3671.  
  3672. extern void PEXSetGlobalTransform2D(
  3673. #if NeedFunctionPrototypes
  3674.     Display *        /* display */,
  3675.     XID         /* resource_id */,
  3676.     PEXOCRequestType         /* req_type */,
  3677.     PEXMatrix3x3         /* transform */
  3678. #endif
  3679. );
  3680.  
  3681. extern void PEXSetHLHSRID(
  3682. #if NeedFunctionPrototypes
  3683.     Display *        /* display */,
  3684.     XID         /* resource_id */,
  3685.     PEXOCRequestType         /* req_type */,
  3686.     unsigned long         /* hlhsr_id */
  3687. #endif
  3688. );
  3689.  
  3690. extern void PEXSetIndividualASF(
  3691. #if NeedFunctionPrototypes
  3692.     Display *        /* display */,
  3693.     XID         /* resource_id */,
  3694.     PEXOCRequestType         /* req_type */,
  3695.     unsigned long         /* attribute */,
  3696.     int         /* asf */
  3697. #endif
  3698. );
  3699.  
  3700. extern void PEXSetInteriorBundleIndex(
  3701. #if NeedFunctionPrototypes
  3702.     Display *        /* display */,
  3703.     XID         /* resource_id */,
  3704.     PEXOCRequestType         /* req_type */,
  3705.     unsigned int         /* index */
  3706. #endif
  3707. );
  3708.  
  3709. extern void PEXSetInteriorStyle(
  3710. #if NeedFunctionPrototypes
  3711.     Display *        /* display */,
  3712.     XID         /* resource_id */,
  3713.     PEXOCRequestType         /* req_type */,
  3714.     int         /* style */
  3715. #endif
  3716. );
  3717.  
  3718. extern void PEXSetInteriorStyleIndex(
  3719. #if NeedFunctionPrototypes
  3720.     Display *        /* display */,
  3721.     XID         /* resource_id */,
  3722.     PEXOCRequestType         /* req_type */,
  3723.     int         /* index */
  3724. #endif
  3725. );
  3726.  
  3727. extern void PEXSetLightSourceState(
  3728. #if NeedFunctionPrototypes
  3729.     Display *        /* display */,
  3730.     XID         /* resource_id */,
  3731.     PEXOCRequestType         /* req_type */,
  3732.     unsigned int         /* enable_count */,
  3733.     PEXTableIndex *        /* enable */,
  3734.     unsigned int         /* disable_count */,
  3735.     PEXTableIndex *        /* disable */
  3736. #endif
  3737. );
  3738.  
  3739. extern void PEXSetLineBundleIndex(
  3740. #if NeedFunctionPrototypes
  3741.     Display *        /* display */,
  3742.     XID         /* resource_id */,
  3743.     PEXOCRequestType         /* req_type */,
  3744.     unsigned int         /* index */
  3745. #endif
  3746. );
  3747.  
  3748. extern void PEXSetLineColor(
  3749. #if NeedFunctionPrototypes
  3750.     Display *        /* display */,
  3751.     XID         /* resource_id */,
  3752.     PEXOCRequestType         /* req_type */,
  3753.     int         /* color_type */,
  3754.     PEXColor *        /* color */
  3755. #endif
  3756. );
  3757.  
  3758. extern void PEXSetLineColorIndex(
  3759. #if NeedFunctionPrototypes
  3760.     Display *        /* display */,
  3761.     XID         /* resource_id */,
  3762.     PEXOCRequestType         /* req_type */,
  3763.     unsigned int         /* index */
  3764. #endif
  3765. );
  3766.  
  3767. extern void PEXSetLineType(
  3768. #if NeedFunctionPrototypes
  3769.     Display *        /* display */,
  3770.     XID         /* resource_id */,
  3771.     PEXOCRequestType         /* req_type */,
  3772.     int         /* line_type */
  3773. #endif
  3774. );
  3775.  
  3776. extern void PEXSetLineWidth(
  3777. #if NeedFunctionPrototypes
  3778.     Display *        /* display */,
  3779.     XID         /* resource_id */,
  3780.     PEXOCRequestType         /* req_type */,
  3781.     double         /* width */
  3782. #endif
  3783. );
  3784.  
  3785. extern void PEXSetLocalTransform(
  3786. #if NeedFunctionPrototypes
  3787.     Display *        /* display */,
  3788.     XID         /* resource_id */,
  3789.     PEXOCRequestType         /* req_type */,
  3790.     int         /* composition */,
  3791.     PEXMatrix         /* transform */
  3792. #endif
  3793. );
  3794.  
  3795. extern void PEXSetLocalTransform2D(
  3796. #if NeedFunctionPrototypes
  3797.     Display *        /* display */,
  3798.     XID         /* resource_id */,
  3799.     PEXOCRequestType         /* req_type */,
  3800.     int         /* composition */,
  3801.     PEXMatrix3x3         /* transform */
  3802. #endif
  3803. );
  3804.  
  3805. extern void PEXSetMarkerBundleIndex(
  3806. #if NeedFunctionPrototypes
  3807.     Display *        /* display */,
  3808.     XID         /* resource_id */,
  3809.     PEXOCRequestType         /* req_type */,
  3810.     unsigned int         /* index */
  3811. #endif
  3812. );
  3813.  
  3814. extern void PEXSetMarkerColor(
  3815. #if NeedFunctionPrototypes
  3816.     Display *        /* display */,
  3817.     XID         /* resource_id */,
  3818.     PEXOCRequestType         /* req_type */,
  3819.     int         /* color_type */,
  3820.     PEXColor *        /* color */
  3821. #endif
  3822. );
  3823.  
  3824. extern void PEXSetMarkerColorIndex(
  3825. #if NeedFunctionPrototypes
  3826.     Display *        /* display */,
  3827.     XID         /* resource_id */,
  3828.     PEXOCRequestType         /* req_type */,
  3829.     unsigned int         /* index */
  3830. #endif
  3831. );
  3832.  
  3833. extern void PEXSetMarkerScale(
  3834. #if NeedFunctionPrototypes
  3835.     Display *        /* display */,
  3836.     XID         /* resource_id */,
  3837.     PEXOCRequestType         /* req_type */,
  3838.     double         /* scale */
  3839. #endif
  3840. );
  3841.  
  3842. extern void PEXSetMarkerType(
  3843. #if NeedFunctionPrototypes
  3844.     Display *        /* display */,
  3845.     XID         /* resource_id */,
  3846.     PEXOCRequestType         /* req_type */,
  3847.     int         /* marker_type */
  3848. #endif
  3849. );
  3850.  
  3851. extern void PEXSetModelClipFlag(
  3852. #if NeedFunctionPrototypes
  3853.     Display *        /* display */,
  3854.     XID         /* resource_id */,
  3855.     PEXOCRequestType         /* req_type */,
  3856.     int         /* flag */
  3857. #endif
  3858. );
  3859.  
  3860. extern void PEXSetModelClipVolume(
  3861. #if NeedFunctionPrototypes
  3862.     Display *        /* display */,
  3863.     XID         /* resource_id */,
  3864.     PEXOCRequestType         /* req_type */,
  3865.     int         /* op */,
  3866.     unsigned int         /* count */,
  3867.     PEXHalfSpace *        /* half_spaces */
  3868. #endif
  3869. );
  3870.  
  3871. extern void PEXSetModelClipVolume2D(
  3872. #if NeedFunctionPrototypes
  3873.     Display *        /* display */,
  3874.     XID         /* resource_id */,
  3875.     PEXOCRequestType         /* req_type */,
  3876.     int         /* op */,
  3877.     unsigned int         /* count */,
  3878.     PEXHalfSpace2D *        /* half_spaces */
  3879. #endif
  3880. );
  3881.  
  3882. extern void PEXSetOfFillAreaSets(
  3883. #if NeedFunctionPrototypes
  3884.     Display *        /* display */,
  3885.     XID         /* resource_id */,
  3886.     PEXOCRequestType         /* req_type */,
  3887.     int         /* shape_hint */,
  3888.     unsigned int         /* facet_attributes */,
  3889.     unsigned int         /* vertex_attributes */,
  3890.     unsigned int         /* edge_attributes */,
  3891.     int         /* contour_hint */,
  3892.     int         /* contours_all_one */,
  3893.     int         /* color_type */,
  3894.     unsigned int         /* set_count */,
  3895.     PEXArrayOfFacetData         /* facet_data */,
  3896.     unsigned int         /* vertex_count */,
  3897.     PEXArrayOfVertex         /* vertices */,
  3898.     unsigned int         /* index_count */,
  3899.     PEXSwitch *        /* edge_flags */,
  3900.     PEXConnectivityData *        /* connectivity */
  3901. #endif
  3902. );
  3903.  
  3904. extern void PEXSetParaSurfCharacteristics(
  3905. #if NeedFunctionPrototypes
  3906.     Display *        /* display */,
  3907.     XID         /* resource_id */,
  3908.     PEXOCRequestType         /* req_type */,
  3909.     int         /* psc_type */,
  3910.     PEXPSCData *        /* characteristics */
  3911. #endif
  3912. );
  3913.  
  3914. extern void PEXSetPatternAttributes(
  3915. #if NeedFunctionPrototypes
  3916.     Display *        /* display */,
  3917.     XID         /* resource_id */,
  3918.     PEXOCRequestType         /* req_type */,
  3919.     PEXCoord *        /* ref_point */,
  3920.     PEXVector *        /* vector1 */,
  3921.     PEXVector *        /* vector2 */
  3922. #endif
  3923. );
  3924.  
  3925. extern void PEXSetPatternAttributes2D(
  3926. #if NeedFunctionPrototypes
  3927.     Display *        /* display */,
  3928.     XID         /* resource_id */,
  3929.     PEXOCRequestType         /* req_type */,
  3930.     PEXCoord2D *        /* ref_point */
  3931. #endif
  3932. );
  3933.  
  3934. extern void PEXSetPatternSize(
  3935. #if NeedFunctionPrototypes
  3936.     Display *        /* display */,
  3937.     XID         /* resource_id */,
  3938.     PEXOCRequestType         /* req_type */,
  3939.     double         /* width */,
  3940.     double         /* height */
  3941. #endif
  3942. );
  3943.  
  3944. extern void PEXSetPickID(
  3945. #if NeedFunctionPrototypes
  3946.     Display *        /* display */,
  3947.     XID         /* resource_id */,
  3948.     PEXOCRequestType         /* req_type */,
  3949.     unsigned long         /* pick_id */
  3950. #endif
  3951. );
  3952.  
  3953. extern void PEXSetPolylineInterpMethod(
  3954. #if NeedFunctionPrototypes
  3955.     Display *        /* display */,
  3956.     XID         /* resource_id */,
  3957.     PEXOCRequestType         /* req_type */,
  3958.     int         /* method */
  3959. #endif
  3960. );
  3961.  
  3962. extern void PEXSetReflectionAttributes(
  3963. #if NeedFunctionPrototypes
  3964.     Display *        /* display */,
  3965.     XID         /* resource_id */,
  3966.     PEXOCRequestType         /* req_type */,
  3967.     PEXReflectionAttributes *        /* attributes */
  3968. #endif
  3969. );
  3970.  
  3971. extern void PEXSetReflectionModel(
  3972. #if NeedFunctionPrototypes
  3973.     Display *        /* display */,
  3974.     XID         /* resource_id */,
  3975.     PEXOCRequestType         /* req_type */,
  3976.     int         /* model */
  3977. #endif
  3978. );
  3979.  
  3980. extern void PEXSetRenderingColorModel(
  3981. #if NeedFunctionPrototypes
  3982.     Display *        /* display */,
  3983.     XID         /* resource_id */,
  3984.     PEXOCRequestType         /* req_type */,
  3985.     int         /* model */
  3986. #endif
  3987. );
  3988.  
  3989. extern void PEXSetSurfaceApprox(
  3990. #if NeedFunctionPrototypes
  3991.     Display *        /* display */,
  3992.     XID         /* resource_id */,
  3993.     PEXOCRequestType         /* req_type */,
  3994.     int         /* method */,
  3995.     double         /* utolerance */,
  3996.     double         /* vtolerance */
  3997. #endif
  3998. );
  3999.  
  4000. extern void PEXSetSurfaceColor(
  4001. #if NeedFunctionPrototypes
  4002.     Display *        /* display */,
  4003.     XID         /* resource_id */,
  4004.     PEXOCRequestType         /* req_type */,
  4005.     int         /* color_type */,
  4006.     PEXColor *        /* color */
  4007. #endif
  4008. );
  4009.  
  4010. extern void PEXSetSurfaceColorIndex(
  4011. #if NeedFunctionPrototypes
  4012.     Display *        /* display */,
  4013.     XID         /* resource_id */,
  4014.     PEXOCRequestType         /* req_type */,
  4015.     unsigned int         /* index */
  4016. #endif
  4017. );
  4018.  
  4019. extern void PEXSetSurfaceEdgeColor(
  4020. #if NeedFunctionPrototypes
  4021.     Display *        /* display */,
  4022.     XID         /* resource_id */,
  4023.     PEXOCRequestType         /* req_type */,
  4024.     int         /* color_type */,
  4025.     PEXColor *        /* color */
  4026. #endif
  4027. );
  4028.  
  4029. extern void PEXSetSurfaceEdgeColorIndex(
  4030. #if NeedFunctionPrototypes
  4031.     Display *        /* display */,
  4032.     XID         /* resource_id */,
  4033.     PEXOCRequestType         /* req_type */,
  4034.     unsigned int         /* index */
  4035. #endif
  4036. );
  4037.  
  4038. extern void PEXSetSurfaceEdgeFlag(
  4039. #if NeedFunctionPrototypes
  4040.     Display *        /* display */,
  4041.     XID         /* resource_id */,
  4042.     PEXOCRequestType         /* req_type */,
  4043.     int         /* flag */
  4044. #endif
  4045. );
  4046.  
  4047. extern void PEXSetSurfaceEdgeType(
  4048. #if NeedFunctionPrototypes
  4049.     Display *        /* display */,
  4050.     XID         /* resource_id */,
  4051.     PEXOCRequestType         /* req_type */,
  4052.     int         /* edge_type */
  4053. #endif
  4054. );
  4055.  
  4056. extern void PEXSetSurfaceEdgeWidth(
  4057. #if NeedFunctionPrototypes
  4058.     Display *        /* display */,
  4059.     XID         /* resource_id */,
  4060.     PEXOCRequestType         /* req_type */,
  4061.     double         /* width */
  4062. #endif
  4063. );
  4064.  
  4065. extern void PEXSetSurfaceInterpMethod(
  4066. #if NeedFunctionPrototypes
  4067.     Display *        /* display */,
  4068.     XID         /* resource_id */,
  4069.     PEXOCRequestType         /* req_type */,
  4070.     int         /* method */
  4071. #endif
  4072. );
  4073.  
  4074. extern void PEXSetTableEntries(
  4075. #if NeedFunctionPrototypes
  4076.     Display *        /* display */,
  4077.     PEXLookupTable         /* table */,
  4078.     unsigned int         /* start */,
  4079.     unsigned int         /* count */,
  4080.     int         /* table_type */,
  4081.     PEXPointer         /* entries */
  4082. #endif
  4083. );
  4084.  
  4085. extern void PEXSetTextAlignment(
  4086. #if NeedFunctionPrototypes
  4087.     Display *        /* display */,
  4088.     XID         /* resource_id */,
  4089.     PEXOCRequestType         /* req_type */,
  4090.     int         /* halignment */,
  4091.     int         /* valignment */
  4092. #endif
  4093. );
  4094.  
  4095. extern void PEXSetTextBundleIndex(
  4096. #if NeedFunctionPrototypes
  4097.     Display *        /* display */,
  4098.     XID         /* resource_id */,
  4099.     PEXOCRequestType         /* req_type */,
  4100.     unsigned int         /* index */
  4101. #endif
  4102. );
  4103.  
  4104. extern void PEXSetTextColor(
  4105. #if NeedFunctionPrototypes
  4106.     Display *        /* display */,
  4107.     XID         /* resource_id */,
  4108.     PEXOCRequestType         /* req_type */,
  4109.     int         /* color_type */,
  4110.     PEXColor *        /* color */
  4111. #endif
  4112. );
  4113.  
  4114. extern void PEXSetTextColorIndex(
  4115. #if NeedFunctionPrototypes
  4116.     Display *        /* display */,
  4117.     XID         /* resource_id */,
  4118.     PEXOCRequestType         /* req_type */,
  4119.     unsigned int         /* index */
  4120. #endif
  4121. );
  4122.  
  4123. extern void PEXSetTextFontIndex(
  4124. #if NeedFunctionPrototypes
  4125.     Display *        /* display */,
  4126.     XID         /* resource_id */,
  4127.     PEXOCRequestType         /* req_type */,
  4128.     unsigned int         /* index */
  4129. #endif
  4130. );
  4131.  
  4132. extern void PEXSetTextPath(
  4133. #if NeedFunctionPrototypes
  4134.     Display *        /* display */,
  4135.     XID         /* resource_id */,
  4136.     PEXOCRequestType         /* req_type */,
  4137.     int         /* path */
  4138. #endif
  4139. );
  4140.  
  4141. extern void PEXSetTextPrecision(
  4142. #if NeedFunctionPrototypes
  4143.     Display *        /* display */,
  4144.     XID         /* resource_id */,
  4145.     PEXOCRequestType         /* req_type */,
  4146.     int         /* precision */
  4147. #endif
  4148. );
  4149.  
  4150. extern void PEXSetViewIndex(
  4151. #if NeedFunctionPrototypes
  4152.     Display *        /* display */,
  4153.     XID         /* resource_id */,
  4154.     PEXOCRequestType         /* req_type */,
  4155.     unsigned int         /* index */
  4156. #endif
  4157. );
  4158.  
  4159. extern void PEXSetWorkstationBufferMode(
  4160. #if NeedFunctionPrototypes
  4161.     Display *        /* display */,
  4162.     PEXWorkstation         /* workstation */,
  4163.     int         /* buffer_mode */
  4164. #endif
  4165. );
  4166.  
  4167. extern void PEXSetWorkstationDisplayUpdateMode(
  4168. #if NeedFunctionPrototypes
  4169.     Display *        /* display */,
  4170.     PEXWorkstation         /* workstation */,
  4171.     int         /* update_mode */
  4172. #endif
  4173. );
  4174.  
  4175. extern void PEXSetWorkstationHLHSRMode(
  4176. #if NeedFunctionPrototypes
  4177.     Display *        /* display */,
  4178.     PEXWorkstation         /* workstation */,
  4179.     int         /* hlhsr_mode */
  4180. #endif
  4181. );
  4182.  
  4183. extern void PEXSetWorkstationViewPriority(
  4184. #if NeedFunctionPrototypes
  4185.     Display *        /* display */,
  4186.     PEXWorkstation         /* workstation */,
  4187.     unsigned int         /* index1 */,
  4188.     unsigned int         /* index2 */,
  4189.     int         /* priority */
  4190. #endif
  4191. );
  4192.  
  4193. extern void PEXSetWorkstationViewRep(
  4194. #if NeedFunctionPrototypes
  4195.     Display *        /* display */,
  4196.     PEXWorkstation         /* workstation */,
  4197.     unsigned int         /* view_index */,
  4198.     PEXViewEntry *        /* values */
  4199. #endif
  4200. );
  4201.  
  4202. extern void PEXSetWorkstationViewport(
  4203. #if NeedFunctionPrototypes
  4204.     Display *        /* display */,
  4205.     PEXWorkstation         /* workstation */,
  4206.     PEXViewport *        /* viewport */
  4207. #endif
  4208. );
  4209.  
  4210. extern void PEXSetWorkstationWindow(
  4211. #if NeedFunctionPrototypes
  4212.     Display *        /* display */,
  4213.     PEXWorkstation         /* workstation */,
  4214.     PEXNPCSubVolume *        /* workstation_window */
  4215. #endif
  4216. );
  4217.  
  4218. extern Status PEXStartOCs(
  4219. #if NeedFunctionPrototypes
  4220.     Display *        /* display */,
  4221.     XID         /* resource_id */,
  4222.     PEXOCRequestType         /* req_type */,
  4223.     int         /* float_format */,
  4224.     int         /* oc_count */,
  4225.     int         /* word_count */
  4226. #endif
  4227. );
  4228.  
  4229. extern void PEXText(
  4230. #if NeedFunctionPrototypes
  4231.     Display *        /* display */,
  4232.     XID         /* resource_id */,
  4233.     PEXOCRequestType         /* req_type */,
  4234.     PEXCoord *        /* origin */,
  4235.     PEXVector *        /* vector1 */,
  4236.     PEXVector *        /* vector2 */,
  4237.     int         /* length */,
  4238.     char *        /* string */
  4239. #endif
  4240. );
  4241.  
  4242. extern void PEXText2D(
  4243. #if NeedFunctionPrototypes
  4244.     Display *        /* display */,
  4245.     XID         /* resource_id */,
  4246.     PEXOCRequestType         /* req_type */,
  4247.     PEXCoord2D *        /* origin */,
  4248.     int         /* length */,
  4249.     char *        /* string */
  4250. #endif
  4251. );
  4252.  
  4253. extern int PEXTransformPoints(
  4254. #if NeedFunctionPrototypes
  4255.     PEXMatrix         /* transform */,
  4256.     int         /* count */,
  4257.     PEXCoord *        /* points */,
  4258.     PEXCoord *        /* points_return */
  4259. #endif
  4260. );
  4261.  
  4262. extern int PEXTransformPoints2D(
  4263. #if NeedFunctionPrototypes
  4264.     PEXMatrix3x3         /* transform */,
  4265.     int         /* count */,
  4266.     PEXCoord2D *        /* points */,
  4267.     PEXCoord2D *        /* points_return */
  4268. #endif
  4269. );
  4270.  
  4271. extern void PEXTransformPoints2DH(
  4272. #if NeedFunctionPrototypes
  4273.     PEXMatrix3x3         /* transform */,
  4274.     int         /* count */,
  4275.     PEXCoord *        /* points */,
  4276.     PEXCoord *        /* points_return */
  4277. #endif
  4278. );
  4279.  
  4280. extern void PEXTransformPoints4D(
  4281. #if NeedFunctionPrototypes
  4282.     PEXMatrix         /* transform */,
  4283.     int         /* count */,
  4284.     PEXCoord4D *        /* points */,
  4285.     PEXCoord4D *        /* points_return */
  4286. #endif
  4287. );
  4288.  
  4289. extern void PEXTransformVectors(
  4290. #if NeedFunctionPrototypes
  4291.     PEXMatrix         /* transform */,
  4292.     int         /* count */,
  4293.     PEXVector *        /* vectors */,
  4294.     PEXVector *        /* vectors_return */
  4295. #endif
  4296. );
  4297.  
  4298. extern void PEXTransformVectors2D(
  4299. #if NeedFunctionPrototypes
  4300.     PEXMatrix3x3         /* transform */,
  4301.     int         /* count */,
  4302.     PEXVector2D *        /* vectors */,
  4303.     PEXVector2D *        /* vectors_return */
  4304. #endif
  4305. );
  4306.  
  4307. extern void PEXTranslate(
  4308. #if NeedFunctionPrototypes
  4309.     PEXVector *        /* trans_vector */,
  4310.     PEXMatrix         /* matrix_return */
  4311. #endif
  4312. );
  4313.  
  4314. extern void PEXTranslate2D(
  4315. #if NeedFunctionPrototypes
  4316.     PEXVector2D *        /* trans_vector */,
  4317.     PEXMatrix3x3         /* matrix_return */
  4318. #endif
  4319. );
  4320.  
  4321. extern void PEXTriangleStrip(
  4322. #if NeedFunctionPrototypes
  4323.     Display *        /* display */,
  4324.     XID         /* resource_id */,
  4325.     PEXOCRequestType         /* req_type */,
  4326.     unsigned int         /* facet_attributes */,
  4327.     unsigned int         /* vertex_attributes */,
  4328.     int         /* color_type */,
  4329.     PEXArrayOfFacetData         /* facet_data */,
  4330.     unsigned int         /* count */,
  4331.     PEXArrayOfVertex         /* vertices */
  4332. #endif
  4333. );
  4334.  
  4335. extern void PEXUnloadFont(
  4336. #if NeedFunctionPrototypes
  4337.     Display *        /* display */,
  4338.     PEXFont         /* font */
  4339. #endif
  4340. );
  4341.  
  4342. extern void PEXUnpostAllStructures(
  4343. #if NeedFunctionPrototypes
  4344.     Display *        /* display */,
  4345.     PEXWorkstation         /* workstation */
  4346. #endif
  4347. );
  4348.  
  4349. extern void PEXUnpostStructure(
  4350. #if NeedFunctionPrototypes
  4351.     Display *        /* display */,
  4352.     PEXWorkstation         /* workstation */,
  4353.     PEXStructure         /* structure */
  4354. #endif
  4355. );
  4356.  
  4357. extern void PEXUpdatePickMeasure(
  4358. #if NeedFunctionPrototypes
  4359.     Display *        /* display */,
  4360.     PEXPickMeasure         /* pick_measure */,
  4361.     int         /* pick_device_type */,
  4362.     PEXPickRecord *        /* pick_record */
  4363. #endif
  4364. );
  4365.  
  4366. extern void PEXUpdateWorkstation(
  4367. #if NeedFunctionPrototypes
  4368.     Display *        /* display */,
  4369.     PEXWorkstation         /* workstation */
  4370. #endif
  4371. );
  4372.  
  4373. extern int PEXViewMappingMatrix(
  4374. #if NeedFunctionPrototypes
  4375.     PEXCoord2D *        /* frame */,
  4376.     PEXNPCSubVolume *        /* viewport */,
  4377.     int         /* perspective */,
  4378.     PEXCoord *        /* prp */,
  4379.     double         /* view_plane */,
  4380.     double         /* back_plane */,
  4381.     double         /* front_plane */,
  4382.     PEXMatrix         /* matrix_return */
  4383. #endif
  4384. );
  4385.  
  4386. extern int PEXViewMappingMatrix2D(
  4387. #if NeedFunctionPrototypes
  4388.     PEXCoord2D *        /* frame */,
  4389.     PEXCoord2D *        /* viewport */,
  4390.     PEXMatrix3x3         /* matrix_return */
  4391. #endif
  4392. );
  4393.  
  4394. extern int PEXViewOrientationMatrix(
  4395. #if NeedFunctionPrototypes
  4396.     PEXCoord *        /* vrp */,
  4397.     PEXVector *        /* vpn */,
  4398.     PEXVector *        /* vup */,
  4399.     PEXMatrix         /* matrix_return */
  4400. #endif
  4401. );
  4402.  
  4403. extern int PEXViewOrientationMatrix2D(
  4404. #if NeedFunctionPrototypes
  4405.     PEXCoord2D *        /* vrp */,
  4406.     PEXVector2D *        /* vup */,
  4407.     PEXMatrix3x3         /* matrix_return */
  4408. #endif
  4409. );
  4410.  
  4411. extern int PEXXCToNPCTransform(
  4412. #if NeedFunctionPrototypes
  4413.     PEXNPCSubVolume *        /* npc_sub_volume */,
  4414.     PEXDeviceCoord *        /* viewport */,
  4415.     unsigned int         /* window_height */,
  4416.     PEXMatrix         /* transform_return */
  4417. #endif
  4418. );
  4419.  
  4420. extern int PEXXCToNPCTransform2D(
  4421. #if NeedFunctionPrototypes
  4422.     PEXNPCSubVolume *        /* npc_sub_volume */,
  4423.     PEXDeviceCoord2D *        /* viewport */,
  4424.     unsigned int         /* window_height */,
  4425.     PEXMatrix3x3         /* transform_return */
  4426. #endif
  4427. );
  4428.  
  4429. extern unsigned long PEXCountOCs(
  4430. #if NeedFunctionPrototypes
  4431.     int         /* float_format */,
  4432.     unsigned long         /* length */,
  4433.     char *        /* encoded_ocs */
  4434. #endif
  4435. );
  4436.  
  4437.  
  4438.  
  4439. #ifdef __cplusplus
  4440. }                                               /* for C++ V2.0 */
  4441. #endif
  4442.  
  4443. #endif /* _PEXLIB_H_ */
  4444.