HIC_Finish_Picture

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
------------------------------------------------------------------

Back


HIC_New_(geometry)

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.

Back


HIC_New_Convex_Clip_Region
HIC_Set_Convex_Clip_Region
HIC_Free_Convex_Clip_Region

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.
Passed by reference always
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


HIC_New_Polyedge

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.

Back


HIC_New_Polymarker

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.

Back


HIC_New_Rendition

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. 

 
Back


HIC_New_Tristrip

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.

Back


HIC_New_User_Face_Pattern

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.

Back


HIC_New_User_Line_Pattern

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.
----------------------------------------------------
VARIANTS

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);

Back


HIC_New_User_Line_Pattern2

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
------------------------------------------------------------------
VARIANTS

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.

Back


HIC_New_User_Shell

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
                                                           erence.
--------------------------------------------------------------------------
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.

Back