HImUtility

Functions

void

RegisterCallbacks

void

set_clip_rectangle

void

suppress_3d_geometry

void

draw_gradiated_window_background

void

draw_annotation_lines

void

draw_segment_in_background

void

draw_dc_polyline_infront

void

draw_device_independent_line_weights

void

drawTextInfront

void

visible_hlr_polyline

Detailed Description

class HImUtility

HImUtility contains a number of widely used IM callbacks. Callbacks are attributes of a segment and can be set in one of two ways. The first is by calling the 3dGS function #HC_Set_Callback(“callback_point = callbback_name”) or the by using the MVO method HImSetCallback(“callback_point”, “callback_name”). If you are using MVO then it is recommended that you use the HImSetCallback approach. The callback name and callback point are both documented for each callback below.

Public Static Functions

static void RegisterCallbacks()

This method registers all the callbacks in this class with 3dGS and the MVO IM Manager

static void set_clip_rectangle(HIC_Rendition const *nr, HIC_Segment_Info const *si)

This callback sets a rectilinear clip region on the segment. When you set this callback, you must set the user options of “left=i, right=j, top=k, bottom=l” on the segment that you want the clip performed. I, j, k and l are floating point numbers which define the world space borders of the clip region. The callback is called “HImUtility_set_clip_rectangle” and the callback point is “draw segment tree”.

static void suppress_3d_geometry(HIC_Rendition const *rendition, HIC_Geometry const *geo3)

This callback does not draw anything and consequently causes no geometry to be drawn for the segment it is set on. The callback is called “HImUtility_suppress_3d_geometry” and the callback point is “draw 3d geometry”.

static void draw_gradiated_window_background(HIC_Rendition const *rendition, HIC_Int_Rectangle const *extent)

This callback draws the window background in a gradiated fashion. It is no longer needed as this window coloring scheme is supported in 3dGS but is included for backward compatibility reasons. The callback is called “HImUtility_draw_gradiated_window_background” and the callback point is “draw window”.

static void draw_annotation_lines(HIC_Rendition const *nr, HIC_Polyline const *poly)

This callback only draws the lines in a segment if the visibility of text is on. Developers use it to easily turn off the visibility of leaders of annotation data. The callback is called “HImUtility_draw_annotation_lines” and the callback point is “draw 3d polyline”.

static void draw_segment_in_background(HIC_Rendition const *nr, HIC_DC_Point const points[], HIC_RGBA const colors[], HIC_Plane const planes[], HIC_Parameter const params[], HIC_Integer32 param_width, HIC_Parameter_Flags param_flags)

This callback draws all the faces of the shells in the segment in the back 10% of the scene forcing them to appear behind everything else in the scene. The callback is called “HImUtility_draw_segment_in_background” and the callback point is “draw dc reshaded triangle”.

static void draw_dc_polyline_infront(HIC_Rendition const *rendition, int count, HIC_DC_Point const geo3[])

This callback draws the lines in the front 1% of the scene forcing the lines to appear on top of everything else in the scene. The callback is called “HImUtility_draw_dc_polyline_infront” and the callback point is “draw dc polyline”.

static void draw_device_independent_line_weights(HIC_Rendition const *rendition, int count, HIC_DC_Point const geo3[])

This callback draws the lines and edges with device independent weights. This is particularily useful in cases where you are using line/edge weights greater than 1 and want WYSIWYG printing. The callback is called “HImUtility_device_independent_polyline_weight” and the callback point is “draw dc polyline”.

static void drawTextInfront(HIC_Rendition const *rendition, HIC_Text_Info const *text_info)

This callback draws the text in the front 1% of the scene forcing the text to appear on top of everything else in the scene. The callback is called “HImUtility_draw_text_infront” and the callback point is “draw text”.

static void visible_hlr_polyline(HIC_Rendition const *rendition, int count, HIC_DC_Point const geo3[])

This callback was written to show users how to collect the output from a hidden line rendering of a scene.