The QisMDraw group of functions is used for displaying the view window on a screen or other display device.
Click on any of the API class boxes in the illustration to get details on specific functions.
Drawing API Functions
These functions perform various drawing operations and also control the drawing settings. Prior to using this set of APIs the client will have used QisMLib to load a layout file (and QisMFile to control the loading) and to get a handle for this extension.
Setting Fills, Outlines and Filtering and other Display Behavior
The following functions are used to set up the colors, outline characteristics and fill patterns prior to rendering the view area. There are quite a lot of settings. It is pretty common for a client to save all the settings in a file (or the Windows registry) and to use it to re-load the user's previous settings.
Set (or Get) Background Color
virtual void Set_background_color(const QisMDrawFlag::BackgroundColor color) = 0; virtual QisMDrawFlag::BackgroundColor Get_background_color() const = 0;
Show/Hide Markers for Cell References
virtual void Set_reference_marker(const bool onOff) = 0; virtual bool Get_reference_marker() const = 0;
Show/Hide Single Reference Markers
virtual void Set_sref_marker(const bool onOff) = 0; virtual bool Get_sref_marker() const = 0;;
Show/Hide Array Reference Markers
virtual void Set_text_marker(const bool onOff) = 0; virtual bool Get_text_marker() const = 0;
Show/Hide Geometry Markers
virtual void Set_geometry_marker(const char* options) = 0; virtual const char* Get_geometry_marker() const = 0;
Set/Get the shape for reference/text/geometry markers
virtual void Set_marker_shape(const QisMDrawFlag::MarkerShape shape) = 0; virtual QisMDrawFlag::MarkerShape Get_marker_shape() const = 0;
Show/Hide scale bar at any one corner of the screen
virtual void Set_scale_bar(const QisMDrawFlag::ScaleBarPos pos) = 0; virtual QisMDrawFlag::ScaleBarPos Get_scale_bar() const = 0;
Display cell-name labels for cell references at select nesting levels
virtual void Set_cell_labels(const char* options) = 0; virtual const char* Get_cell_labels() const = 0;
Display Filtering for Faster Viewing
Pixel Based Filtering Threshold
Sets (or Gets) a threshold value (in pixels) to filter (not to process) items that are smaller than the threshold. The purpose of this parameter is to help speed up the display when there are many objects in the view window that are so small as to not provide useful visual information to the user.
How the threshold affects the returned data depends also on the operation being performed - e.g during Get_display_vector_data, filtered data appears as QisMVector::FILTERED vector. During a Redraw_direct / Redraw Image / Get Partial Image operation, the filtered data may appaear as a solid colored box.
This threshold setting takes precedence over the Set_cell_display_filter_size setting that controls filtering based on cell dimensions.
If sizeInPixel is 0, filtering is OFF and all data will be processed.
Changing the extents of the current view window will change the size of an item in pixels (for the same image size) and may qualify/disqualify it for filtering. (As a user "zooms" into a layout, geometries that were filtered may grow in size past the filter threshold and thereby qualify for rendering.)
If not set, the default value = 20 pixels. This has been done so that when a full extents layout is opened, the library does not spend too much time attempting to render objects that are quite small.
By starting with a non-zero value for this filter, display speed is significantly accelerated.
virtual void Set_display_filter_size(const int sizeInPixel) = 0; virtual int Get_display_filter_size() const = 0;