HIC_Select...

PURPOSE

Performs selection processing on a specified database element.

CALLING SEQUENCE

HIC_Select_Geometry (nr, geom)

HIC_Select_Segment (nr, si)

HIC_Select_Window (nr, wi)

---------------------------------------------------------------------------
nr     HT_Rendition      Net rendition passed to your callback. Passed by ref  
                         erence.                                               
geom   HT_Geometry       Geometry descriptor structure. Passed by reference.   
si     HT_Segment_Info   Segment information structure. Passed by reference.   
wi     HT_Window_Info    Window information structure. Passed by reference.    
---------------------------------------------------------------------------

DETAILS

HIC_Select_Geometry is the standard default method for the following callback points:

"select geometry"
"select markers"
"select polylines"
"select polygons"
"select text"

HIC_Select_Segment is the standard default method for the "select segments" callback point and HIC_Select_Window is the default for "select windows".

You would normally call these functions only from your callback function for the corresponding callback point. Each performs the processing to check the referenced database element against the current selection event contained in the rendition nr.

Back


HIC_Set_Attribute_Locks

PURPOSE

Locks the attribute settings of certain geometry at draw time.

CALLING SEQUENCE

HIC_Set_Attribute_Locks ( nr, lock )
-------------------------------------------------------------------------
nr 
HT_Rendition
Rendition created with HIC_New_Rendition. 
Passed by reference always 
lock   
Enumerated
Type of geometry for attribute lock. 
See below for details.
-------------------------------------------------------------------------
DETAILS:
This function locks the attribute of the specified geometry elements in process at the callback point. This avoids having to set the callback on subsegments with local attribute settings. lock has one or more of the following symbolic constant values:

Attribute_STYLE
Attribute_RENDERING_OPTIONS
Attribute_SELECTABILITY
Attribute_VISIBILITY
Attribute_COLOR_MAP
Attribute_COLOR
Attribute_WINDOW_FRAME
Attribute_WINDOW_PATTERN
Attribute_WINDOW
Attribute_CALLBACK
Attribute_CAMERA
Attribute_DRIVER
Attribute_DRIVER_OPTIONS
Attribute_EDGE_PATTERN
Attribute_EDGE_WEIGHT
Attribute_FACE_PATTERN
Attribute_HANDEDNESS
Attribute_HEURISTICS
Attribute_LINE_PATTERN
Attribute_LINE_WEIGHT
Attribute_MARKER_SIZE
Attribute_MARKER_SYMBOL
Attribute_METAFILE
Attribute_MODELLING_MATRIX
Attribute_TEXT_ALIGNMENT
Attribute_TEXT_FONT
Attribute_TEXT_PATH
Attribute_TEXT_SPACING
Attribute_USER_OPTIONS
Attribute_USER_VALUE
Attribute_TEXTURE_MATRIX

Back


HIC_Set_Clipping

PURPOSE

Sets the clipping rectangle in the specified rendition.

CALLING SEQUENCE

HIC_Set_Clipping (nr, nleft, nright, nbottom, ntop)

HIC_Clear_Z_Buffer (nr)

HIC_Show_Clipping (nr) provides access to .left, .right, .bottom, .top

-----------------------------------------------------------------------------------
nr                             HT_Rendition   Rendition created with                   
                                              HIC_New_Rendition. Passed by ref         
                                              erence.                                  
nleft, nright, nbottom, ntop   int            New hard clip limits in integer device   
                                              coordinates                              
-----------------------------------------------------------------------------------

DETAILS

You can use these functions to set the hard clip limit attributes in a rendition created with HIC_New_Rendition. You should not attempt to change the clip rectangle in the rendition passed to your callback function.

The default clipping rectangle is determined as the intersection of the current window with its parent windows. If you wish to clear the z-buffer (hardware z or software z buffer hidden surface removal must be active) associated with the current clipping limits, you can make a specific call to clear the z buffer.

RESTRICTIONS

The HOOPS software Z buffer operates with clipping limits based on the area of the screen where the Z buffer will be displayed. It is not possible to set a narrower clipping region, draw using HOOPS I.M., and have geometry outside the newly set clipping limits not appear in the Z buffer.

Back


HIC_Set_Color_Locks

PURPOSE

Locks the color attribute of certain geometry at draw time.

CALLING SEQUENCE

HIC_Set_Color_Locks ( nr, lock )
-------------------------------------------------------------------------
nr 
HT_Rendition
Rendition created with HIC_New_Rendition. 
Passed by reference always 
lock   
Enumerated
Type of geometry for color lock. 
See below for details.
-------------------------------------------------------------------------
DETAILS:
This function locks the color of the specified geometry elements in process at the callback point. This avoids having to set the callback on subsegments with local attribute settings. lock has one or more of the following symbolic constant values:

Color_NONE
Color_WINDOW
Color_WINDOW_CONTRAST
Color_FACE_CONTRAST
Color_LINE
Color_MARKER
Color_TEXT
Color_EDGE
Color_FRONT
Color_BACK
Color_AMBIENT
Color_LIGHTING
Color_CUT_EDGE
Color_FACE
Color_POLYGON
Color_GEOMETRY
Color_EVERYTHING

Back


HIC_Set_Edge_(attribute)

PURPOSE

Sets the values of edge attributes in a specified rendition.

CALLING SEQUENCE

HIC_Set_Edge_Color (nr, rgb)

HIC_Set_Edge_Pattern (nr, npattern)

HIC_Set_Edge_Weight (nr, nweight)

-------------------------------------------------------------------
nr           HT_Rendition   Rendition created with HIC_New_Rendition.  
                             Passed by reference.                      
 rgb         HT_RGB         New edge color. Passed by reference.       
 npattern    Enumerated     New edge pattern. See below for details.   
nweight      int            New edge thickness, in pixels.             
-------------------------------------------------------------------
VARIANTS

HIC_Set_Internal_Edge_Color (nr, int_color)

-----------------------------------------------------------------------------
nr          HT_Rendition   Rendition created with HIC_New_Rendition.             
                            Passed by reference.                                 
int_color   HT_RGB32       New edge color, in four-byte format (with platform-   
                           dependent order)                                      
-----------------------------------------------------------------------------

DETAILS

You can use this function to change the values of edge attributes in a rendition you have created with HIC_New_Rendition. You should not use this function to change attribute values in the rendition passed to your callback function.

npattern should have one of the symbolic constant values

LP_SOLID, LP_DASHDOT, LP_DASHED, LP_DOTTED, LP_DASH_2DOT, LP_DASH_3DOT, LP_LONG_DASH, LP_CENTER, LP_PHANTOM.

These correspond to the line patterns that you specify by descriptive strings in calls to the classic function Set_Edge_Pattern.

rgb is a structure of three floats, which should all be between zero and one.

NOTES

Note the following differences between these I.M. functions and the corresponding Set_(Attribute) functions of classic HOOPS:

  • HIC_Set_Edge_Color or HIC_Set_Internal_Edge_Color for setting edge colors specifically, instead of a single Set_Color function for all color attributes.

  •  
  • Color specified by RGB triplets instead of descriptive strings.

  •  
  • Line patterns specified by symbolic constants npattern instead of descriptive strings.

  •  
  • Edge weight specified by integer width nweight in pixels instead of a float scale factor.
  • Back


    HIC_Set_Face_(attribute)

    PURPOSE

    Sets the values of face attributes in a specified rendition.

    CALLING SEQUENCE

    HIC_Set_Face_Color (nr, rgb)

    HIC_Set_Face_Back_Color (nr, rgb)

    HIC_Set_Face_Transmission_Color (nr, rgb)

    HIC_Set_Face_Contrast_Color (nr, rgb)

    HIC_Set_Face_Pattern (nr, npattern)

    -------------------------------------------------------------------
    nr           HT_Rendition   Rendition created with HIC_New_Rendition.  
                                 Passed by reference.                      
     rgb         HT_RGB         New face color or face contrast color.     
                                 Passed by reference.                      
     npattern    Enumerated     New face pattern. See below for details.   
    -------------------------------------------------------------------
    VARIANTS

    HIC_Set_Internal_Face_Color (nr, int_color)

    HIC_Set_Internal_Face_Back_Color (nr, int_color)

    HIC_Set_Internal_Face_Contrast_Color (nr, int_color)

    HIC_Set_User_Face_Pattern (nr, user_patt)

    -------------------------------------------------------------------------------
    nr          HT_Rendition   Rendition created with HIC_New_Rendition.               
                                Passed by reference.                                   
    int_color   HT_RGB32       New face color or face contrast color,                  
                                in four-byte format (with platform- dependent          
                               order)                                                  
    user_patt   pointer        Pointer to user pattern descriptor structure returned   
                               by HIC_New_User_Pattern                                 
    -------------------------------------------------------------------------------

    DETAILS

    You can use this function to change the values of face attributes in a rendition you have created with HIC_New_Rendition. You should not use this function to change attribute values in the rendition passed to your callback function.

    npattern should have one of the symbolic constant values

    FP_SOLID, FP_CHECKERBOARD, FP_CROSSHATCH, FP_DIAMONDS, FP_HORIZONTAL_BARS, FP_SLANT_LEFT, FP_SLANT_RIGHT, FP_SQUARE_DOTS, FP_VERTICAL_BARS, FP_WINDOW_CHECKERBOARD, FP_WINDOW_CROSSHATCH, FP_WINDOW_DIAMONDS, FP_WINDOW_HORIZONTAL_BARS, FP_WINDOW_SLANT_LEFT, FP_WINDOW_SLANT_RIGHT, FP_WINDOW_SQUARE_DOTS, FP_WINDOW_VERTICAL_BARS, FP_WINDOW_TRANSPARENT

    These correspond clearly with the face patterns that you specify by descriptive strings in calls to the classic function Set_Face_Pattern.

    rgb is a structure of three floats, which should all be between zero and one.

    HOOPS I.M also gives you the ability to define your own face patterns with HIC_New_User_Pattern. You set the face pattern attribute to point to a user defined face pattern with HIC_Set_User_Face_Pattern.

    NOTES

    Note the following differences between these I.M. functions and the corresponding Set_(Attribute) functions of classic HOOPS:

  • HIC_Set_Face_Color and HIC_Set_Face_Contrast_Color (or HIC_Set_Internal_Face Color) for setting face colors specifically, instead of a single Set_Color function for all color attributes.
  • HIC_Set_Internal_Face_Back_Color is used to draw the back sides of faces using an internal color value from a HIC_Show_Internal_XXX_Color()
     

  • Color specified by RGB triplets instead of descriptive strings.

  •  
  • Face patterns specified by symbolic constants npattern instead of descriptive strings.

  •  
  • User face patterns.
  • RESTRICTIONS

    HIC_Set_Face_Back_Color is only used if polygon handedness is set and backplane culling is disabled.

    Back


    HIC_Set_Face_Displacement

    PURPOSE

    Sets the displacement applied to face drawing. Normally faces are drawn with a small displacement so associated edges are clearly visible.

    CALLING SEQUENCE

    HIC_Set_Face_Displacement (nr, displacement)
    ------------------------------------------------------------------
    nr    HT_Rendition    Rendition. Passed by reference
    displacement    integer    number of z-buffer units to push faces back
    ------------------------------------------------------------------

    Back


    HIC_Set_..._Interesting

    PURPOSE

    Sets the values of an interesting bit in a specified geometry or segment.

    CALLING SEQUENCE

    HIC_Check_Current_Geometry_Interesting (nr), returns flag

    HIC_Check_Geometry_Interesting (nr, geo), returns flag

    HIC_Check_Segment_Interesting (nr, si), returns flag

    HIC_Set_Current_Geometry_Interesting (nr)

    HIC_Set_Geometry_Interesting (nr, geo)

    HIC_Set_Segment_Interesting (nr, si)

    HIC_UnSet_Current_Geometry_Interesting (nr)

    HIC_UnSet_Geometry_Interesting (nr, geo)

    HIC_UnSet_Segment_Interesting (nr, si)

    -------------------------------------------------------------------------
    nr     HT_Rendition    Rendition created with HIC_New_Rendition.             
                            Passed by reference.                                 
     geo   HT_(Geometry)   Geometry descriptor structure. Passed by reference.   
     si    HT_Segment      Segment info structure. Passed by reference.          
    flag   HT_Boolean      Flag indicating if the result is interesting or not.  
    -------------------------------------------------------------------------

    DETAILS

    The interesting bit is a place holder than can be used for application specific purposes. The bit is referred to as the interesting bit because it can be set during rendering and then interrogated later, such as during selection processing. In the example cited, items which were off screen were considered un-interesting since there was no way they could be selected. As such, during rendering, only those items which appeared on the screen were marked as interesting. During selection processing, any items not marked as interesting were immediately rejected from consideration during the selection processing.

    Back


    HIC_Set_Line_(attribute)

    PURPOSE

    Sets the values of line attributes in a specified rendition.

    CALLING SEQUENCE

    HIC_Set_Line_Color (nr, rgb)

    HIC_Set_Line_Pattern (nr, npattern)

    HIC_Set_Line_Weight (nr, nweight)

    -------------------------------------------------------------------
    nr           HT_Rendition   Rendition created with HIC_New_Rendition.  
                                 Passed by reference.                      
     rgb         HT_RGB         New line color. Passed by reference.       
     npattern    Enumerated     New line pattern. See below for details.   
    nweight      int            New line thickness, in pixels.             
    -------------------------------------------------------------------
    VARIANTS

    HIC_Set_Internal_Line_Color (nr, int_color)

    -----------------------------------------------------------------------------
    nr          HT_Rendition   Rendition created with HIC_New_Rendition.             
                                Passed by reference.                                 
    int_color   HT_RGB32       New line color, in four-byte format (with platform-   
                               dependent order)                                      
    -----------------------------------------------------------------------------

    DETAILS

    You can use this function to change the values of line attributes in a rendition you have created with HIC_New_Rendition. You should not use this function to change attribute values in the rendition passed to your callback function.

    npattern should have one of the symbolic constant values

    LP_SOLID, LP_DASHDOT, LP_DASHED, LP_DOTTED, LP_DASH_2DOT, LP_DASH_3DOT, LP_LONG_DASH, LP_CENTER, LP_PHANTOM.

    These correspond to the line patterns that you specify by descriptive strings in calls to the classic function Set_Line_Pattern.

    rgb is a structure of three floats, which should all be between zero and one.

    NOTES

    Note the following differences between these I.M. functions and the corresponding Set_(Attribute) functions of classic HOOPS:

  • HIC_Set_Line_Color and HIC_Set_Internal_Line_Color for setting line colors specifically, instead of a single Set_Color function for all color attributes.

  •  
  • Color specified by RGB triplets instead of descriptive strings.

  •  
  • Line patterns specified by symbolic constants instead of descriptive strings.

  •  
  • Line weight specified by integer width nweight in pixels instead of a float scale factor.
  • Back


    HIC_Set_Line_Style

    PURPOSE

    Sets a line pattern or style by name.

    CALLING SEQUENCE

    HIC_Set_Line_Style (HT_Rendition *nr, style)

    ------------------------------------------------------------------
    	
    nr HT_Rendition Rendition created with HIC_Net_Rendition. Passed by Reference.
    style string name of the line style or pattern to set on the given rendition
    ------------------------------------------------------------------
    

    DETAILS

    Sets the line pattern or style based on the name, rather than by an enumerated type ( see HIC_Set_Line_Pattern ). This function can be used with user-defined line styles as well as with existing line patterns such as "dashdot".

    Back


    HIC_Set_LOD_Clamp

    PURPOSE

    Sets a LOD clamp level in the specified rendition.

    CALLING SEQUENCE

    HIC_Set_LOD_Clamp (HT_Rendition *nr, int clamp)

    ------------------------------------------------------------------
    	
    nr HT_Rendition Rendition created with HIC_Net_Rendition. Passed by Reference.
    clamp integer clamp level that you want set on the provided rendition
    ------------------------------------------------------------------
    

    DETAILS

    You can use this function to set a LOD clamp value on the provided rendition you have created with HIC_New_Rendition. You should not use this function to change attribute values in the rendition passed to your callback function.

    Back


    HIC_Set_Marker_Name

    PURPOSE

    Sets a specified marker symbol by name on a given rendition.

    CALLING SEQUENCE

    HIC_Set_Marker_Name (HT_Rendition *nr, name)

    ------------------------------------------------------------------
    	
    nr HT_Rendition Rendition created with HIC_Net_Rendition. Passed by Reference.
    name string name of the marker symbol to set on the given rendition
    ------------------------------------------------------------------
    

    DETAILS

    Sets the marker symbol based on the name, rather than by an enumerated type ( see HIC_Set_Marker_Symbol ). This function can be used with user-defined glyphs as well as with existing marker symbols such as "<>".

    Back


    HIC_Set_Marker_(attribute)

    PURPOSE

    Sets the values of marker attributes in a specified rendition.

    CALLING SEQUENCE

    HIC_Set_Marker_Color (nr, rgb)

    HIC_Set_Marker_Symbol (nr, nsymbol)

    HIC_Set_Marker_Size (nr, nsize)

    ------------------------------------------------------------------
    nr          HT_Rendition   Rendition created with HIC_New_Rendition.  
                                Passed by reference.                      
     rgb        HT_RGB         New marker color. Passed by reference.     
     nsymbol    Enumerated     New marker symbol. See below for details.  
    nsize       int            New marker size, in pixels.                
    ------------------------------------------------------------------
    VARIANTS

    HIC_Set_Internal_Marker_Color (nr, int_color)

    ---------------------------------------------------------------------
    nr          HT_Rendition   Rendition created with HIC_New_Rendition.     
                                Passed by reference.                         
    int_color   HT_RGB32       New marker color, in four-byte format (with   
                               platform- dependent order)                    
    ---------------------------------------------------------------------

    DETAILS

    You can use this function to change the values of marker attributes in a rendition you have created with HIC_New_Rendition. You should not use this function to change attribute values in the rendition passed to your callback function.

    nsymbol should have one of the symbolic constant values

    MK_CIRCLE, MK_CIRCLE_WITH_DOT, MK_CIRCLE_WITH_CROSS, MK_CIRCLE_WITH_TIMES, MK_CIRCLE_WITH_CIRCLE, MK_SOLID_CIRCLE, MK_DOT, MK_CROSS, MK_SPLAT, MK_TIMES, MK_BOX, MK_BOX_WITH_DOT, MK_BOX_WITH_TIMES, MK_SOLID_BOX, MK_DIAMOND, MK_DIAMOND_WITH_DOT, MK_DIAMOND_WITH_CROSS, MK_SOLID_DIAMOND, MK_TRIANGLE_UP, MK_TRIANGLE_UP_V, MK_TRIANGLE_UP_WITH_DOT, MK_SOLID_TRIANGLE_UP, MK_SOLID_TRIANGLE_UP_V, MK_TRIANGLE_DOWN, MK_TRIANGLE_DOWN_V, MK_TRIANGLE_DOWN_WITH_DOT, MK_SOLID_TRIANGLE_DOWN, MK_SOLID_TRIANGLE_DOWN_V, MK_TRIANGLE_RIGHT, MK_TRIANGLE_RIGHT_V, MK_TRIANGLE_RIGHT_WITH_DOT, MK_SOLID_TRIANGLE_RIGHT, MK_SOLID_TRIANGLE_RIGHT_V, MK_TRIANGLE_LEFT, MK_TRIANGLE_LEFT_V, MK_TRIANGLE_LEFT_WITH_DOT, MK_SOLID_TRIANGLE_LEFT, MK_SOLID_TRIANGLE_LEFT_V, MK_POUND, MK_WIDE_PLUS, MK_OPEN_ARROW, MK_CLOSED_ARROW, MK_VERTICAL_BAR, MK_HALF_ARROW_LEFT, MK_HALF_ARROW_RIGHT, MK_WIDE_ARROW, MK_DOUBLE_ARROW, MK_LETTER_Y, MK_LETTER_Z

    These correspond clearly with the marker symbols that you specify by descriptive strings in calls to the classic function Set_Marker_Symbol.

    rgb is a structure of three floats, which should all be between zero and one.

    NOTES

    Note the following differences between these I.M. functions and the corresponding Set_(Attribute) functions of classic HOOPS:

  • HIC_Set_Marker_Color or HIC_Set_Internal_Marker_Color for setting marker colors specifically, instead of a single Set_Color function for all color attributes.

  •  
  • Color specified by RGB triplets instead of descriptive strings.

  •  
  • Marker symbols specified by symbolic constants nsymbol instead of descriptive strings.

  •  
  • Marker weight specified by integer size nsize in pixels instead of a float scale factor.
  • Back


    HIC_Set_Modelling_Matrix

    PURPOSE

    Reassigns modeling matrix settings.

    CALLING SEQUENCE

    HIC_Set_Modelling_Matrix (nr, matrix)

    -----------------------------------------------------------------------
    nr       HT_Rendition   Rendition created by HIC_New_Rendition.            
                            Passed by reference.                               
    matrix   pointer        Pointer to a 4 x 4 array of floats. Passed by ref  
                            erence.                                            
    -----------------------------------------------------------------------

    DETAILS

    This function is most useful in a segment callback. It can be used to provide animation. The general method of using this routine is to do a HIC_Show_Modelling_Matrix to obtain the current matrix, modify the contents of the matrix, obtain a new rendition, and then set the pointer to the modified matrix in the new rendition.

    Back


    HIC_Set_Polyedge_...

    PURPOSE

    Sets data elements of a polyedge structure. Polyedge structures are used to draw the edges of tristrips.

    CALLING SEQUENCE

    HIC_Set_Polyedge_Edge_Colors (polyedge, edge_colors)

    HIC_Set_Polyedge_Edge_Normals (polyedge, edge_normals)

    HIC_Set_Polyedge_Findex_Color_Interpolation (polyedge, flag)

    HIC_Set_Polyedge_List (polyedge, list)

    HIC_Set_Polyedge_Points (polyedge, points)

    HIC_Set_Polyedge_Vertex_Colors (polyedge, vertex_colors)

    HIC_Set_Polyedge_Vertex_Findices (polyedge, vertex_findices)

    HIC_Set_Polyedge_Vertex_Normals (polyedge, vertex_normals)

    HIC_Set_Polyedge_Vertex_Parameter_Width (polyedge, width)

    HIC_Set_Polyedge_Vertex_Parameters (polyedge, vertex_parameters)

    ---------------------------------------------------------------------------
    polyedge            HT_Polyedge    Polyedge structure descriptor. Passed       
                                       by reference.                               
    edge_colors         HT_RGB32       If not null, points to the first of an      
                                       array of colors to associate with           
                                       edges. Passed by reference.                 
    edge_normals        HT_Vertex      If not null, points to the first of an      
                                       array of normal vectors to associate        
                                       with edges. Passed by reference.            
    flag                boolean        Passing a value of TRUE activates           
                                       colorization by fractional indices.         
                                       Passing a value of FALSE deactivates.       
    list                int            Pointer to an array of integer indices      
                                       that define the edges in the list and       
                                       their vertex and face data within the       
                                       points, vertex_colors, vertex_normals.      
                                       Passed by reference.                        
    points              HT_Point       Pointer to an array of 3D points that       
                                       contains the vertices of all the edges in   
                                       the list. Passed by reference.              
    vertex_colors       HT_RGB32       if not null, points to the first of an      
                                       array of colors associated with the         
                                       vertices. The color associated with a       
                                       particular vertex has the same index in     
                                       this array as the vertex has in points.     
                                       Passed by reference.                        
    vertex_findices     pointer        In not null, points to fractional           
                                       indexes (into a color map) to               
                                       determine the color for the vertex.         
                                       Passed by reference.                        
    
    vertex_normals      HT_Vertex      If not null, points to the first of an      
                                       array of normal vectors associated          
                                       with vertices. Passed by reference.         
    vertex_parameters   HT_Parameter   In not null, points to texture mapping      
                                       coordinates associated with vertices.       
                                       Passed by reference.                        
    ---------------------------------------------------------------------------

    DETAILS

    These functions are for use in a "draw 3d polyedge" callback function to set individual information a HOOPS polyedge data structure, which may be passed in from the core HOOPS or created by HIC_New_Polyedge.

    list[0], and list[1] give the indices in points (and the two other vertex data arrays when supplied) of the first two vertices of the first polyline. list[2] gives the index of the first edge in the edge data arrays, and subsequent pairs (list[2*n-1], list[2*n]) give the vertex array index of the next vertex and the edge array index of the edge that comes with it, respectively. The end of the first polyline is flagged by a negative value of the vertex index; specifically, the value in the list array is the one's complement of the actual index of the last vertex in the polyline. If the next value in list after the last index of polyline is non-negative, then there is another polyline to be drawn and the pattern repeats.

    For example, a list of 0, 1, 0, -3, 1, 4, -6, -2 means vertices 0, and 1 form edge 0; vertices 1, and -(-3) edge 1. We are done with the first subedge. Starting anew, vertices 4, -(-6) form edge -(-2) and this is the end of the second subpolyedge and the end of the polyedge.

    Back


    HIC_Set_Polymarker_...

    PURPOSE

    Sets data elements of a polymarker structure. Polymarker structures are used to draw makers at the vertices of tristrips.

    CALLING SEQUENCE

    HIC_Set_Polymarker_Findex_Color_Interpolation (polymarker, flag)

    HIC_Set_Polymarker_List (polymarker, list)

    HIC_Set_Polymarker_Points (polymarker, points)

    HIC_Set_Polymarker_Vertex_Colors (polymarker, vertex_colors)

    HIC_Set_Polymarker_Vertex_Findices (polymarker, vertex_findices)

    HIC_Set_Polymarker_Vertex_Normals (polymarker, vertex_normals)

    HIC_Set_Polymarker_Vertex_Parameter_Width (polymarker, width)

    HIC_Set_Polymarker_Vertex_Parameters (polymarker, vertex_parameters)

    ----------------------------------------------------------------------------------
    polymarker          HT_Polymarker   Polymarker structure descriptor. Passed           
                                        by reference                                      
    flag                boolean         Passing a value of TRUE activates colori          
                                        zation by fractional indices. Passing a           
                                        value of FALSE deactivates.                       
    list                int             Pointer to an array of integer indices that       
                                        define the markers in the list and their          
                                        vertex, vertex_colors, vertex_normals.            
                                        Passed by reference.                              
    points              HT_Point        Pointer to an array of 3D points that con         
                                        tains the vertices of all the markers in the      
                                        list. Passed by reference.                        
    vertex_colors       HT_RGB32        if not null, points to the first of an array of   
                                        colors associated with the vertices. The          
                                        color associated with a particular vertex         
                                        has the same index in this array as the           
                                        vertex has in points. Passed by reference.        
    vertex_findices     pointer         In not null, points to fractional indexes         
                                        (into a color map) to determine the color         
                                        for the vertex. Passed by reference.              
    vertex_normals      HT_Vertex       If not null, points to the first of an array of   
                                        normal vectors associated with vertices.          
                                        Passed by reference.                              
    vertex_parameters   HT_Parameter    In not null, points to texture mapping            
                                        coordinates associated with vertices.             
                                        Passed by reference.                              
    ----------------------------------------------------------------------------------

    DETAILS

    The points argument points to the first of an array of 3D points that contains the vertices of all the polymarkers in the list. The sequences of vertices defining the polymarkers in the list are specified by list, as described below.

    Each polymarker starts with a positive vertex and ends with an negative vertex. You would need to negate the negative vertex to get the correct vertex index.

    For example, 0, 1, 2, -3, 4, 5, -7 means 0, 1, 2, -(-3) form polymarker 0 and 4, 5, -(-7) polymarker 1.

    Back


    HIC_Set_Text_(attribute)

    PURPOSE

    Set the values of text attributes in a specified rendition.

    CALLING SEQUENCE

    HIC_Set_Text_Alignment (nr, align)

    HIC_Set_Text_Color (nr, rgb)

    HIC_Set_Text_Extra_Space (nr, xspace)

    HIC_Set_Text_Extra_Space_Units (nr, units)

    HIC_Set_Text_Path (nr, px, py, pz)

    HIC_Set_Text_Rotation (nr, rot)

    HIC_Set_Text_Rotation_Follow_Path (nr)

    HIC_Set_Text_Size (nr, size)

    HIC_Set_Text_Size_Tolerance (nr, tol)

    HIC_Set_Text_Size_Tolerance_Units (nr, units)

    HIC_Set_Text_Size_Units (nr, units)

    HIC_Set_Text_Slant (nr, slant)

    HIC_Set_Text_Spacing (nr, space)

    HIC_Set_Text_Transform (nr, xform)

    HIC_Set_Text_Width_Scale (nr, wscale)

    ---------------------------------------------------------------------------------
    nr           HT_Rendition      Rendition created with HIC_New_Rendition.             
                                   Passed by reference.                                  
    align        Enumerated        New text alignment. See below for details.            
    rgb          HT_RGB            New text color. Passed by reference.                  
    xspace       float             New text extra space.                                 
    units        Enumerated char   Units for text extra space, size, or size tolerance.  
                                   See below for details.                                
    px, py, pz   float             New text path. Three components.                      
    rot          float             New text rotation. Angle in degrees.                  
    size         float             New text size.                                        
    tol          float             New text size tolerance.                              
    slant        float             New text slant. Angle in degrees.                     
    space        float             New text spacing.                                     
    xform        Enumerated char   New text transformability.                            
    wscale       float             New text width scale.                                 
    ---------------------------------------------------------------------------------
    VARIANT

    HIC_Set_Internal_Text_Color (nr, int_color)

    -----------------------------------------------------------------------------
    nr          HT_Rendition   Rendition created with HIC_New_Rendition.             
                                Passed by reference.                                 
    int_color   HT_RGB32       New text color, in four-byte format (with platform-   
                               dependent order)                                      
    -----------------------------------------------------------------------------

    DETAILS

    You can use this function to change the values of text attributes in a rendition you have created with HIC_New_Rendition. You should not use this function to change attribute values in the rendition passed to your callback function.

    align should have one of the symbolic constant values

    TA_CENTERCENTER, TA_CENTERLEFT, TA_CENTERRIGHT, TA_LOWERCENTER, TA_LOWERLEFT, TA_LOWERRIGHT, TA_UPPERCENTER, TA_UPPERLEFT, TA_UPPERRIGHT, TA_INSERTION_POINT,

    which have a straightforward correspondence with the descriptive strings that you use with the classic HOOPS function Set_Text_Alignment.

    xspace is a float form of the parameter you specify with a string with "extra space" in Set_Text_Font.

    units should have one of the symbolic constant values

    FS_NOT_VALID, FS_ORU, FS_SRU, FS_WRU, FS_POINTS, FS_PIXELS, FS_PERCENT,

    which have a straightforward correspondence with the descriptive strings that you use with "size = ..." in Set_Text_Font.

    px, py, pz have the same meaning and type as the arguments to Set_Text_Path.

    rot, size, tol, and slant are float forms of the corresponding parameters that you specify with strings in Set_Text_Font.

    space has the same type and meaning as the argument to Set_Text_Spacing.

    xform should have one of the symbolic constant values

    FT_NOT_VALID, FT_FULL, FT_NONE, FT_POSITION_ONLY

    which have a straightforward correspondence with the descriptive strings that you use with the "transforms" specification in Set_Text_Font.

    NOTES

    Note the following differences between these I.M. functions and the corresponding functions of classic HOOPS:

  • HIC_Set_Text_Color or HIC_Set_Internal_Text_Color for setting text color specifically, instead of a single Set_Color function for all color attributes.

  •  
  • Color specified by RGB triplets instead of descriptive strings.

  •  
  • Specific I.M. functions for setting each of several attributes that are all set by Set_Text_Font in classic HOOPS.

  •  
  • Symbolic constants instead of descriptive strings for alignment, units, and transformability.

  •  
  • Floats instead of strings for extra space, size, tolerance, rotation, and slant.
  • Back


    HIC_Set_Text_Position

    PURPOSE

    Repositions text specified by intermediate text structure.

    CALLING SEQUENCE

    HIC_Set_Text_Position (text_info, position)

    ----------------------------------------------------------------------------
    text_info   HT_Text_Info   Specific intermediate text structure. Passed by ref  
                               erence.                                              
    position    HT_DC_Point    New position, device coordinates. Passed by ref      
                               erence.                                              
    ----------------------------------------------------------------------------

    DETAILS

    This function allows you to change the device-coordinate position of a text string at the intermediate level of text rendering. Normally, you would call it only from a "draw text" callback function, which will be passed the text_info structure.

    The position member of the text_info structure locates the lower-left corner of the first character of the text string, in device coordinates. This will have been determined from

    - the reference point you supplied when you inserted the text,

    - the modeling transformation and camera attributes,

    - the text attributes---alignment, size, width, path, spacing, extra space, rotation, and slant,

    - the effects of soft clipping.

    NOTES

    The system will have applied soft clipping to the text string before calling "draw text", so it is possible that the first character of the string in text_info will not be the same as in the inserted text. position applies to the first character in the clipped string passed in text_info.

    Back


    HIC_Set_Tristrip_...

    PURPOSE

    Sets a tristrip structure.

    CALLING SEQUENCE

    HIC_Set_Tristrip_Face_Colors (tristrip, face_colors)

    HIC_Set_Tristrip_Face_Normals (tristrip, face_normals)

    HIC_Set_Tristrip_Findex_Color_Interpolation (tristrip, flag)

    HIC_Set_Tristrip_List (tristrip, list)

    HIC_Set_Tristrip_Points (tristrip, points)

    HIC_Set_Tristrip_Vertex_Colors (tristrip, vertex_colors)

    HIC_Set_Tristrip_Vertex_Findices (tristrip, vertex_findices)

    HIC_Set_Tristrip_Vertex_Normals (tristrip, vertex_normals)

    HIC_Set_Tristrip_Vertex_Parameter_Width (tristrip, width)

    HIC_Set_Tristrip_Vertex_Parameters (tristrip, vertex_parameters)

    ---------------------------------------------------------------------------
    tristrip            HT_Tristrip    Tristrip structure descriptor. Passed by    
                                       reference.                                  
    edge_colors         HT_RGB32       If not null, points to the first of an      
                                       array of colors to associate with the       
                                       faces. Passed by reference.                 
    edge_normals        HT_Vertex      If not null, points to the first of an      
                                       array of normal vectors to associate        
                                       with the faces. Passed by reference.        
    flag                boolean        Passing a value of TRUE activates           
                                       colorization by fractional indices.         
                                       Passing a value of FALSE deactivates.       
    list                int            Pointer to an array of integer indices      
                                       that define the faces in the list and       
                                       their vertex data within the points,        
                                       vertex_colors, vertex_normals.              
                                       Passed by reference.                        
    points              HT_Point       Pointer to an array of 3D points that       
                                       contains the vertices of all the faces in   
                                       the list. Passed by reference.              
    vertex_colors       HT_RGB32       if not null, points to the first of an      
                                       array of colors associated with the         
                                       vertices. The color associated with a       
                                       particular vertex has the same index in     
                                       this array as the vertex has in points.     
                                       Passed by reference.                        
    vertex_findices     pointer        In not null, points to fractional           
                                       indexes (into a color map) to               
                                       determine the color for the vertex.         
                                       Passed by reference.                        
    vertex_normals      HT_Vertex      If not null, points to the first of an      
                                       array of normal vectors associated          
                                       with vertices. Passed by reference.         
    vertex_parameters   HT_Parameter   In not null, points to texture mapping      
                                       coordinates associated with vertices.       
                                       Passed by reference.                        
    ---------------------------------------------------------------------------

    DETAILS

    These functions are for use in a "draw 3d tristrip" callback function to set individual information a HOOPS tristrip data structure, which may be passed in from the core HOOPS or created by HIC_New_Tristrip.

    The points array points to the first of an array of 3D points that contains the vertices of all the triangle strips in the list. The sequences of vertices defining the tristrips in the list are specified by list, as described below. For each tristrip, the first three vertices form the first triangle, and thereafter the n-th vertex forms a new triangle with the (n- 1)st and (n-2)nd vertices. Thus, there is a natural one-to-one correspondence between faces and vertices after the second vertex. This correspondence is used to arrange the vertex- specific indices and face-specific indices in the list array, as described below.

    For example, a list of 0,1,2,0,-3,1,4,5,-6,-2 means vertices 0, 1, and 2 form face 0; vertices 1, 2, and -(-3) face 1 and we are done with the first substrip. Starting anew, vertices 4, 5, -(-6) form face -(-2) and this is the end of the second substrip and the end of the tristrip.

    Back


    HIC_Set_User_Index

    PURPOSE

    Sets the user option-by-index in the specified rendition.

    CALLING SEQUENCE

    HIC_Set_User_Index (nr, index, value)

    -------------------------------------------------------------
    nr      HT_Rendition   Rendition created by HIC_New_Rendition.   
                           Passed by reference.                      
    index   int            Index to associate with value             
    value   pointer        Your pointer to anything you want.        
    -------------------------------------------------------------

    DETAILS

    You can use this function to set the value of the user option corresponding to the given index in a rendition you have created with HIC_New_Rendition. You should not use this function to set the values in the rendition passed to your callback function.

    If there is already an option associated with the given index in the rendition nr, it is changed to value. If there is not already a user option corresponding to index, the system creates one and inserts it into the list representing the user option-by-index attribute in nr.

    NOTES

    There is no I.M. function for setting the string-valued user option that you set with Set_User_Option.

    Back


    HIC_Set_User_Shell

    PURPOSE

    Packs geometric data into the shell structure that is allocated by HIC_New_User_Shell
     
    CALLING SEQUENCE

    HIC_Set_User_Shell (new_polyhedron, point_count, points, vertex_normals, flist_length, face_list)

    -------------------------------------------------------------
    new_polyhedron    HT_Polyhedron   Pointer to a union of type HT_Polyhedron.
    point_count       integer         Number of points in points.
    points            array of        Vector of x-y-z triplets for the coordinates of the vertices   
                      floats          to be used to build the shell. (A simple N x 3 array may       
                                      also be used. Fortran callers should reverse the sub           
                                      scripts.) Passed by reference always.
    vertex_normals    float           Array of floats.
    flist_length      integer         Total number of integers in face_list.
    face_list         array of        Encoded description of how to connect the points to            
                      integers        build the faces of the shell (see Insert_Shell).
    -------------------------------------------------------------

    DETAILS

    This function is implemented mostly as a macro, and frees the user from much of the complexity and redundancy of the HT_Polyhedron structure.
     
    NOTES

    This macro traverses the face list to get its own face count.  In a performance-critical area of an application where the face count is already available, the user may wish to write a customized Set_Shell macro.  In addition, the developer may prefer to write a customized macro to support local attributes for faces, edges, or vertices (other than vertex normals).  These customized macros would require some additional support from within HOOPS, so please contact Techsoft if you need to customize.
     
    Back

    HIC_Set_Internal_Vertex_Color

    PURPOSE

    Set the color used to draw shell vertices using an internal color value from a HIC_Show_Internal_XXX_Color()

    CALLING SEQUENCE

    HIC_Set_Internal_Vertex_Color (nr, int_color)
    ------------------------------------------------------------------
    nr    HT_Rendition    Rendition. Passed by reference
    int_color    HT_RGB32    new vertex color, in four-byte format (with platform-dependent order)
    ------------------------------------------------------------------

    Back


    HIC_Set_Vertex_Color

    PURPOSE

    Set the color used to draw shell vertices.

    CALLING SEQUENCE

    HIC_Set_Vertex_Color (nr, rgb)
    ------------------------------------------------------------------
    nr    HT_Rendition    Rendition. Passed by reference
    rgb    HT_RGB    new vertex color. Passed by reference
    ------------------------------------------------------------------

    Back



    HIC_Set_Visibility

    PURPOSE

    Reassigns visibility settings.

    CALLING SEQUENCE

    HIC_Set_Visibility (nr, visibility)

    -----------------------------------------------------------------------
    nr           HT_Rendition   Rendition created by HIC_New_Rendition.        
                                Passed by reference.                           
    visibility   int            Bitmask that specifies new visibility values.  
    -----------------------------------------------------------------------

    DETAILS

    This function is most useful in a segment callback. It can be used to provide view dependent geometry visibilities. The general method of using this routine is to do a HIC_Show_Visibility to obtain the bit values, modify the bit settings, obtain a new rendition, and then set the modified visibility in the new rendition. The specific bit value settings are available from Techsoft America Technical Support. 

    Back


    HIC_Set_Visibility_Locks

    PURPOSE

    Locks the vivibility setting of certain geometry at draw time.

    CALLING SEQUENCE

    HIC_Set_Visibility_Locks (nr, lock)
    -------------------------------------------------------------------------
    nr 
    HT_Rendition
    Rendition created with HIC_New_Rendition. 
    Passed by reference always 
    lock   
    Enumerated
    Type of geometry for visibility lock. 
    See below for details.
    -------------------------------------------------------------------------
    DETAILS:
    This function locks the visibility of the specified geometry elements in process at the callback point. This avoids having to set the callback on subsegments with local visibility settings. lock has one or more of the following symbolic constant values:

    Visibility_LINES
    Visibility_MARKERS
    Visibility_WINDOWS
    Visibility_TEXT
    Visibility_STRING_CURSORS
    Visibility_IMAGES
    Visibility_FACES
    Visibility_EDGES
    Visibility_LIGHTS
    Visibility_GEOMETRY
    Visibility_POLYGON_EDGES
    
    Visibility_GRID_EDGES
    Visibility_SHELL_EDGES
    Visibility_MESH_EDGES
    Visibility_SILHOUETTE_EDGES
    Visibility_PERIMETER_EDGES
    Visibility_MESH_QUAD_EDGES
    Visibility_HARD_EDGES
    Visibility_GENERIC_EDGES
    Visibility_FACE_LIGHTS
    Visibility_EDGE_LIGHTS
    Visibility_MARKER_LIGHTS
    Visibility_CUTTING_PLANES

    Back


    HIC_Set_Window_(attributes)

    PURPOSE

    Sets window color or contrast color attributes in the specified rendition.

    CALLING SEQUENCE

    HIC_Set_Window_Color (nr, rgb)

    HIC_Set_Window_Contrast_Color (nr, rg)

    HIC_Set_Window_Pattern (nr, pattern)

    -----------------------------------------------------------------------
    nr        HT_Rendition   Rendition created with HIC_New_Rendition.         
                             Passed by reference.                              
    rgb       HT_RGB         New color value. Passed by reference.             
    pattern   int            New pattern value. The values are enumerated in   
                             HIC_Set_Face_Pattern.                             
    -----------------------------------------------------------------------
    VARIANTS

    HIC_Set_Internal_Window_Color (nr, int_color)

    HIC_Set_Internal_Window_Contrast_Color (nr, int_color)

    -------------------------------------------------------------------------
    nr          HT_Rendition   Rendition created with HIC_New_Rendition.         
                               Passed by reference.                              
    int_color   HT_RGB32       New color value in four-byte color format (with   
                               order dependent on platform).                     
    -------------------------------------------------------------------------
    HIC_Set_User_Window_Pattern (nr, pattern)
    -----------------------------------------------------------------
    nr        HT_Rendition   Rendition created by HIC_New_Rendition.     
                             Passed by reference.                        
    pattern   pointer        Pointer to a pattern structure created by   
                             HIC_New_User_Pattern. Passed by reference.  
    -----------------------------------------------------------------

    DETAILS

    You can use these functions to set the window color and window contrast color attributes in a rendition created with HIC_New_Rendition. You should not attempt to change the window colors in the rendition passed to your callback function.

    NOTES

    Note that in classic HOOPS these window color attributes are set by the general Set_Color function rather than functions specific to the window color attributes.

    Back


    HIC_Set_Z_Range

    PURPOSE

    Implements the IM equivalent of the "depth range" rendering option.

    CALLING SEQUENCE

    HIC_Set_Z_Range (nr, near, far)

    -----------------------------------------------------------------
    nr     HT_Rendition     Rendition created with HIC_New_Rendition.
                            Passed by reference.
    near   float            Near Z-range. A number between 0 and 1.
    far    float            Far Z-range. A number between 0 and 1.
    -----------------------------------------------------------------

    Back

    NOTES

    near and far should be floating point values such that 0 <= near <= far <= 1. See the documentation for HC_Set_Rendering_Options ("depth range = xxx, yyy") for more details.