|
OCCT-Light 0.1
C ABI and C++ veneer for multi-language CAD workflows
|
OCCT-Light: graph-native visualization module public API. More...
#include <stddef.h>#include <stdint.h>#include "occtl_core.h"#include "occtl_geom.h"#include "occtl_topo.h"

Go to the source code of this file.
Classes | |
| struct | occtl_viz_driver_options |
| struct | occtl_viz_view_options |
| struct | occtl_viz_camera |
| struct | occtl_viz_pick_result |
Macros | |
| #define | OCCTL_VIZ_DRIVER_OPTIONS_VERSION_1 1u |
| #define | OCCTL_VIZ_VIEW_OPTIONS_VERSION_1 1u |
| #define | OCCTL_VIZ_DRIVER_OPTIONS_INIT {OCCTL_VIZ_DRIVER_OPTIONS_VERSION_1, NULL, 1, 1} |
| #define | OCCTL_VIZ_VIEW_OPTIONS_INIT {OCCTL_VIZ_VIEW_OPTIONS_VERSION_1, NULL, 640, 480, NULL, 1} |
| #define | OCCTL_VIZ_PICK_RESULT_VERSION_1 1u |
| #define | OCCTL_VIZ_PICK_RESULT_INIT |
Typedefs | |
| typedef struct occtl_viz_driver | occtl_viz_driver_t |
| typedef struct occtl_viz_viewer | occtl_viz_viewer_t |
| typedef struct occtl_viz_view | occtl_viz_view_t |
| typedef struct occtl_viz_presentable | occtl_viz_presentable_t |
| typedef enum occtl_viz_display_mode | occtl_viz_display_mode_t |
| typedef enum occtl_viz_selection_mode | occtl_viz_selection_mode_t |
| typedef enum occtl_viz_standard_view | occtl_viz_standard_view_t |
| typedef struct occtl_viz_driver_options | occtl_viz_driver_options_t |
| typedef struct occtl_viz_view_options | occtl_viz_view_options_t |
| typedef struct occtl_viz_camera | occtl_viz_camera_t |
| typedef struct occtl_viz_pick_result | occtl_viz_pick_result_t |
Enumerations | |
| enum | occtl_viz_display_mode { OCCTL_VIZ_DISPLAY_WIREFRAME = 0 , OCCTL_VIZ_DISPLAY_SHADED = 1 , OCCTL_VIZ_DISPLAY_SHADED_WITH_EDGES = 10 , OCCTL_VIZ_DISPLAY_MESH_DEBUG = 11 , OCCTL_VIZ_DISPLAY_RESERVED_FUTURE = 0x7fffffff } |
| enum | occtl_viz_selection_mode { OCCTL_VIZ_SELECT_WHOLE = 0 , OCCTL_VIZ_SELECT_FACE = 1 , OCCTL_VIZ_SELECT_EDGE = 2 , OCCTL_VIZ_SELECT_VERTEX = 3 , OCCTL_VIZ_SELECT_WIRE = 4 , OCCTL_VIZ_SELECT_SHELL = 5 , OCCTL_VIZ_SELECT_SOLID = 6 , OCCTL_VIZ_SELECT_COEDGE = 7 , OCCTL_VIZ_SELECT_PRODUCT = 8 , OCCTL_VIZ_SELECT_COMPOUND = 9 , OCCTL_VIZ_SELECT_COMPSOLID = 10 , OCCTL_VIZ_SELECT_RESERVED_FUTURE = 0x7fffffff } |
| enum | occtl_viz_standard_view { OCCTL_VIZ_VIEW_FRONT = 0 , OCCTL_VIZ_VIEW_BACK = 1 , OCCTL_VIZ_VIEW_LEFT = 2 , OCCTL_VIZ_VIEW_RIGHT = 3 , OCCTL_VIZ_VIEW_TOP = 4 , OCCTL_VIZ_VIEW_BOTTOM = 5 , OCCTL_VIZ_VIEW_ISO = 6 , OCCTL_VIZ_VIEW_RESERVED_FUTURE = 0x7fffffff } |
OCCT-Light: graph-native visualization module public API.
The visualization module is an opt-in heavy integration over OCCT's native viewer stack. It displays BRepGraph roots through AIS_BRepGraph and exposes only OCCT-Light handles, IDs, POD options, and status codes.
| #define OCCTL_VIZ_DRIVER_OPTIONS_INIT {OCCTL_VIZ_DRIVER_OPTIONS_VERSION_1, NULL, 1, 1} |
Static initializer for occtl_viz_driver_options_t.
| #define OCCTL_VIZ_PICK_RESULT_INIT |
| #define OCCTL_VIZ_VIEW_OPTIONS_INIT {OCCTL_VIZ_VIEW_OPTIONS_VERSION_1, NULL, 640, 480, NULL, 1} |
Static initializer for occtl_viz_view_options_t.
| typedef struct occtl_viz_camera occtl_viz_camera_t |
| typedef enum occtl_viz_display_mode occtl_viz_display_mode_t |
Display mode used for graph presentables.
\par Thread Safety Yes.
| typedef struct occtl_viz_driver_options occtl_viz_driver_options_t |
Versioned options for occtl_viz_driver_create().
Initialize with OCCTL_VIZ_DRIVER_OPTIONS_INIT or occtl_viz_driver_options_init() before use.
\par Thread Safety Yes.
| typedef struct occtl_viz_driver occtl_viz_driver_t |
Opaque process-local visualization driver handle.
Created with occtl_viz_driver_create and released with occtl_viz_driver_free. A driver must outlive viewers created from it.
\par Thread Safety No. Use on the rendering/native-window owner thread.
| typedef struct occtl_viz_pick_result occtl_viz_pick_result_t |
Graph identity returned by occtl_viz_view_pick().
\par Thread Safety Yes.
| typedef struct occtl_viz_presentable occtl_viz_presentable_t |
Opaque display object for a BRepGraph root.
Created with occtl_viz_presentable_create and released with occtl_viz_presentable_free. A presentable borrows its source graph; keep the graph alive until the presentable is freed.
\par Thread Safety No. Use on the rendering/native-window owner thread.
| typedef enum occtl_viz_selection_mode occtl_viz_selection_mode_t |
| typedef enum occtl_viz_standard_view occtl_viz_standard_view_t |
| typedef struct occtl_viz_view_options occtl_viz_view_options_t |
Versioned options for occtl_viz_view_create().
Initialize with OCCTL_VIZ_VIEW_OPTIONS_INIT or occtl_viz_view_options_init() before use.
\par Thread Safety Yes.
| typedef struct occtl_viz_view occtl_viz_view_t |
Opaque native or offscreen view handle.
Created with occtl_viz_view_create and released with occtl_viz_view_free. When a native window handle is supplied in occtl_viz_view_options_t, the view borrows that handle; the host UI toolkit remains responsible for it.
\par Thread Safety No. Use on the rendering/native-window owner thread.
| typedef struct occtl_viz_viewer occtl_viz_viewer_t |
Opaque viewer handle.
Created with occtl_viz_viewer_create and released with occtl_viz_viewer_free. A viewer must outlive views and presentables created from it.
\par Thread Safety No. Use on the rendering/native-window owner thread.
Display mode used for graph presentables.
\par Thread Safety Yes.
Graph-native selection mode.
\par Thread Safety Yes.
Standard camera orientation.
\par Thread Safety Yes.
| occtl_status_t occtl_viz_driver_create | ( | const occtl_viz_driver_options_t * | options, |
| occtl_viz_driver_t ** | out_driver | ||
| ) |
Creates the process-local visualization driver.
The returned handle owns the visualization driver state and must be released with occtl_viz_driver_free. Pass NULL for options to use OCCTL_VIZ_DRIVER_OPTIONS_INIT defaults.
| [in] | options | Borrows it. Optional; NULL uses defaults. |
| [out] | out_driver | Owns it. Must be non-NULL. On success receives a new driver handle; on failure receives NULL. |
| OCCTL_OK | Driver created. |
| OCCTL_INVALID_ARGUMENT | out_driver is NULL. |
| OCCTL_VERSION_MISMATCH | options has an unsupported version. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| void occtl_viz_driver_free | ( | occtl_viz_driver_t * | driver | ) |
Frees a visualization driver.
Child viewers, views, and presentables created from driver must already be freed. Passing NULL is a no-op.
| [in] | driver | Owns it. NULL is accepted. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| void occtl_viz_driver_options_init | ( | occtl_viz_driver_options_t * | options | ) |
Runtime initialiser for occtl_viz_driver_options_t.
Sets all fields to OCCTL_VIZ_DRIVER_OPTIONS_INIT.
| [out] | options | Borrows it. NULL-tolerant; no-op when NULL. |
\par Thread Safety Yes.
| void occtl_viz_pick_result_init | ( | occtl_viz_pick_result_t * | pick | ) |
Runtime initialiser for occtl_viz_pick_result_t.
Sets all fields to OCCTL_VIZ_PICK_RESULT_INIT.
| [out] | pick | Borrows it. NULL-tolerant; no-op when NULL. |
\par Thread Safety Yes.
| occtl_status_t occtl_viz_presentable_clear_visible_nodes | ( | occtl_viz_presentable_t * | presentable | ) |
Clears a visible node mask.
| [in] | presentable | Borrows it. Must be non-NULL. |
| OCCTL_OK | Mask cleared. |
| OCCTL_INVALID_ARGUMENT | presentable is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_presentable_create | ( | occtl_viz_viewer_t * | viewer, |
| occtl_graph_t * | graph, | ||
| occtl_node_id_t | root, | ||
| occtl_viz_presentable_t ** | out_presentable | ||
| ) |
Creates a display object for a graph root.
The returned presentable borrows both viewer and graph. Keep both alive until the presentable is released with occtl_viz_presentable_free.
| [in] | viewer | Borrows it. Must be non-NULL. |
| [in] | graph | Borrows it. Must be non-NULL and must outlive the presentable. |
| [in] | root | Root node to display. |
| [out] | out_presentable | Owns it. Must be non-NULL. On success receives a new presentable handle; on failure receives NULL. |
| OCCTL_OK | Presentable created. |
| OCCTL_INVALID_ARGUMENT | viewer, graph, or out_presentable is NULL. |
| OCCTL_NOT_FOUND | root is not a valid display root. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| void occtl_viz_presentable_free | ( | occtl_viz_presentable_t * | presentable | ) |
Frees a presentable.
Passing NULL is a no-op.
| [in] | presentable | Owns it. NULL is accepted. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_presentable_invalidate | ( | occtl_viz_presentable_t * | presentable | ) |
Invalidates cached presentation state.
| [in] | presentable | Borrows it. Must be non-NULL. |
| OCCTL_OK | Cache invalidated. |
| OCCTL_INVALID_ARGUMENT | presentable is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_presentable_set_display_mode | ( | occtl_viz_presentable_t * | presentable, |
| occtl_viz_display_mode_t | mode | ||
| ) |
Sets the display mode for a presentable.
| [in] | presentable | Borrows it. Must be non-NULL. |
| [in] | mode | Display mode. |
| OCCTL_OK | Mode set. |
| OCCTL_INVALID_ARGUMENT | presentable is NULL. |
| OCCTL_OUT_OF_RANGE | mode is not valid. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_presentable_set_visible_nodes | ( | occtl_viz_presentable_t * | presentable, |
| const occtl_node_id_t * | nodes, | ||
| size_t | n_nodes | ||
| ) |
Restricts display to a visible node mask.
| [in] | presentable | Borrows it. Must be non-NULL. |
| [in] | nodes | Borrows it. Optional array of node IDs. |
| [in] | n_nodes | Number of entries in nodes. |
| OCCTL_OK | Mask applied. |
| OCCTL_INVALID_ARGUMENT | presentable is NULL or nodes is NULL with non-zero count. |
| OCCTL_NOT_FOUND | An entry in nodes is not a valid node ID. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_presentable_synchronize | ( | occtl_viz_presentable_t * | presentable, |
| int32_t * | out_has_changed | ||
| ) |
Synchronizes a presentable after graph or metadata changes.
| [in] | presentable | Borrows it. Must be non-NULL. |
| [out] | out_has_changed | Borrows it. Must be non-NULL; receives a 0/1 changed flag. |
| OCCTL_OK | Synchronization completed. |
| OCCTL_INVALID_ARGUMENT | presentable or out_has_changed is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_activate_selection | ( | occtl_viz_view_t * | view, |
| occtl_viz_presentable_t * | presentable, | ||
| occtl_viz_selection_mode_t | mode | ||
| ) |
Activates graph-native selection for a presentable.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | presentable | Borrows it. Must be non-NULL. |
| [in] | mode | Selection mode. |
| OCCTL_OK | Selection activated. |
| OCCTL_INVALID_ARGUMENT | A required handle is NULL. |
| OCCTL_OUT_OF_RANGE | mode is not valid. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_create | ( | occtl_viz_viewer_t * | viewer, |
| const occtl_viz_view_options_t * | options, | ||
| occtl_viz_view_t ** | out_view | ||
| ) |
Creates a native or offscreen view.
The returned view borrows viewer and must be freed before the viewer. Pass NULL for options to use OCCTL_VIZ_VIEW_OPTIONS_INIT defaults.
| [in] | viewer | Borrows it. Must be non-NULL. |
| [in] | options | Borrows it. Optional; NULL uses defaults. |
| [out] | out_view | Owns it. Must be non-NULL. On success receives a new view handle; on failure receives NULL. |
| OCCTL_OK | View created. |
| OCCTL_INVALID_ARGUMENT | viewer or out_view is NULL. |
| OCCTL_VERSION_MISMATCH | options has an unsupported version. |
| OCCTL_OUT_OF_RANGE | options has a non-positive width or height. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_display | ( | occtl_viz_view_t * | view, |
| occtl_viz_presentable_t * | presentable | ||
| ) |
Displays a presentable in a view.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | presentable | Borrows it. Must be non-NULL. |
| OCCTL_OK | Displayed. |
| OCCTL_INVALID_ARGUMENT | A required handle is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_dump_image | ( | occtl_viz_view_t * | view, |
| const char * | path | ||
| ) |
Dumps a view image to a PNG path when OCCT image codecs are available.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | path | Borrows it. UTF-8 destination path. |
| OCCTL_OK | Image written. |
| OCCTL_INVALID_ARGUMENT | A required pointer is NULL. |
| OCCTL_IO_ERROR | The image could not be written. |
| OCCTL_UNSUPPORTED | Image dumping is unavailable. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_erase | ( | occtl_viz_view_t * | view, |
| occtl_viz_presentable_t * | presentable | ||
| ) |
Erases a presentable from a view.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | presentable | Borrows it. Must be non-NULL. |
| OCCTL_OK | Erased. |
| OCCTL_INVALID_ARGUMENT | A required handle is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_fit_all | ( | occtl_viz_view_t * | view | ) |
Fits all displayed content.
| [in] | view | Borrows it. Must be non-NULL. |
| OCCTL_OK | Camera fitted. |
| OCCTL_INVALID_ARGUMENT | view is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| void occtl_viz_view_free | ( | occtl_viz_view_t * | view | ) |
Frees a view.
Passing NULL is a no-op.
| [in] | view | Owns it. NULL is accepted. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_get_camera | ( | const occtl_viz_view_t * | view, |
| occtl_viz_camera_t * | out_camera | ||
| ) |
Gets the camera.
| [in] | view | Borrows it. Must be non-NULL. |
| [out] | out_camera | Borrows it. Must be non-NULL. |
| OCCTL_OK | Camera returned. |
| OCCTL_INVALID_ARGUMENT | A required pointer is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| void occtl_viz_view_options_init | ( | occtl_viz_view_options_t * | options | ) |
Runtime initialiser for occtl_viz_view_options_t.
Sets all fields to OCCTL_VIZ_VIEW_OPTIONS_INIT.
| [out] | options | Borrows it. NULL-tolerant; no-op when NULL. |
\par Thread Safety Yes.
| occtl_status_t occtl_viz_view_orbit_start | ( | occtl_viz_view_t * | view, |
| int32_t | x, | ||
| int32_t | y | ||
| ) |
Starts an orbit interaction.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | x | Start x coordinate. |
| [in] | y | Start y coordinate. |
| OCCTL_OK | Orbit started. |
| OCCTL_INVALID_ARGUMENT | view is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_orbit_update | ( | occtl_viz_view_t * | view, |
| int32_t | x, | ||
| int32_t | y | ||
| ) |
Updates an orbit interaction.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | x | Current x coordinate. |
| [in] | y | Current y coordinate. |
| OCCTL_OK | Orbit updated. |
| OCCTL_INVALID_ARGUMENT | view is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_pan | ( | occtl_viz_view_t * | view, |
| int32_t | dx, | ||
| int32_t | dy | ||
| ) |
Pans the camera by screen-space pixels.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | dx | Horizontal delta in pixels. |
| [in] | dy | Vertical delta in pixels. |
| OCCTL_OK | Camera panned. |
| OCCTL_INVALID_ARGUMENT | view is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_pick | ( | occtl_viz_view_t * | view, |
| int32_t | x, | ||
| int32_t | y, | ||
| int32_t | select, | ||
| occtl_viz_pick_result_t * | out_pick | ||
| ) |
Moves/selects at a screen point and returns graph identity.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | x | Screen x coordinate. |
| [in] | y | Screen y coordinate. |
| [in] | select | 0/1; non-zero performs selection, zero only detects. |
| [out] | out_pick | Borrows it. Must be non-NULL. |
| OCCTL_OK | Pick result returned. |
| OCCTL_INVALID_ARGUMENT | A required pointer is NULL. |
| OCCTL_NOT_FOUND | Nothing graph-native was detected. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_read_pixels_rgba | ( | occtl_viz_view_t * | view, |
| uint8_t * | out_rgba, | ||
| size_t | cap, | ||
| size_t * | out_count | ||
| ) |
Reads view pixels as tightly packed RGBA bytes.
| [in] | view | Borrows it. Must be non-NULL. |
| [out] | out_rgba | Borrows it. Optional buffer; NULL performs sizing only. |
| [in] | cap | Capacity of out_rgba in bytes. |
| [out] | out_count | Borrows it. Receives required or written byte count. |
| OCCTL_OK | Pixels written. |
| OCCTL_INVALID_ARGUMENT | view or out_count is NULL. |
| OCCTL_BUFFER_TOO_SMALL | cap is too small for the current view size. |
| OCCTL_OUT_OF_MEMORY | Temporary pixel storage could not be allocated. |
| OCCTL_UNSUPPORTED | Offscreen pixel extraction is unavailable. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_redraw | ( | occtl_viz_view_t * | view | ) |
Redraws a view.
| [in] | view | Borrows it. Must be non-NULL. |
| OCCTL_OK | Redrawn. |
| OCCTL_INVALID_ARGUMENT | view is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_resize | ( | occtl_viz_view_t * | view, |
| int32_t | width, | ||
| int32_t | height | ||
| ) |
Resizes a view.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | width | New width in pixels. |
| [in] | height | New height in pixels. |
| OCCTL_OK | View resized. |
| OCCTL_INVALID_ARGUMENT | view is NULL. |
| OCCTL_OUT_OF_RANGE | width or height is non-positive. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_set_background | ( | occtl_viz_view_t * | view, |
| occtl_color_rgba_t | color | ||
| ) |
Sets the view background color.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | color | Background color. |
| OCCTL_OK | Color set. |
| OCCTL_INVALID_ARGUMENT | view is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_set_camera | ( | occtl_viz_view_t * | view, |
| const occtl_viz_camera_t * | camera | ||
| ) |
Sets the camera.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | camera | Borrows it. Must be non-NULL. |
| OCCTL_OK | Camera set. |
| OCCTL_INVALID_ARGUMENT | A required pointer is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_set_standard_view | ( | occtl_viz_view_t * | view, |
| occtl_viz_standard_view_t | standard_view | ||
| ) |
Sets a standard camera orientation.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | standard_view | Standard view orientation. |
| OCCTL_OK | Orientation set. |
| OCCTL_INVALID_ARGUMENT | view is NULL. |
| OCCTL_OUT_OF_RANGE | standard_view is not valid. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_view_zoom | ( | occtl_viz_view_t * | view, |
| int32_t | x1, | ||
| int32_t | y1, | ||
| int32_t | x2, | ||
| int32_t | y2 | ||
| ) |
Zooms using two screen-space points.
| [in] | view | Borrows it. Must be non-NULL. |
| [in] | x1 | First x coordinate. |
| [in] | y1 | First y coordinate. |
| [in] | x2 | Second x coordinate. |
| [in] | y2 | Second y coordinate. |
| OCCTL_OK | Camera zoomed. |
| OCCTL_INVALID_ARGUMENT | view is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| occtl_status_t occtl_viz_viewer_create | ( | occtl_viz_driver_t * | driver, |
| occtl_viz_viewer_t ** | out_viewer | ||
| ) |
Creates a viewer from a visualization driver.
The returned viewer borrows driver and must be freed before the driver.
| [in] | driver | Borrows it. Must be non-NULL. |
| [out] | out_viewer | Owns it. Must be non-NULL. On success receives a new viewer handle; on failure receives NULL. |
| OCCTL_OK | Viewer created. |
| OCCTL_INVALID_ARGUMENT | driver or out_viewer is NULL. |
\par Thread Safety No. Call on the rendering/native-window owner thread.
| void occtl_viz_viewer_free | ( | occtl_viz_viewer_t * | viewer | ) |
Frees a viewer.
Views and presentables created from viewer must already be freed. Passing NULL is a no-op.
| [in] | viewer | Owns it. NULL is accepted. |
\par Thread Safety No. Call on the rendering/native-window owner thread.