PURPOSE
Call the finish_picture() function for the current driver. Should only be used during a "finish picture" callback.
CALLING SEQUENCE
HIC_Finish_Picture (nr, swap_buffers)
------------------------------------------------------------------ | ||
nr    | HT_Rendition    | Rendition. Passed by reference. |
swap_buffers    | HT_Boolean    | instruction to swap buffers if true and double-buffering is on |
------------------------------------------------------------------ |
PURPOSE
Creates a new geometry-specific descriptor.
CALLING SEQUENCE
HIC_New_Marker (point), returns new_marker
HIC_New_Polygon (count, point), returns new_polygon
HIC_New_Polyline (count, points), returns new_polyline
----------------------------------------------------------------------- point HT_Point Point structure. Passed by reference. new_marker HT_Marker Polyedge descriptor structure. Passed by ref erence. count int Number of points. new_polygon HT_Polygon Polygon descriptor structure. Passed by ref erence. new_polyline HT_Polyline Polyline descriptor structure. Passed by ref erence. -----------------------------------------------------------------------VARIANTS
HIC_Free_Geometry (geometry)
--------------------------------------------------------- geometry pointer A pointer to the geometry created by HIC_New_(geometry). Passed by reference.
---------------------------------------------------------
DETAILS
These routines are used to allocate and free geometry descriptor structures when using HOOPS I.M.
NOTES
Although there are separate "new" routines, the "free" routines are combined into one since each geometry structure has the type of structure embedded within it.
PURPOSE
Define, apply, and manage convex clip regions.
CALLING SEQUENCE
HIC_New_Convex_Clip_Region (nr, ncnt, npts), returns ccr.
HIC_Free_Convex_Clip_Region (nr, ccr)
HIC_Set_Convex_Clip_Region (cr)
------------------------------------------------------------------------------------------ |
||
nr |
HT_Rendition |
Rendition created with HIC_New_Rendition. |
ncnt |
integer |
Number of points in npts. |
npts |
point vector |
Vector of X-Y-Z triplets for the coordinates of the control points. |
ccr |
HT_Convex_Clip_Region |
Pointer to an HT_Convex_Clip_Region object. |
------------------------------------------------------------------------------------------ |
DETAILS
PURPOSE
Creates a new tristrip-specific edge descriptor.
CALLING SEQUENCE
HIC_New_Polyedge (old_polyedge), returns new_polyedge
-------------------------------------------------------------------------- new_polyedge HT_Polyedge Polyedge descriptor structure. Returned to the caller. Passed by reference. old_polyedge HT_Polyedge Polyedge descriptor structure. Passed by ref erence. --------------------------------------------------------------------------VARIANTS
HIC_Free_Polyedge (geometry)
--------------------------------------------------------- geometry pointer A pointer to the polyedge created by HIC_New_Polyedge. Passed by reference. ---------------------------------------------------------
DETAILS
In classic HOOPS, mesh and shell data are inserted with HC_Insert_Mesh and HC_Insert_Shell respectively. Since meshes and shells in HOOPS can have attributes individually set on the faces, edges, and markers (located at the vertices), HOOPS decomposes meshes and shells into 3 drawing primitives: tristrips for the faces, polyedges for the edges, and polymarkers for the markers.
When the old_polyedge is null, the returned structures for HIC_New_Polyedge are initialized so that initial data are equivalent to an empty polyedge. Otherwise HOOPS copies old_polyedge values to the new_polyedge.
NOTES
To assign values for each item of the structure, you need to call: HIC_Set_Polyedge_... Once these values are assigned, you can then draw the tristrip edges by calling HIC_Draw_3D_Polyedge.
PURPOSE
Creates a new tristrip-specific polymarker descriptor.
CALLING SEQUENCE
HIC_New_Polymarker (old_polymarker), returns new_polymarker
-------------------------------------------------------------------------- new_polymarker HT_Polymarker Polymarker descriptor structure. Returned to the caller. Passed by reference. old_polymarker HT_Polymarker Polymarker descriptor structure. Passed by reference. --------------------------------------------------------------------------VARIANTS
HIC_Free_Polymarker (geometry)
----------------------------------------------------------- geometry pointer A pointer to the polymarker created by HIC_New_Polymarker. Passed by reference. -----------------------------------------------------------
DETAILS
In classic HOOPS, mesh and shell data are inserted with HC_Insert_Mesh and HC_Insert_Shell respectively. Since meshes and shells in HOOPS can have attributes individually set on the faces, edges, and markers (located at the vertices), HOOPS decomposes meshes and shells into 3 drawing primitives: tristrips for the faces, polyedges for the edges, and polymarkers for the markers.
When the old_polymarker is null, the returned structures for HIC_New_Polymarker are initialized so that initial data are equivalent to an empty polymarker. Otherwise HOOPS copies old_polymarker values to the new_polymarker.
NOTES
To assign values for each item of the structure, you need to call: HIC_Set_Polymarker_... Once these values are assigned, you can then draw the tristrip markers by calling HIC_Draw_3D_Polymarker.
PURPOSE
Creates a new copy of a given rendition.
CALLING SEQUENCE
HIC_New_Rendition (nr), returns new_rend
------------------------------------------------------------ nr HT_Rendition Rendition. Passed by reference. new_rend HT_Rendition New copy of nr. Passed by reference. ------------------------------------------------------------VARIANTS
HIC_Free_Rendition (new_rend)
----------------------------------------------------------------- new_rend HT_Rendition A rendition created by HIC_New_Rendition. Passed by reference. -----------------------------------------------------------------
DETAILS
HIC_New_Rendition creates a new copy of the rendition you pass it. If you want to change some of the attribute values in the rendition passed to your callback functions before passing it on to an HIC_... function, you must create a new copy of it with HIC_New_Rendition and change the attribute values in the copy with HIC_Set_(attribute) calls. You must not attempt to pass to an HIC_Set_(attribute) function the actual rendition passed to your callback.
HIC_Free_Rendition destroys the rendition and frees the memory allocated for it. You should eventually use it on any rendition you create with HIC_New_Rendition, but never on the rendition passed to your callback function.
PURPOSE
Creates a new tristrip-specific face descriptor.
CALLING SEQUENCE
HIC_New_Tristrip (old_tristrip), returns new_tristrip
-------------------------------------------------------------------------- new_tristrip HT_Tristrip Tristrip descriptor structure. Returned to the caller. Passed by reference. old_tristrip HT_Tristrip Tristrip descriptor structure. Passed by ref erence. --------------------------------------------------------------------------VARIANTS
HIC_Free_Tristrip (geometry)
--------------------------------------------------------- geometry pointer A pointer to the geometry created by HIC_New_Tristrip. Passed by reference. ---------------------------------------------------------
DETAILS
In classic HOOPS, mesh and shell data are inserted with HC_Insert_Mesh and HC_Insert_Shell respectively. Since meshes and shells in HOOPS can have attributes individually set on the faces, edges, and markers (located at the vertices), HOOPS decomposes meshes and shells into 3 drawing primitives: tristrips for the faces, polyedges for the edges, and polymarkers for the markers.
When the old_tristrip is null, the returned structures for HIC_New_Tristrip are initialized so that initial data are equivalent to an empty tristrip. Otherwise HOOPS copies old_tristrip values to the new_tristrip..
NOTES
To assign values for each item of the structure, you need to call: HIC_Set_Tristrip_... Once these values are assigned, you can then draw the tristrip by calling HIC_Draw_3D_Tristrip.
PURPOSE
Creates a new user face pattern.
CALLING SEQUENCE
HIC_New_User_Face_Pattern (nr, nrows, ncols, npatt, nsee), returns pointer
---------------------------------------------------------------------------- new_rend HT_Rendition A rendition created by HIC_New_Rendition. Passed by reference.. nrows int Number of rows in pattern. ncols int Number of columns in pattern. npatt char array Character array defining bit-map of pattern. Passed by reference. nsee Enumerated Pattern transparency flag. See below for details. pointer pointer Pointer to user pattern descriptor structure. See below for details. ----------------------------------------------------------------------------VARIANTS
HIC_Free_User_Face_Pattern (patt)
---------------------------------------------------- patt pointer Pointer to user pattern, returned by HIC_New_User_Face_Pattern. ----------------------------------------------------
DETAILS
This function allows you to define your own face pattern as an arbitrary nrows x ncols binary pixmap (or bitmap). Then, you can use the function HIC_Set_User_Face_Pattern to set the face pattern attribute to your defined pattern.
You define the pixmap by the arguments nrows, ncols, and a character array npatt, of nrows x ncols bytes. Each byte represents one pixel of the pixmap, stored in row-major order (i.e., with the column index varying most rapidly). The effect of each byte only depends on whether it is zero or non-zero. Pixels with byte value zero are associated with the face color, pixels with byte value non-zero are associated with the face contrast color.
nsee should have one of the symbolic constant values UPAT_NORMAL, UPAT_NO_FACE, UPAT_NO_CONTRAST. In the first case, when pattern is applied to a face, the face color pixels are rendered according to the face color attribute and the face contrast color pixels according to the face contrast color attribute. In the second case, the face color pixels are made transparent and the face contrast color pixels have the face contrast color. In the third case, the face color pixels have the face color, and the face contrast color pixels are made transparent.
You can specify that the pattern be applied with the row order reversed from that of the stored character array by making the nrows argument negative.
HIC_Free_User_Face_Pattern releases the memory allocated for a user pattern. You should eventually use it to free any user patterns you create.
NOTES
User defined face patterns are available only with HOOPS I.M., not in classic HOOPS.
PURPOSE
Creates a customized line pattern.
HIC_New_User_Line_Pattern (nr, count, upat), returns pointer
---------------------------------------------------- |
||
nr |
HT_Rendition |
Rendition created with HIC_New_Rendition. Passed by reference always |
count |
integer |
The number of values inupat |
upat |
array of unsigned char |
an array of unsigned char bytes whose values indicate the lengths of the dashes and spaces in the pattern. |
pointer |
HT_User_Line_Pattern |
Pointer to user pattern descriptor structure. See below for details. |
---------------------------------------------------- |
HIC_Free_User_Line_Pattern (pointer)
---------------------------------------------------- pointer pointer Pointer to user pattern, as above. ----------------------------------------------------
DETAILS
An array containing {10,10} would draw a pattern of 10 pixels alternating with a 10 pixel space -- a small dash pattern. An array like {20,4,8,4} would be a long dash, tiny space, short dash, tiny space. If "count" is odd, the array is effectively repeated to make it even, therefore {12,6,18} behaves as if it were {12,6,18,12,6,18}
To use the line pattern, simply create the pattern, set it in the rendition, and draw:
HT_User_Line_Pattern * my_line_pattern; my_line_pattern = HIC_New_User_Line_Pattern (rendition, count, lengths); HT_Rendition my_rendition = HIC_New_Rendition (rendition); HIC_Set_User_Line_Pattern (my_line_pattern); HIC_Draw_DC_Polyline (my_rendition, point_count, points); HIC_Free_Rendition (my_rendition);
PURPOSE
Define a pattern to be applied to line drawing.
CALLING SEQUENCE
HIC_New_User_Line_Pattern2 (nr, nlen, npat, abs)
------------------------------------------------------------------ | ||
nr    | HT_Rendition    | Rendition created with HIC_New_Rendition. Passed by reference |
nlen    | integer    | The number of values in npat |
npat    | array of unsigned shorts    | an array of unsigned shorts whose values indicate the lengths of the dashes and spaces in the pattern |
abs    | integer    | non-zero if the lengths are specified in absolute device coordinates. Zero if defined as nominal pixels |
------------------------------------------------------------------ |
HIC_Free_User_Line_Pattern (pointer)
---------------------------------------------------- pointer pointer Pointer to user pattern, as above. ----------------------------------------------------
DETAILS
Like HIC_New_User_Line_Pattern but uses integers to describe the pattern.
PURPOSE
Creates a new shell-specific descriptor.
CALLING SEQUENCE
HIC_New_User_Shell(), returns new_polyhedron
--------------------------------------------------------------------------new_polyhedron HT_Polyhedron Polyhedron descriptor structure. Passed by ref
--------------------------------------------------------------------------VARIANTS
HIC_Free_User_Shell (polyhedron)
----------------------------------------------------------------------------
polyhedron pointer A pointer to the polyhedron created by HIC_New_User_Shell. Passed by reference. ----------------------------------------------------------------------------
DETAILS
These routines are used to allocate and free memory associated with an HT_Polyhedron union.
NOTES
HT_Polyhedron is implemented as a C union that can hold either a mesh or a shell. Shells and meshes that are captured inside a Draw_3D_Geometry callback can be cast to HT_Polyhedron and passed further along, either through HIC_Draw_3D Polyhedron. or HIC_Draw_3D Geometry.
To assign values for each item of HT_Polyhedron, you need to call: HIC_Set_User Shell . Once these values are assigned, you can then draw the tristrip edges by calling HIC_Draw_3D Polyhedron.