qislib_mt_web_page_logo.gif

qismdraw API

The QisMDraw group of functions is used for displaying the view window on a screen or other display device.

api and classes for qislibm.so QisMlib API QisMFile API QisMExplode API QisMDraw API QisMBool API QisMView Super Class

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.

 

 

Data Structures

API Flags

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;

Cell Based Filtering Threshold

Sets (or Gets) a threshold value (in pixels) to filter (not to process) cell references (i.e. placements) that are smaller than the threshold. The purpose of this parameter is to help speed up the display when there are many small cells in the view window that are so small as to not provide useful visual information to the user.

This setting only affects cell references. If it's value is smaller than Set_display_filter_size, then the setting for Set_display_filter_size is used instead.

How the cell 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.

Methods such as Set_cell_display_filter_outline_color, Set_cell_display_filter_fill_color, Set_cell_display_filter_color or Set_cell_display_filter_pattern can determine how these areas are drawn in an image.

If sizeInPixel is 0, cell filtering is OFF..

Changing the extents of the current view window will change the size of a cell placement 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_draw_filtered_areas(const QisMDrawFlag::FilterArea mode) = 0;
  virtual QisMDrawFlag::FilterArea Get_draw_filtered_areas() const = 0;

Parameters

mode: One of the QisMDrawFlag::FilterArea flags

Outline Color for Filtered Areas

Sets (or Gets) the outline color used when returning filtered areas.

  virtual void Set_cell_display_filter_outline_color(const QisMColor& color) = 0;
  virtual const QisMColor& Get_cell_display_filter_outline_color() const = 0;

Parameters

color: R,G,B values for the outline color

Fill Color for Filtered Areas

Sets (or Gets) the fill color used when returning filtered areas.

  virtual void Set_cell_display_filter_fill_color(const QisMColor& color) = 0;
  virtual const QisMColor& Get_cell_display_filter_fill_color() const = 0;

Parameters

color: R,G,B values for the outline color

Display Reference Outlines, Labels and Markers



This group of functions is useful for a display client when the client wants to illustrate the placement of cells by returning the outline of each placed cell. Actual geometries within the cell need not be displayed.

example of structure reference outline and label - the structure reference markers are also turned on.

Show/Hide Cell Placement Outlines

Show/Hide labels for single references (not arrays) at the specified nesting level

  virtual void Set_cell_outline_label_sref(const bool onOff) = 0;
  virtual bool Get_cell_outline_label_sref() const = 0;

Show/Hide Arrayed Cell Placement Outlines

Show/Hide labels and outlines for array references at the specified nesting level

  virtual void Set_cell_outline_label_aref(const bool onOff) = 0;
  virtual bool Get_cell_outline_label_aref() const = 0;

Display Reference Labels

Display cell-name labels for cell references at select nesting levels. The user can specify that this be done for all nesting levels, no nesting levels, or a list of nesting levels.

  virtual void Set_cell_labels(const char* options) = 0;
  virtual const char* Get_cell_labels() const = 0;

Label Position

This function Set/Get the label position for cell reference outlines when displayed at a given nesting level. Labels can be positioned at the cell placement location or can be centered to the cell placement exents. Default: LPF_CENTER

virtual void Set_cell_label_position(const QisMDrawFlag::LabelPos pos) = 0;
virtual QisMDrawFlag::LabelPos Get_cell_label_position() const = 0;

Label Height

Set/Get the height of cell reference labels (in pixels) when displayed at a given nesting level. Default: 10 pixels)

  virtual void Set_cell_label_height(const int heightInPx) = 0;
  virtual int Set_cell_label_height() const = 0;

Display an outline for cell reference extents box at select nesting levels
  virtual void Set_cell_outline(const char* options) = 0;
  virtual const char* Get_cell_outline() const = 0;