Skip to content

Visuals And Composites API

Retained visual families, semantic composites, visual styles, and visual data setters.

Status: stable

This generated page lists exported C functions and their canonical public types classified by the v0.4 C API reference policy. Raw Python ctypes call forms are documented separately.

Use this page when you know the visual family, composite, geometry helper, or visual data setter you need.

Common workflows:

Functions: 224 Types: 90

Symbol Groups

Group Functions Types Headers
Band 6 2 include/datoviz/scene/plot.h, include/datoviz/scene/types.h
Bars 5 3 include/datoviz/scene/plot.h, include/datoviz/scene/types.h
Bezier 1 1 include/datoviz/geom.h, include/datoviz/geom/types.h
Composite 4 1 include/datoviz/scene.h, include/datoviz/scene/types.h
Depth Cueing 2 4 3 headers
Geometry 38 22 3 headers
Glyph 2 0 include/datoviz/scene.h
Graph 16 3 3 headers
Image 2 1 include/datoviz/scene.h, include/datoviz/scene/enums.h
Labels 11 1 include/datoviz/scene.h, include/datoviz/scene/types.h
Limb 0 1 include/datoviz/scene/types.h
Marker 5 2 3 headers
Materials 5 4 3 headers
Mesh 2 0 include/datoviz/scene.h
Path 4 1 include/datoviz/scene.h, include/datoviz/scene/enums.h
Pixel 1 0 include/datoviz/scene.h
Point 3 1 include/datoviz/scene.h, include/datoviz/scene/types.h
Polygon 16 4 4 headers
Polygons 17 1 include/datoviz/scene.h, include/datoviz/scene/types.h
Primitive 1 0 include/datoviz/scene.h
Segment 2 1 include/datoviz/scene.h, include/datoviz/scene/enums.h
Sphere 2 2 include/datoviz/scene.h, include/datoviz/scene/enums.h
Splat 1 0 include/datoviz/scene.h
Symbol 7 5 3 headers
Tessellate 2 0 include/datoviz/geom.h
Tessellated 1 1 include/datoviz/geom.h, include/datoviz/geom/types.h
Triangulate 1 0 include/datoviz/geom.h
Triangulation 1 2 3 headers
Vector 4 2 3 headers
Visual 46 20 6 headers
Volume 16 5 3 headers
Grouped function index

Band

Function Header
dvz_band() include/datoviz/scene/plot.h
dvz_band_desc() include/datoviz/scene/plot.h
dvz_band_set_bounds() include/datoviz/scene/plot.h
dvz_band_set_center() include/datoviz/scene/plot.h
dvz_band_set_style() include/datoviz/scene/plot.h
dvz_band_visual() include/datoviz/scene/plot.h

Bars

Function Header
dvz_bars() include/datoviz/scene/plot.h
dvz_bars_desc() include/datoviz/scene/plot.h
dvz_bars_set_intervals() include/datoviz/scene/plot.h
dvz_bars_set_style() include/datoviz/scene/plot.h
dvz_bars_visual() include/datoviz/scene/plot.h

Bezier

Function Header
dvz_bezier_tessellation_desc() include/datoviz/geom.h

Composite

Function Header
dvz_composite_destroy() include/datoviz/scene.h
dvz_composite_visual() include/datoviz/scene.h
dvz_composite_visual_at() include/datoviz/scene.h
dvz_composite_visual_count() include/datoviz/scene.h

Depth Cueing

Function Header
dvz_depth_cue_desc() include/datoviz/scene.h
dvz_visual_set_depth_cue() include/datoviz/scene.h

Geometry

Function Header
dvz_geometry() include/datoviz/geom.h
dvz_geometry_arrow() include/datoviz/geom.h
dvz_geometry_arrow_desc() include/datoviz/geom.h
dvz_geometry_bounds() include/datoviz/geom.h
dvz_geometry_compute_normals() include/datoviz/geom.h
dvz_geometry_cone() include/datoviz/geom.h
dvz_geometry_cone_desc() include/datoviz/geom.h
dvz_geometry_contours() include/datoviz/geom.h
dvz_geometry_contours_destroy() include/datoviz/geom.h
dvz_geometry_cube() include/datoviz/geom.h
dvz_geometry_cube_desc() include/datoviz/geom.h
dvz_geometry_cylinder() include/datoviz/geom.h
dvz_geometry_cylinder_desc() include/datoviz/geom.h
dvz_geometry_destroy() include/datoviz/geom.h
dvz_geometry_disc() include/datoviz/geom.h
dvz_geometry_disc_desc() include/datoviz/geom.h
dvz_geometry_edges() include/datoviz/geom.h
dvz_geometry_edges_destroy() include/datoviz/geom.h
dvz_geometry_merge() include/datoviz/geom.h
dvz_geometry_obj() include/datoviz/geom.h
dvz_geometry_obj_desc() include/datoviz/geom.h
dvz_geometry_plane() include/datoviz/geom.h
dvz_geometry_plane_desc() include/datoviz/geom.h
dvz_geometry_regular_polygon() include/datoviz/geom.h
dvz_geometry_regular_polygon_desc() include/datoviz/geom.h
dvz_geometry_reset() include/datoviz/geom.h
dvz_geometry_sector() include/datoviz/geom.h
dvz_geometry_sector_desc() include/datoviz/geom.h
dvz_geometry_sphere() include/datoviz/geom.h
dvz_geometry_sphere_desc() include/datoviz/geom.h
dvz_geometry_star() include/datoviz/geom.h
dvz_geometry_star_desc() include/datoviz/geom.h
dvz_geometry_surface_grid() include/datoviz/geom.h
dvz_geometry_surface_grid_desc() include/datoviz/geom.h
dvz_geometry_surface_grid_update_heights() include/datoviz/geom.h
dvz_geometry_torus() include/datoviz/geom.h
dvz_geometry_torus_desc() include/datoviz/geom.h
dvz_geometry_transform() include/datoviz/geom.h

Glyph

Function Header
dvz_glyph() include/datoviz/scene.h
dvz_glyph_set_atlas() include/datoviz/scene.h

Graph

Function Header
dvz_graph() include/datoviz/scene.h
dvz_graph_composite() include/datoviz/scene.h
dvz_graph_destroy() include/datoviz/scene.h
dvz_graph_edge_style() include/datoviz/scene.h
dvz_graph_set_edge_colors() include/datoviz/scene.h
dvz_graph_set_edge_controls() include/datoviz/scene.h
dvz_graph_set_edge_count() include/datoviz/scene.h
dvz_graph_set_edge_endpoints() include/datoviz/scene.h
dvz_graph_set_edge_ids() include/datoviz/scene.h
dvz_graph_set_edge_style() include/datoviz/scene.h
dvz_graph_set_edge_widths() include/datoviz/scene.h
dvz_graph_set_node_colors() include/datoviz/scene.h
dvz_graph_set_node_count() include/datoviz/scene.h
dvz_graph_set_node_ids() include/datoviz/scene.h
dvz_graph_set_node_positions() include/datoviz/scene.h
dvz_graph_set_node_sizes() include/datoviz/scene.h

Image

Function Header
dvz_image() include/datoviz/scene.h
dvz_image_set_sampling() include/datoviz/scene.h

Labels

Function Header
dvz_labels() include/datoviz/scene.h
dvz_labels_clear_selected() include/datoviz/scene.h
dvz_labels_set_background() include/datoviz/scene.h
dvz_labels_set_boundary() include/datoviz/scene.h
dvz_labels_set_fallback_seed() include/datoviz/scene.h
dvz_labels_set_hidden() include/datoviz/scene.h
dvz_labels_set_opacity() include/datoviz/scene.h
dvz_labels_set_selected() include/datoviz/scene.h
dvz_labels_set_slice_axis() include/datoviz/scene.h
dvz_labels_set_slice_position() include/datoviz/scene.h
dvz_labels_state() include/datoviz/scene.h

Marker

Function Header
dvz_marker() include/datoviz/scene.h
dvz_marker_set_style() include/datoviz/scene.h
dvz_marker_set_symbol() include/datoviz/scene.h
dvz_marker_set_symbols() include/datoviz/scene.h
dvz_marker_style() include/datoviz/scene.h

Materials

Function Header
dvz_limb_material_desc() include/datoviz/scene.h
dvz_material_desc() include/datoviz/scene.h
dvz_phong_material_desc() include/datoviz/scene.h
dvz_standard_material_desc() include/datoviz/scene.h
dvz_visual_set_material() include/datoviz/scene.h

Mesh

Function Header
dvz_mesh() include/datoviz/scene.h
dvz_mesh_set_geometry() include/datoviz/scene.h

Path

Function Header
dvz_path() include/datoviz/scene.h
dvz_path_set_caps() include/datoviz/scene.h
dvz_path_set_join() include/datoviz/scene.h
dvz_path_set_subpaths() include/datoviz/scene.h

Pixel

Function Header
dvz_pixel() include/datoviz/scene.h

Point

Function Header
dvz_point() include/datoviz/scene.h
dvz_point_set_style() include/datoviz/scene.h
dvz_point_style_desc() include/datoviz/scene.h

Polygon

Function Header
dvz_polygon() include/datoviz/scene.h
dvz_polygon_composite() include/datoviz/scene.h
dvz_polygon_desc() include/datoviz/geom.h
dvz_polygon_destroy() include/datoviz/scene.h
dvz_polygon_set_fill_color() include/datoviz/scene.h
dvz_polygon_set_geometry() include/datoviz/scene.h
dvz_polygon_set_hole() include/datoviz/scene.h
dvz_polygon_set_id() include/datoviz/scene.h
dvz_polygon_set_outer() include/datoviz/scene.h
dvz_polygon_set_stroke_caps() include/datoviz/scene.h
dvz_polygon_set_stroke_color() include/datoviz/scene.h
dvz_polygon_set_stroke_join() include/datoviz/scene.h
dvz_polygon_set_stroke_width_px() include/datoviz/scene.h
dvz_polygon_set_style() include/datoviz/scene.h
dvz_polygon_set_visible() include/datoviz/scene.h
dvz_polygon_style() include/datoviz/scene.h

Polygons

Function Header
dvz_polygons() include/datoviz/scene.h
dvz_polygons_add_region() include/datoviz/scene.h
dvz_polygons_composite() include/datoviz/scene.h
dvz_polygons_destroy() include/datoviz/scene.h
dvz_polygons_set_region_fill_color() include/datoviz/scene.h
dvz_polygons_set_region_fill_colors() include/datoviz/scene.h
dvz_polygons_set_region_geometry() include/datoviz/scene.h
dvz_polygons_set_region_id() include/datoviz/scene.h
dvz_polygons_set_region_ids() include/datoviz/scene.h
dvz_polygons_set_region_stroke_color() include/datoviz/scene.h
dvz_polygons_set_region_stroke_colors() include/datoviz/scene.h
dvz_polygons_set_region_stroke_width_px() include/datoviz/scene.h
dvz_polygons_set_region_stroke_widths_px() include/datoviz/scene.h
dvz_polygons_set_region_visibilities() include/datoviz/scene.h
dvz_polygons_set_region_visible() include/datoviz/scene.h
dvz_polygons_set_stroke_caps() include/datoviz/scene.h
dvz_polygons_set_stroke_join() include/datoviz/scene.h

Primitive

Function Header
dvz_primitive() include/datoviz/scene.h

Segment

Function Header
dvz_segment() include/datoviz/scene.h
dvz_segment_set_caps() include/datoviz/scene.h

Sphere

Function Header
dvz_sphere() include/datoviz/scene.h
dvz_sphere_set_mode() include/datoviz/scene.h

Splat

Function Header
dvz_splat() include/datoviz/scene.h

Symbol

Function Header
dvz_symbol_bitmap() include/datoviz/scene.h
dvz_symbol_builtin() include/datoviz/scene.h
dvz_symbol_image_desc() include/datoviz/scene.h
dvz_symbol_msdf() include/datoviz/scene.h
dvz_symbol_sdf() include/datoviz/scene.h
dvz_symbol_set() include/datoviz/scene.h
dvz_symbol_svg_path() include/datoviz/scene.h

Tessellate

Function Header
dvz_tessellate_cubic_bezier() include/datoviz/geom.h
dvz_tessellate_quadratic_bezier() include/datoviz/geom.h

Tessellated

Function Header
dvz_tessellated_path_destroy() include/datoviz/geom.h

Triangulate

Function Header
dvz_triangulate_polygon() include/datoviz/geom.h

Triangulation

Function Header
dvz_triangulation_desc() include/datoviz/geom.h

Vector

Function Header
dvz_vector() include/datoviz/scene.h
dvz_vector_set_style() include/datoviz/scene.h
dvz_vector_set_subpaths() include/datoviz/scene.h
dvz_vector_style() include/datoviz/scene.h

Visual

Function Header
dvz_visual_alpha_mode() include/datoviz/scene.h
dvz_visual_attach_desc() include/datoviz/scene.h
dvz_visual_attr_count() include/datoviz/scene.h
dvz_visual_attr_format() include/datoviz/scene.h
dvz_visual_attr_info() include/datoviz/scene.h
dvz_visual_attr_mutability() include/datoviz/scene.h
dvz_visual_attr_source() include/datoviz/scene.h
dvz_visual_attr_supported() include/datoviz/scene.h
dvz_visual_blend_mode() include/datoviz/scene.h
dvz_visual_bounds() include/datoviz/scene.h
dvz_visual_clear_item_range() include/datoviz/scene.h
dvz_visual_clear_transform() include/datoviz/scene.h
dvz_visual_data() include/datoviz/scene.h
dvz_visual_depth_test() include/datoviz/scene.h
dvz_visual_destroy() include/datoviz/scene.h
dvz_visual_family() include/datoviz/scene.h
dvz_visual_family_name() include/datoviz/scene.h
dvz_visual_get_item_range() include/datoviz/scene.h
dvz_visual_get_transform() include/datoviz/scene.h
dvz_visual_has_transform() include/datoviz/scene.h
dvz_visual_id() include/datoviz/scene.h
dvz_visual_set_alpha_mode() include/datoviz/scene.h
dvz_visual_set_attr_buffer() include/datoviz/scene.h
dvz_visual_set_attr_format() include/datoviz/scene.h
dvz_visual_set_attr_mutability() include/datoviz/scene.h
dvz_visual_set_attr_source() include/datoviz/scene.h
dvz_visual_set_blend_mode() include/datoviz/scene.h
dvz_visual_set_buffer() include/datoviz/scene.h
dvz_visual_set_data() include/datoviz/scene.h
dvz_visual_set_data_many() include/datoviz/scene.h
dvz_visual_set_data_range() include/datoviz/scene.h
dvz_visual_set_depth_test() include/datoviz/scene.h
dvz_visual_set_field() include/datoviz/scene/field.h
dvz_visual_set_index_data() include/datoviz/scene.h
dvz_visual_set_item_range() include/datoviz/scene.h
dvz_visual_set_link_keys() include/datoviz/scene/interaction.h
dvz_visual_set_query_capabilities() include/datoviz/scene/interaction.h
dvz_visual_set_scale() include/datoviz/scene/scale.h
dvz_visual_set_shader_desc() include/datoviz/scene.h
dvz_visual_set_strings() include/datoviz/scene.h
dvz_visual_set_transform() include/datoviz/scene.h
dvz_visual_set_transform_desc() include/datoviz/scene.h
dvz_visual_set_visible() include/datoviz/scene.h
dvz_visual_shader_desc() include/datoviz/scene.h
dvz_visual_transform_desc() include/datoviz/scene.h
dvz_visual_validate() include/datoviz/scene.h

Volume

Function Header
dvz_volume() include/datoviz/scene.h
dvz_volume_clear_clipping() include/datoviz/scene.h
dvz_volume_clear_clipping_plane() include/datoviz/scene.h
dvz_volume_set_alpha_stops() include/datoviz/scene.h
dvz_volume_set_axis_mapping() include/datoviz/scene.h
dvz_volume_set_bounds() include/datoviz/scene.h
dvz_volume_set_clipping_box() include/datoviz/scene.h
dvz_volume_set_clipping_plane() include/datoviz/scene.h
dvz_volume_set_opacity() include/datoviz/scene.h
dvz_volume_set_render_mode() include/datoviz/scene.h
dvz_volume_set_sampling() include/datoviz/scene.h
dvz_volume_set_slice_axis() include/datoviz/scene.h
dvz_volume_set_slice_position() include/datoviz/scene.h
dvz_volume_set_step_count() include/datoviz/scene.h
dvz_volume_set_value_range() include/datoviz/scene.h
dvz_volume_state() include/datoviz/scene.h

Band

Functions

dvz_band()

Create a retained band/ribbon attached to one panel.

DvzBand * dvz_band(
    DvzPanel * panel,
    const DvzBandDesc * desc
);
Field Type Description
return DvzBand * the band object, or NULL on validation/allocation error
panel DvzPanel * the panel
desc const DvzBandDesc * optional band descriptor; NULL uses defaults

Declared in include/datoviz/scene/plot.h:191.

dvz_band_desc()

Return the default band/ribbon descriptor.

DvzBandDesc dvz_band_desc(void);
Field Type Description
return DvzBandDesc default band descriptor

Related: dvz_band().

Declared in include/datoviz/scene/plot.h:60.

dvz_band_set_bounds()

Set lower/upper band bounds.

Arrays are copied into scene-owned storage. NaN values split the generated fill and paths into gaps.

DvzResult dvz_band_set_bounds(
    DvzBand * band,
    const double * x,
    const double * lower,
    const double * upper,
    uint32_t count
);
Field Type Description
return DvzResult 0 on success, -1 on validation/allocation error
band DvzBand * the band object
x const double * X coordinates
lower const double * lower Y coordinates
upper const double * upper Y coordinates
count uint32_t number of samples

Declared in include/datoviz/scene/plot.h:207.

dvz_band_set_center()

Set an explicit center line for the band.

If absent and the descriptor enables the center line, the line is derived from the bounds as 0.5 * (lower + upper). Arrays are copied into scene-owned storage. NaN values split the line.

DvzResult dvz_band_set_center(
    DvzBand * band,
    const double * x,
    const double * y,
    uint32_t count
);
Field Type Description
return DvzResult 0 on success, -1 on validation/allocation error
band DvzBand * the band object
x const double * X coordinates
y const double * Y coordinates
count uint32_t number of samples

Declared in include/datoviz/scene/plot.h:224.

dvz_band_set_style()

Update band style and rendering options while preserving bounds and center data.

The descriptor is copied. Enabling center or bound paths after construction creates the corresponding role visual.

DvzResult dvz_band_set_style(
    DvzBand * band,
    const DvzBandDesc * desc
);
Field Type Description
return DvzResult 0 on success, -1 on validation/allocation error
band DvzBand * the band object
desc const DvzBandDesc * band descriptor

Declared in include/datoviz/scene/plot.h:237.

dvz_band_visual()

Return a borrowed role visual from a band object.

Advanced inspection escape hatch. Valid roles are DVZ_PLOT_ROLE_FILL, DVZ_PLOT_ROLE_LINE, and DVZ_PLOT_ROLE_BOUNDS.

DvzVisual * dvz_band_visual(
    DvzBand * band,
    DvzPlotRole role
);
Field Type Description
return DvzVisual * borrowed visual, or NULL when unavailable
band DvzBand * the band object
role DvzPlotRole visual role

Declared in include/datoviz/scene/plot.h:250.

Types

DvzBand · typedef
typedef struct DvzBand DvzBand;

Declared in include/datoviz/scene/types.h:97.

DvzBandDesc · record
struct DvzBandDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzColor fill_color;
    DvzColor line_color;
    float line_width_px;
    _Bool show_line;
    _Bool show_bounds;
    DvzColor bound_color;
    float bound_width_px;
    int32_t z_layer;
};

Declared in include/datoviz/scene/types.h:443.

Bars

Functions

dvz_bars()

Create a retained explicit-interval bar series attached to one panel.

DvzBars * dvz_bars(
    DvzPanel * panel,
    const DvzBarsDesc * desc
);
Field Type Description
return DvzBars * the bars object, or NULL on validation/allocation error
panel DvzPanel * the panel
desc const DvzBarsDesc * optional bars descriptor; NULL uses defaults

Declared in include/datoviz/scene/plot.h:137.

dvz_bars_desc()

Return the default bars descriptor.

DvzBarsDesc dvz_bars_desc(void);
Field Type Description
return DvzBarsDesc default bars descriptor

Related: dvz_bars().

Declared in include/datoviz/scene/plot.h:52.

dvz_bars_set_intervals()

Set explicit bar intervals and values.

For vertical bars, starts/ends are X interval edges and values are Y values from the baseline. For horizontal bars, starts/ends are Y interval edges and values are X values from the baseline. Arrays are copied into scene-owned storage.

DvzResult dvz_bars_set_intervals(
    DvzBars * bars,
    const double * starts,
    const double * ends,
    const double * values,
    uint32_t count
);
Field Type Description
return DvzResult 0 on success, -1 on validation/allocation error
bars DvzBars * the bars object
starts const double * interval start values
ends const double * interval end values
values const double * bar terminal values
count uint32_t number of bars

Declared in include/datoviz/scene/plot.h:154.

dvz_bars_set_style()

Update bar style and rendering options while preserving interval data.

The descriptor is copied. Enabling an outline after construction creates the outline role visual.

DvzResult dvz_bars_set_style(
    DvzBars * bars,
    const DvzBarsDesc * desc
);
Field Type Description
return DvzResult 0 on success, -1 on validation/allocation error
bars DvzBars * the bars object
desc const DvzBarsDesc * bars descriptor

Declared in include/datoviz/scene/plot.h:168.

dvz_bars_visual()

Return a borrowed role visual from a bars object.

Advanced inspection escape hatch. Valid roles are DVZ_PLOT_ROLE_FILL and DVZ_PLOT_ROLE_OUTLINE.

DvzVisual * dvz_bars_visual(
    DvzBars * bars,
    DvzPlotRole role
);
Field Type Description
return DvzVisual * borrowed visual, or NULL when unavailable
bars DvzBars * the bars object
role DvzPlotRole visual role

Declared in include/datoviz/scene/plot.h:181.

Types

DvzBars · typedef
typedef struct DvzBars DvzBars;

Declared in include/datoviz/scene/types.h:96.

DvzBarsDesc · record
struct DvzBarsDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzBarsOrientation orientation;
    double baseline;
    float gap_fraction;
    DvzColor fill_color;
    DvzColor outline_color;
    float outline_width_px;
    int32_t z_layer;
};

Declared in include/datoviz/scene/types.h:428.

DvzBarsOrientation · enum
enum DvzBarsOrientation {
    DVZ_BARS_ORIENTATION_VERTICAL = 0,
    DVZ_BARS_ORIENTATION_HORIZONTAL = 1,
};

Declared in include/datoviz/scene/types.h:421.

Bezier

Functions

dvz_bezier_tessellation_desc()

Return a default Bezier tessellation descriptor.

DvzBezierTessellationDesc dvz_bezier_tessellation_desc(void);
Field Type Description
return DvzBezierTessellationDesc initialized Bezier tessellation descriptor

Declared in include/datoviz/geom.h:428.

Types

DvzBezierTessellationDesc · record
struct DvzBezierTessellationDesc {
    uint32_t struct_size;
    uint32_t flags;
    uint32_t segment_count;
    double tolerance;
};

Declared in include/datoviz/geom/types.h:300.

Composite

Functions

dvz_composite_destroy()

Destroy a scene-owned composite render view.

void dvz_composite_destroy(
    DvzComposite * composite
);
Field Type Description
composite DvzComposite * the composite

Declared in include/datoviz/scene.h:3517.

dvz_composite_visual()

Return a generated visual by role name.

Polygon composites currently expose "fill" and "stroke" roles.

DvzVisual * dvz_composite_visual(
    DvzComposite * composite,
    const char * role
);
Field Type Description
return DvzVisual * the generated visual, or NULL when absent
composite DvzComposite * the composite
role const char * role name

Declared in include/datoviz/scene.h:3548.

dvz_composite_visual_at()

Return a generated visual by role index.

DvzVisual * dvz_composite_visual_at(
    DvzComposite * composite,
    uint32_t index
);
Field Type Description
return DvzVisual * the generated visual, or NULL when out of range
composite DvzComposite * the composite
index uint32_t role index

Declared in include/datoviz/scene.h:3536.

dvz_composite_visual_count()

Return the number of generated visuals owned by a composite.

uint32_t dvz_composite_visual_count(
    const DvzComposite * composite
);
Field Type Description
return uint32_t generated visual count
composite const DvzComposite * the composite

Declared in include/datoviz/scene.h:3526.

Types

DvzComposite · typedef
typedef struct DvzComposite DvzComposite;

Declared in include/datoviz/scene/types.h:65.

Depth Cueing

Functions

dvz_depth_cue_desc()

Return default depth-cue options.

DvzDepthCueDesc dvz_depth_cue_desc(void);
Field Type Description
return DvzDepthCueDesc depth-cue descriptor

Declared in include/datoviz/scene.h:2500.

dvz_visual_set_depth_cue()

Configure depth cueing for a point, pixel, primitive, mesh, or sphere visual.

Primitive/mesh/sphere visuals use depth cueing through the material shader path. Point/pixel visuals use the same cue parameters without lighting. The near_depth and far_depth values are interpreted in the descriptor metric, where lower values are closer. The default metric is normalized clip depth after the visual's scene transform. Pass NULL to disable depth cueing.

DvzResult dvz_visual_set_depth_cue(
    DvzVisual * visual,
    const DvzDepthCueDesc * desc
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
desc const DvzDepthCueDesc * the depth-cue descriptor, or NULL to disable depth cueing

Declared in include/datoviz/scene.h:2515.

Types

DvzDepthCueDesc · record
struct DvzDepthCueDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzDepthCueMode mode;
    DvzDepthCueMetric metric;
    DvzDepthCueFalloff falloff;
    float near_depth;
    float far_depth;
    float strength;
    float density;
    float[4] background_color;
};

Declared in include/datoviz/scene/types.h:1042.

DvzDepthCueFalloff · enum
enum DvzDepthCueFalloff {
    DVZ_DEPTH_CUE_FALLOFF_LINEAR = 0,
    DVZ_DEPTH_CUE_FALLOFF_EXPONENTIAL = 1,
};

Declared in include/datoviz/scene/enums.h:385.

DvzDepthCueMetric · enum
enum DvzDepthCueMetric {
    DVZ_DEPTH_CUE_METRIC_CLIP_DEPTH = 0,
    DVZ_DEPTH_CUE_METRIC_EYE_DISTANCE = 1,
    DVZ_DEPTH_CUE_METRIC_WORLD_DISTANCE = 2,
};

Declared in include/datoviz/scene/enums.h:377.

DvzDepthCueMode · enum
enum DvzDepthCueMode {
    DVZ_DEPTH_CUE_NONE = 0,
    DVZ_DEPTH_CUE_FADE_TO_BACKGROUND = 1,
    DVZ_DEPTH_CUE_DESATURATE = 2,
    DVZ_DEPTH_CUE_DARKEN = 3,
};

Declared in include/datoviz/scene/enums.h:368.

Geometry

Functions

dvz_geometry()

Allocate a geometry object with owned vertex and index buffers.

The returned object owns arrays for @p vertex_count vertices and @p index_count indices. Destroy it with dvz_geometry_destroy().

DvzGeometry * dvz_geometry(
    uint32_t vertex_count,
    uint32_t index_count
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on invalid input or allocation failure
vertex_count uint32_t number of vertices to allocate; may be zero for an empty geometry
index_count uint32_t number of indices to allocate; may be zero for non-indexed geometry

Declared in include/datoviz/geom.h:50.

dvz_geometry_arrow()

Create an indexed Z-axis arrow geometry.

DvzGeometry * dvz_geometry_arrow(
    const DvzGeometryArrowDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometryArrowDesc * optional borrowed arrow descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:381.

dvz_geometry_arrow_desc()

Return a default arrow geometry descriptor.

DvzGeometryArrowDesc dvz_geometry_arrow_desc(void);
Field Type Description
return DvzGeometryArrowDesc initialized arrow descriptor

Related: dvz_geometry_arrow().

Declared in include/datoviz/geom.h:372.

dvz_geometry_bounds()

Compute the bounds of a geometry object's positions.

DvzGeometryBounds dvz_geometry_bounds(
    const DvzGeometry * geometry
);
Field Type Description
return DvzGeometryBounds the geometry bounds, or an empty zero bounds when no vertices exist
geometry const DvzGeometry * geometry to inspect; must not be NULL

Declared in include/datoviz/geom.h:79.

dvz_geometry_compute_normals()

Recompute smooth vertex normals from triangle indices.

DvzResult dvz_geometry_compute_normals(
    DvzGeometry * geometry
);
Field Type Description
return DvzResult DVZ_OK on success, DVZ_ERROR on invalid input
geometry DvzGeometry * indexed triangle geometry to update; must not be NULL

Declared in include/datoviz/geom.h:89.

dvz_geometry_cone()

Create an indexed Z-axis cone geometry.

DvzGeometry * dvz_geometry_cone(
    const DvzGeometryConeDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometryConeDesc * optional borrowed cone descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:347.

dvz_geometry_cone_desc()

Return a default cone geometry descriptor.

DvzGeometryConeDesc dvz_geometry_cone_desc(void);
Field Type Description
return DvzGeometryConeDesc initialized cone descriptor

Related: dvz_geometry_cone().

Declared in include/datoviz/geom.h:338.

dvz_geometry_contours()

Extract contour line segments from indexed triangle geometry and per-vertex scalar values.

DvzGeometryContours * dvz_geometry_contours(
    const DvzGeometry * geometry,
    const double * values,
    uint32_t value_count,
    const double * levels,
    uint32_t level_count
);
Field Type Description
return DvzGeometryContours * new owned contour segments, or NULL on invalid input or allocation failure; destroy with dvz_geometry_contours_destroy()
geometry const DvzGeometry * borrowed indexed triangle geometry; must not be NULL
values const double * array containing one scalar per geometry vertex; must not be NULL
value_count uint32_t number of values; must equal the geometry vertex count
levels const double * array of contour levels; must not be NULL
level_count uint32_t number of contour levels; must be positive

Declared in include/datoviz/geom.h:148.

dvz_geometry_contours_destroy()

Destroy extracted contour segments.

void dvz_geometry_contours_destroy(
    DvzGeometryContours * contours
);
Field Type Description
contours DvzGeometryContours * owned contour segment list to destroy; may be NULL

Declared in include/datoviz/geom.h:159.

dvz_geometry_cube()

Create an indexed cube geometry.

DvzGeometry * dvz_geometry_cube(
    const DvzGeometryCubeDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometryCubeDesc * optional borrowed cube descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:177.

dvz_geometry_cube_desc()

Return a default cube geometry descriptor.

DvzGeometryCubeDesc dvz_geometry_cube_desc(void);
Field Type Description
return DvzGeometryCubeDesc initialized cube descriptor

Related: dvz_geometry_cube().

Declared in include/datoviz/geom.h:168.

dvz_geometry_cylinder()

Create an indexed Z-axis cylinder geometry.

DvzGeometry * dvz_geometry_cylinder(
    const DvzGeometryCylinderDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometryCylinderDesc * optional borrowed cylinder descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:330.

dvz_geometry_cylinder_desc()

Return a default cylinder geometry descriptor.

DvzGeometryCylinderDesc dvz_geometry_cylinder_desc(void);
Field Type Description
return DvzGeometryCylinderDesc initialized cylinder descriptor

Related: dvz_geometry_cylinder().

Declared in include/datoviz/geom.h:321.

dvz_geometry_destroy()

Destroy a geometry object.

void dvz_geometry_destroy(
    DvzGeometry * geometry
);
Field Type Description
geometry DvzGeometry * owned geometry to destroy; may be NULL

Declared in include/datoviz/geom.h:69.

dvz_geometry_disc()

Create an indexed XY disc geometry.

DvzGeometry * dvz_geometry_disc(
    const DvzGeometryDiscDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometryDiscDesc * optional borrowed disc descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:262.

dvz_geometry_disc_desc()

Return a default disc geometry descriptor.

DvzGeometryDiscDesc dvz_geometry_disc_desc(void);
Field Type Description
return DvzGeometryDiscDesc initialized disc descriptor

Related: dvz_geometry_disc().

Declared in include/datoviz/geom.h:253.

dvz_geometry_edges()

Derive a unique edge list from indexed triangle geometry.

DvzGeometryEdges * dvz_geometry_edges(
    const DvzGeometry * geometry
);
Field Type Description
return DvzGeometryEdges * new owned edge list, or NULL on invalid input or allocation failure; destroy with dvz_geometry_edges_destroy()
geometry const DvzGeometry * borrowed indexed triangle geometry; must not be NULL

Declared in include/datoviz/geom.h:124.

dvz_geometry_edges_destroy()

Destroy a derived geometry edge list.

void dvz_geometry_edges_destroy(
    DvzGeometryEdges * edges
);
Field Type Description
edges DvzGeometryEdges * owned edge list to destroy; may be NULL

Declared in include/datoviz/geom.h:133.

dvz_geometry_merge()

Merge several geometry objects into one indexed geometry.

DvzGeometry * dvz_geometry_merge(
    uint32_t count,
    const DvzGeometry *const * geometries
);
Field Type Description
return DvzGeometry * new owned merged geometry, or NULL on invalid input or allocation failure; destroy with dvz_geometry_destroy()
count uint32_t number of input geometry pointers; must be positive
geometries const DvzGeometry *const * array of @p count borrowed geometry pointers; entries must not be NULL

Declared in include/datoviz/geom.h:113.

dvz_geometry_obj()

Load a Wavefront OBJ mesh as indexed geometry.

The first loader slice supports v, vn, and polygonal f records. Faces are triangulated as fans and texture coordinates/materials are ignored.

DvzGeometry * dvz_geometry_obj(
    const char * filename,
    const DvzGeometryObjDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on unsupported input, allocation, or I/O failure; destroy with dvz_geometry_destroy()
filename const char * OBJ file path; must not be NULL
desc const DvzGeometryObjDesc * optional borrowed loader descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:403.

dvz_geometry_obj_desc()

Return a default Wavefront OBJ geometry loader descriptor.

DvzGeometryObjDesc dvz_geometry_obj_desc(void);
Field Type Description
return DvzGeometryObjDesc initialized OBJ loader descriptor

Related: dvz_geometry_obj().

Declared in include/datoviz/geom.h:389.

dvz_geometry_plane()

Create an indexed XY plane geometry.

DvzGeometry * dvz_geometry_plane(
    const DvzGeometryPlaneDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometryPlaneDesc * optional borrowed plane descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:195.

dvz_geometry_plane_desc()

Return a default plane geometry descriptor.

DvzGeometryPlaneDesc dvz_geometry_plane_desc(void);
Field Type Description
return DvzGeometryPlaneDesc initialized plane descriptor

Related: dvz_geometry_plane().

Declared in include/datoviz/geom.h:186.

dvz_geometry_regular_polygon()

Create an indexed XY regular-polygon geometry.

DvzGeometry * dvz_geometry_regular_polygon(
    const DvzGeometryRegularPolygonDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometryRegularPolygonDesc * optional borrowed regular-polygon descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:296.

dvz_geometry_regular_polygon_desc()

Return a default regular-polygon geometry descriptor.

DvzGeometryRegularPolygonDesc dvz_geometry_regular_polygon_desc(void);
Field Type Description
return DvzGeometryRegularPolygonDesc initialized regular-polygon descriptor

Related: dvz_geometry_regular_polygon().

Declared in include/datoviz/geom.h:287.

dvz_geometry_reset()

Free all buffers owned by a geometry object and reset it to an empty state.

DvzResult dvz_geometry_reset(
    DvzGeometry * geometry
);
Field Type Description
return DvzResult DVZ_OK on success, DVZ_ERROR on validation error
geometry DvzGeometry * geometry to reset; must not be NULL

Declared in include/datoviz/geom.h:60.

dvz_geometry_sector()

Create an indexed XY sector geometry.

DvzGeometry * dvz_geometry_sector(
    const DvzGeometrySectorDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometrySectorDesc * optional borrowed sector descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:279.

dvz_geometry_sector_desc()

Return a default sector geometry descriptor.

DvzGeometrySectorDesc dvz_geometry_sector_desc(void);
Field Type Description
return DvzGeometrySectorDesc initialized sector descriptor

Related: dvz_geometry_sector().

Declared in include/datoviz/geom.h:270.

dvz_geometry_sphere()

Create an indexed UV-sphere geometry.

DvzGeometry * dvz_geometry_sphere(
    const DvzGeometrySphereDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometrySphereDesc * optional borrowed sphere descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:213.

dvz_geometry_sphere_desc()

Return a default sphere geometry descriptor.

DvzGeometrySphereDesc dvz_geometry_sphere_desc(void);
Field Type Description
return DvzGeometrySphereDesc initialized sphere descriptor

Related: dvz_geometry_sphere().

Declared in include/datoviz/geom.h:204.

dvz_geometry_star()

Create an indexed XY star geometry.

DvzGeometry * dvz_geometry_star(
    const DvzGeometryStarDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometryStarDesc * optional borrowed star descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:313.

dvz_geometry_star_desc()

Return a default star geometry descriptor.

DvzGeometryStarDesc dvz_geometry_star_desc(void);
Field Type Description
return DvzGeometryStarDesc initialized star descriptor

Related: dvz_geometry_star().

Declared in include/datoviz/geom.h:304.

dvz_geometry_surface_grid()

Create an indexed structured surface-grid geometry.

DvzGeometry * dvz_geometry_surface_grid(
    const DvzGeometrySurfaceGridDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometrySurfaceGridDesc * borrowed surface-grid descriptor; must not be NULL

Declared in include/datoviz/geom.h:231.

dvz_geometry_surface_grid_desc()

Return a default surface-grid geometry descriptor.

DvzGeometrySurfaceGridDesc dvz_geometry_surface_grid_desc(void);
Field Type Description
return DvzGeometrySurfaceGridDesc initialized surface-grid descriptor

Related: dvz_geometry_surface_grid().

Declared in include/datoviz/geom.h:222.

dvz_geometry_surface_grid_update_heights()

Update the heights of an existing structured surface-grid geometry.

DvzResult dvz_geometry_surface_grid_update_heights(
    DvzGeometry * geometry,
    const double * heights,
    uint32_t count
);
Field Type Description
return DvzResult DVZ_OK on success, DVZ_ERROR on invalid input
geometry DvzGeometry * surface-grid geometry to update; must not be NULL
heights const double * row-major height array; must not be NULL
count uint32_t number of height values; must equal the grid vertex count

Declared in include/datoviz/geom.h:244.

dvz_geometry_torus()

Create an indexed torus geometry around the Z axis.

DvzGeometry * dvz_geometry_torus(
    const DvzGeometryTorusDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on failure; destroy with dvz_geometry_destroy()
desc const DvzGeometryTorusDesc * optional borrowed torus descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:364.

dvz_geometry_torus_desc()

Return a default torus geometry descriptor.

DvzGeometryTorusDesc dvz_geometry_torus_desc(void);
Field Type Description
return DvzGeometryTorusDesc initialized torus descriptor

Related: dvz_geometry_torus().

Declared in include/datoviz/geom.h:355.

dvz_geometry_transform()

Apply an affine transform to positions and normals in place.

DvzResult dvz_geometry_transform(
    DvzGeometry * geometry,
    dmat4 transform
);
Field Type Description
return DvzResult DVZ_OK on success, DVZ_ERROR on invalid input
geometry DvzGeometry * geometry to update in place; must not be NULL
transform dmat4 affine 4x4 transform matrix

Declared in include/datoviz/geom.h:100.

Types

DvzGeometry · record
struct DvzGeometry {
    DvzGeometryType type;
    uint32_t flags;
    uint32_t vertex_count;
    uint32_t index_count;
    uint32_t grid_rows;
    uint32_t grid_cols;
    dvec3 grid_origin;
    dvec3 grid_row_basis;
    dvec3 grid_col_basis;
    dvec3 grid_height_axis;
    double grid_height_scale;
    dvec3 * positions;
    dvec3 * normals;
    DvzColor * colors;
    dvec2 * texcoords;
    DvzIndex * indices;
};

Declared in include/datoviz/geom/types.h:61.

DvzGeometryArrowDesc · record
struct DvzGeometryArrowDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double length;
    double shaft_radius;
    double head_radius;
    double head_length;
    uint32_t sectors;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:248.

DvzGeometryBounds · record
struct DvzGeometryBounds {
    double xmin;
    double xmax;
    double ymin;
    double ymax;
    double zmin;
    double zmax;
};

Declared in include/datoviz/geom/types.h:90.

DvzGeometryConeDesc · record
struct DvzGeometryConeDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double radius;
    double height;
    uint32_t sectors;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:221.

DvzGeometryContourSegment · record
struct DvzGeometryContourSegment {
    dvec3 p0;
    dvec3 p1;
    double level;
    uint32_t level_index;
    uint32_t face_index;
};

Declared in include/datoviz/geom/types.h:339.

DvzGeometryContours · record
struct DvzGeometryContours {
    uint32_t segment_count;
    DvzGeometryContourSegment * segments;
};

Declared in include/datoviz/geom/types.h:351.

DvzGeometryCubeDesc · record
struct DvzGeometryCubeDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double size;
    DvzColor color;
    const DvzColor * face_colors;
    uint32_t face_color_count;
};

Declared in include/datoviz/geom/types.h:97.

DvzGeometryCylinderDesc · record
struct DvzGeometryCylinderDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double radius;
    double height;
    uint32_t sectors;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:208.

DvzGeometryDiscDesc · record
struct DvzGeometryDiscDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double radius;
    uint32_t segments;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:157.

DvzGeometryEdge · record
struct DvzGeometryEdge {
    DvzIndex v0;
    DvzIndex v1;
    uint32_t face0;
    uint32_t face1;
    uint32_t adjacent_count;
    uint32_t flags;
};

Declared in include/datoviz/geom/types.h:318.

DvzGeometryEdgeFlags · enum
enum DvzGeometryEdgeFlags {
    DVZ_GEOMETRY_EDGE_NONE = 0,
    DVZ_GEOMETRY_EDGE_BOUNDARY = 1,
    DVZ_GEOMETRY_EDGE_NONMANIFOLD = 2,
};

Declared in include/datoviz/geom/enums.h:66.

DvzGeometryEdges · record
struct DvzGeometryEdges {
    uint32_t edge_count;
    DvzGeometryEdge * edges;
};

Declared in include/datoviz/geom/types.h:331.

DvzGeometryIndexingFlags · enum
enum DvzGeometryIndexingFlags {
    DVZ_GEOMETRY_INDEXING_NONE = 0,
    DVZ_GEOMETRY_INDEXING_TRIANGLES = 1,
    DVZ_GEOMETRY_INDEXING_SURFACE_GRID = 2,
    DVZ_GEOMETRY_INDEXING_TRIANGULATION = 4,
};

Declared in include/datoviz/geom/enums.h:46.

DvzGeometryObjDesc · record
struct DvzGeometryObjDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:263.

DvzGeometryPlaneDesc · record
struct DvzGeometryPlaneDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double width;
    double height;
    double z;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:110.

DvzGeometryRegularPolygonDesc · record
struct DvzGeometryRegularPolygonDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double radius;
    uint32_t sides;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:183.

DvzGeometrySectorDesc · record
struct DvzGeometrySectorDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double radius;
    double start_angle;
    double sweep_angle;
    uint32_t segments;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:169.

DvzGeometrySphereDesc · record
struct DvzGeometrySphereDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double radius;
    uint32_t rings;
    uint32_t sectors;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:123.

DvzGeometryStarDesc · record
struct DvzGeometryStarDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double outer_radius;
    double inner_radius;
    uint32_t points;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:195.

DvzGeometrySurfaceGridDesc · record
struct DvzGeometrySurfaceGridDesc {
    uint32_t struct_size;
    uint32_t flags;
    uint32_t rows;
    uint32_t cols;
    const double * heights;
    const DvzColor * colors;
    dvec3 origin;
    dvec3 row_basis;
    dvec3 col_basis;
    dvec3 height_axis;
    double height_scale;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:136.

DvzGeometryTorusDesc · record
struct DvzGeometryTorusDesc {
    uint32_t struct_size;
    uint32_t flags;
    dvec3 center;
    double major_radius;
    double minor_radius;
    uint32_t rings;
    uint32_t sectors;
    DvzColor color;
};

Declared in include/datoviz/geom/types.h:234.

DvzGeometryType · enum
enum DvzGeometryType {
    DVZ_GEOMETRY_NONE = 0,
    DVZ_GEOMETRY_CUSTOM = 1,
    DVZ_GEOMETRY_CUBE = 2,
    DVZ_GEOMETRY_PLANE = 3,
    DVZ_GEOMETRY_SURFACE_GRID = 4,
    DVZ_GEOMETRY_SPHERE = 5,
    DVZ_GEOMETRY_CYLINDER = 6,
    DVZ_GEOMETRY_CONE = 7,
    DVZ_GEOMETRY_TORUS = 8,
    DVZ_GEOMETRY_ARROW = 9,
};

Declared in include/datoviz/geom/enums.h:29.

Glyph

Functions

dvz_glyph()

Create a glyph visual.

Renders atlas-backed glyph quads with position (vec3 anchor), bounds (vec4 local pixel bounds), texcoords (vec4 atlas UV bounds), color (RGBA8), angle (float radians), and a bound 2D sampled field. Positive angle rotates counter-clockwise in rendered y-up coordinates.

DvzVisual * dvz_glyph(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:3768.

dvz_glyph_set_atlas()

Bind a font atlas to a glyph visual.

This configures the atlas sampled field, distance-field encoding, and distance range used by the glyph shader. The atlas remains owned by the font's scene and must outlive the glyph visual.

DvzResult dvz_glyph_set_atlas(
    DvzVisual * visual,
    const DvzTextAtlas * atlas
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the glyph visual
atlas const DvzTextAtlas * the text atlas

Declared in include/datoviz/scene.h:3781.

Graph

Functions

dvz_graph()

Create a scene-owned semantic graph object.

A graph stores user-provided node positions and indexed edges. Layout algorithms are intentionally external to the first public API slice and can update node positions through dvz_graph_set_node_positions().

DvzGraph * dvz_graph(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzGraph * the graph, or NULL on allocation failure
scene DvzScene * the scene
flags uint32_t reserved graph flags

Declared in include/datoviz/scene.h:2948.

dvz_graph_composite()

Create a scene-owned composite render view for a graph.

Graph composites expose "edges" and "nodes" roles.

DvzComposite * dvz_graph_composite(
    DvzGraph * graph,
    uint32_t flags
);
Field Type Description
return DvzComposite * the composite, or NULL on allocation failure
graph DvzGraph * the source graph
flags uint32_t reserved composite flags

Declared in include/datoviz/scene.h:3145.

dvz_graph_destroy()

Destroy a scene-owned graph object.

void dvz_graph_destroy(
    DvzGraph * graph
);
Field Type Description
graph DvzGraph * the graph

Declared in include/datoviz/scene.h:2956.

dvz_graph_edge_style()

Return the default graph edge style descriptor.

DvzGraphEdgeStyle dvz_graph_edge_style(void);
Field Type Description
return DvzGraphEdgeStyle default graph edge style

Declared in include/datoviz/scene.h:2964.

dvz_graph_set_edge_colors()

Set a range of graph edge colors.

DvzResult dvz_graph_set_edge_colors(
    DvzGraph * graph,
    uint32_t first_edge,
    uint32_t edge_count,
    const DvzColor * colors
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
first_edge uint32_t first edge index
edge_count uint32_t number of edges
colors const DvzColor * borrowed RGBA colors

Declared in include/datoviz/scene.h:3118.

dvz_graph_set_edge_controls()

Configure explicit cubic Bezier control points for graph edges.

If omitted, Bezier mode derives gentle XY control points from each edge's endpoints.

DvzResult dvz_graph_set_edge_controls(
    DvzGraph * graph,
    uint32_t first_edge,
    uint32_t edge_count,
    const dvec3 * control0,
    const dvec3 * control1
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
first_edge uint32_t first edge index
edge_count uint32_t number of edge controls to update
control0 const dvec3 * borrowed first control point array
control1 const dvec3 * borrowed second control point array

Declared in include/datoviz/scene.h:3075.

dvz_graph_set_edge_count()

Replace the graph edge array and reset edge style defaults.

Edge endpoints are left at their default values until dvz_graph_set_edge_endpoints() is called.

DvzResult dvz_graph_set_edge_count(
    DvzGraph * graph,
    uint32_t edge_count
);
Field Type Description
return DvzResult 0 on success, -1 on invalid endpoints or allocation failure
graph DvzGraph * the graph
edge_count uint32_t number of edges

Declared in include/datoviz/scene.h:3002.

dvz_graph_set_edge_endpoints()

Update graph edge endpoints.

Edge endpoints reference node indices in the current graph node array.

DvzResult dvz_graph_set_edge_endpoints(
    DvzGraph * graph,
    uint32_t first_edge,
    uint32_t edge_count,
    const uint32_t * endpoints
);
Field Type Description
return DvzResult 0 on success, -1 on invalid endpoints or allocation failure
graph DvzGraph * the graph
first_edge uint32_t first edge index
edge_count uint32_t number of edges
endpoints const uint32_t * borrowed packed endpoint array: source0, target0, source1, target1, ...

Declared in include/datoviz/scene.h:3017.

dvz_graph_set_edge_ids()

Set stable graph edge user ids.

DvzResult dvz_graph_set_edge_ids(
    DvzGraph * graph,
    uint32_t first_edge,
    uint32_t edge_count,
    const uint64_t * ids
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
first_edge uint32_t first edge index
edge_count uint32_t number of edges
ids const uint64_t * borrowed user-id array

Declared in include/datoviz/scene.h:3045.

dvz_graph_set_edge_style()

Configure graph edge rendering.

DVZ_GRAPH_EDGE_MODE_SEGMENT lowers edges to fast independent segment visuals. DVZ_GRAPH_EDGE_MODE_PATH lowers straight edges to high-quality path strokes. DVZ_GRAPH_EDGE_MODE_BEZIER lowers edges to tessellated cubic Bezier path strokes.

DvzResult dvz_graph_set_edge_style(
    DvzGraph * graph,
    const DvzGraphEdgeStyle * style
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
style const DvzGraphEdgeStyle * edge style descriptor

Declared in include/datoviz/scene.h:3060.

dvz_graph_set_edge_widths()

Set a range of graph edge stroke widths in pixels.

DvzResult dvz_graph_set_edge_widths(
    DvzGraph * graph,
    uint32_t first_edge,
    uint32_t edge_count,
    const float * widths
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
first_edge uint32_t first edge index
edge_count uint32_t number of edges
widths const float * borrowed edge widths

Declared in include/datoviz/scene.h:3132.

dvz_graph_set_node_colors()

Set a range of graph node colors.

DvzResult dvz_graph_set_node_colors(
    DvzGraph * graph,
    uint32_t first_node,
    uint32_t node_count,
    const DvzColor * colors
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
first_node uint32_t first node index
node_count uint32_t number of nodes
colors const DvzColor * borrowed RGBA colors

Declared in include/datoviz/scene.h:3090.

dvz_graph_set_node_count()

Replace the graph node array and reset node style defaults.

Existing edges are discarded because their endpoints may no longer be valid. Call dvz_graph_set_node_positions() after this function to set or update semantic node positions.

DvzResult dvz_graph_set_node_count(
    DvzGraph * graph,
    uint32_t node_count
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
node_count uint32_t number of nodes

Declared in include/datoviz/scene.h:2977.

dvz_graph_set_node_ids()

Set stable graph node user ids.

DvzResult dvz_graph_set_node_ids(
    DvzGraph * graph,
    uint32_t first_node,
    uint32_t node_count,
    const uint64_t * ids
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
first_node uint32_t first node index
node_count uint32_t number of nodes
ids const uint64_t * borrowed user-id array

Declared in include/datoviz/scene.h:3031.

dvz_graph_set_node_positions()

Update graph node positions without changing node styles or edges.

DvzResult dvz_graph_set_node_positions(
    DvzGraph * graph,
    uint32_t first_node,
    uint32_t node_count,
    const dvec3 * positions
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
first_node uint32_t first node index
node_count uint32_t number of node positions to update
positions const dvec3 * borrowed node positions

Declared in include/datoviz/scene.h:2989.

dvz_graph_set_node_sizes()

Set a range of graph node sizes in pixels.

DvzResult dvz_graph_set_node_sizes(
    DvzGraph * graph,
    uint32_t first_node,
    uint32_t node_count,
    const float * sizes
);
Field Type Description
return DvzResult 0 on success, -1 on error
graph DvzGraph * the graph
first_node uint32_t first node index
node_count uint32_t number of nodes
sizes const float * borrowed node sizes

Declared in include/datoviz/scene.h:3104.

Types

DvzGraph · typedef
typedef struct DvzGraph DvzGraph;

Declared in include/datoviz/scene/types.h:68.

DvzGraphEdgeMode · enum
enum DvzGraphEdgeMode {
    DVZ_GRAPH_EDGE_MODE_SEGMENT = 0,
    DVZ_GRAPH_EDGE_MODE_PATH = 1,
    DVZ_GRAPH_EDGE_MODE_BEZIER = 2,
};

Declared in include/datoviz/scene/enums.h:290.

DvzGraphEdgeStyle · record
struct DvzGraphEdgeStyle {
    uint32_t struct_size;
    uint32_t flags;
    DvzGraphEdgeMode mode;
    uint32_t tessellation_segment_count;
    double tessellation_tolerance;
    DvzSegmentCap start_cap;
    DvzSegmentCap end_cap;
    DvzPathJoin join;
    float miter_limit;
};

Declared in include/datoviz/scene/types.h:949.

Image

Functions

dvz_image()

Create an image visual.

The current image path supports one sampled 2D texture per visual. The quad-corner form accepts position (vec3, 4 corner vertices in triangle-strip order) and texcoords (vec2, matching UVs). The retained per-item form accepts one anchor position and extent per image item, with optional tex_rect atlas rectangles and per-item anchor. Bind texture data with a scene-owned sampled field via dvz_visual_set_field().

DvzVisual * dvz_image(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:3623.

dvz_image_set_sampling()

Set the sampler filter mode for an image visual.

DVZ_IMAGE_SAMPLING_LINEAR is the default. DVZ_IMAGE_SAMPLING_NEAREST emits a nearest minification and magnification sampler for pixel-exact image rendering.

DvzResult dvz_image_set_sampling(
    DvzVisual * visual,
    DvzImageSampling sampling
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the image visual
sampling DvzImageSampling the image sampler filter mode

Declared in include/datoviz/scene.h:3636.

Types

DvzImageSampling · enum
enum DvzImageSampling {
    DVZ_IMAGE_SAMPLING_LINEAR = 0,
    DVZ_IMAGE_SAMPLING_NEAREST = 1,
};

Declared in include/datoviz/scene/enums.h:392.

Labels

Functions

dvz_labels()

Create a labels visual.

Labels visuals render integer sampled fields with categorical scale metadata. They use the same image placement attributes as image visuals: position, extent, anchor, and tex_rect. Bind the integer sampled field with dvz_visual_set_field(labels, "field", field) and the categorical scale with dvz_visual_set_scale(labels, "labels", scale).

DvzVisual * dvz_labels(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:3651.

dvz_labels_clear_selected()

Clear the selected label ID on a labels visual.

DvzResult dvz_labels_clear_selected(
    DvzVisual * visual
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the labels visual

Declared in include/datoviz/scene.h:3690.

dvz_labels_set_background()

Set the transparent background label ID on a labels visual.

DvzResult dvz_labels_set_background(
    DvzVisual * visual,
    DvzCategoryId label_id
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the labels visual
label_id DvzCategoryId background label ID

Declared in include/datoviz/scene.h:3671.

dvz_labels_set_boundary()

Configure boundary rendering on a labels visual.

DvzResult dvz_labels_set_boundary(
    DvzVisual * visual,
    _Bool enabled,
    float width_px,
    DvzColor color
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the labels visual
enabled _Bool whether boundary rendering is enabled
width_px float boundary width in pixels
color DvzColor boundary color

Declared in include/datoviz/scene.h:3715.

dvz_labels_set_fallback_seed()

Set the deterministic fallback-color seed on a labels visual.

DvzResult dvz_labels_set_fallback_seed(
    DvzVisual * visual,
    uint32_t seed
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the labels visual
seed uint32_t fallback-color seed

Declared in include/datoviz/scene.h:3725.

dvz_labels_set_hidden()

Set the hidden label IDs on a labels visual.

DvzResult dvz_labels_set_hidden(
    DvzVisual * visual,
    const DvzCategoryId * ids,
    uint32_t count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the labels visual
ids const DvzCategoryId * hidden label IDs, or NULL when count is 0
count uint32_t hidden label ID count

Declared in include/datoviz/scene.h:3702.

dvz_labels_set_opacity()

Set the global opacity multiplier on a labels visual.

DvzResult dvz_labels_set_opacity(
    DvzVisual * visual,
    float opacity
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the labels visual
opacity float opacity multiplier in [0, 1]

Declared in include/datoviz/scene.h:3661.

dvz_labels_set_selected()

Set the selected label ID on a labels visual.

DvzResult dvz_labels_set_selected(
    DvzVisual * visual,
    DvzCategoryId label_id
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the labels visual
label_id DvzCategoryId selected label ID

Declared in include/datoviz/scene.h:3681.

dvz_labels_set_slice_axis()

Set the slice axis for a 3D labels visual.

DvzResult dvz_labels_set_slice_axis(
    DvzVisual * visual,
    DvzVolumeAxis axis
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the labels visual
axis DvzVolumeAxis slice axis

Declared in include/datoviz/scene.h:3735.

dvz_labels_set_slice_position()

Set the slice position for a 3D labels visual.

DvzResult dvz_labels_set_slice_position(
    DvzVisual * visual,
    double position
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the labels visual
position double normalized slice position in [0, 1]

Declared in include/datoviz/scene.h:3745.

dvz_labels_state()

Return the retained labels state for inspection.

const DvzLabelsState * dvz_labels_state(
    const DvzVisual * visual
);
Field Type Description
return const DvzLabelsState * the labels state, or NULL on error
visual const DvzVisual * the labels visual

Declared in include/datoviz/scene.h:3754.

Types

DvzLabelsState · record
struct DvzLabelsState {
    float opacity;
    DvzCategoryId background_id;
    _Bool selected_enabled;
    DvzCategoryId selected_id;
    DvzCategoryId[256] hidden_ids;
    uint32_t hidden_count;
    _Bool boundary_enabled;
    float boundary_width_px;
    DvzColor boundary_color;
    uint32_t fallback_seed;
    DvzVolumeAxis slice_axis;
    double slice_position;
    uint64_t version;
};

Declared in include/datoviz/scene/types.h:1129.

Limb

Types

DvzLimbMaterial · record
struct DvzLimbMaterial {
    float falloff;
    float sun_bias;
    float terminator_width;
    float night_factor;
};

Declared in include/datoviz/scene/types.h:1016.

Marker

Functions

dvz_marker()

Create a marker visual.

Renders screen-space code-SDF marker sprites with dense position (vec3), color (RGBA8), diameter_px (float in pixels), angle (float radians), and shape/symbol (uint32_t built-in symbol id) attributes. Optional item_state (uint32_t DvzItemStateKind bitfield) supports retained hover and selection styling. position is the center of the screen-space marker bounding box, diameter_px is its width and height, and positive angle rotates counter-clockwise in rendered y-up coordinates. Built-in code-SDF shapes include the standard Datoviz marker vocabulary plus target.

DvzVisual * dvz_marker(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:2775.

dvz_marker_set_style()

Configure marker fill/stroke styling.

Pass NULL to restore the default filled/no-stroke style. The aspect is exclusive: DVZ_SHAPE_ASPECT_FILLED draws only the fill, DVZ_SHAPE_ASPECT_STROKE draws only the edge, and DVZ_SHAPE_ASPECT_OUTLINE draws the fill with an edge.

DvzResult dvz_marker_set_style(
    DvzVisual * visual,
    const DvzMarkerStyle * style
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the marker visual
style const DvzMarkerStyle * the marker style descriptor, or NULL to restore defaults

Declared in include/datoviz/scene.h:2708.

dvz_marker_set_symbol()

Set every existing marker item to one built-in symbol.

This convenience writes the marker's dense "shape"/"symbol" attribute and requires an existing dense item count, usually from "position".

DvzResult dvz_marker_set_symbol(
    DvzVisual * visual,
    DvzSymbolBuiltin builtin
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the marker visual
builtin DvzSymbolBuiltin the built-in symbol

Declared in include/datoviz/scene.h:2682.

dvz_marker_set_symbols()

Bind a reusable symbol set to a marker visual.

Marker visuals accept built-in code-SDF ids and homogeneous bitmap/SDF/MSDF symbol arrays. Mixed built-in/texture-backed or mixed-encoding arrays are rejected for now.

DvzResult dvz_marker_set_symbols(
    DvzVisual * visual,
    const DvzSymbolSet * symbols
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the marker visual
symbols const DvzSymbolSet * the symbol set, or NULL to clear the binding

Declared in include/datoviz/scene.h:2669.

dvz_marker_style()

Return default marker styling.

The default marker style renders filled markers with no stroke. The color visual attribute remains the fill color; edge_color and stroke_width_px apply when the aspect is DVZ_SHAPE_ASPECT_STROKE or DVZ_SHAPE_ASPECT_OUTLINE.

DvzMarkerStyle dvz_marker_style(void);
Field Type Description
return DvzMarkerStyle default marker style descriptor

Declared in include/datoviz/scene.h:2694.

Types

DvzMarkerShape · enum
enum DvzMarkerShape {
    DVZ_MARKER_SHAPE_DISC = 0,
    DVZ_MARKER_SHAPE_SQUARE = 1,
    DVZ_MARKER_SHAPE_TRIANGLE = 2,
    DVZ_MARKER_SHAPE_DIAMOND = 3,
    DVZ_MARKER_SHAPE_CROSS = 4,
    DVZ_MARKER_SHAPE_RING = 5,
    DVZ_MARKER_SHAPE_TARGET = 6,
    DVZ_MARKER_SHAPE_ASTERISK = 7,
    DVZ_MARKER_SHAPE_CHEVRON = 8,
    DVZ_MARKER_SHAPE_CLOVER = 9,
    DVZ_MARKER_SHAPE_CLUB = 10,
    DVZ_MARKER_SHAPE_ARROW = 11,
    DVZ_MARKER_SHAPE_ELLIPSE = 12,
    DVZ_MARKER_SHAPE_HBAR = 13,
    DVZ_MARKER_SHAPE_HEART = 14,
    DVZ_MARKER_SHAPE_INFINITY = 15,
    DVZ_MARKER_SHAPE_PIN = 16,
    DVZ_MARKER_SHAPE_SPADE = 17,
    DVZ_MARKER_SHAPE_TAG = 18,
    DVZ_MARKER_SHAPE_VBAR = 19,
    DVZ_MARKER_SHAPE_ROUNDED_RECT = 20,
};

Declared in include/datoviz/scene/enums.h:298.

DvzMarkerStyle · record
struct DvzMarkerStyle {
    uint32_t struct_size;
    uint32_t flags;
    DvzColor edge_color;
    float stroke_width_px;
    DvzShapeAspect aspect;
};

Declared in include/datoviz/scene/types.h:1069.

Materials

Functions

dvz_limb_material_desc()

Return default view-dependent limb material options.

The descriptor uses DVZ_MATERIAL_MODEL_LIMB with blended alpha, opacity 0.12, a pale-blue base color, falloff 4, sun bias 0.05, terminator width 0.18, and night factor 0.08.

DvzMaterialDesc dvz_limb_material_desc(void);
Field Type Description
return DvzMaterialDesc default limb material descriptor

Declared in include/datoviz/scene.h:2479.

dvz_material_desc()

Return default visual material options.

The default material is the fast Phong model with opaque alpha, full opacity, a white base-color factor, light direction (-0.45, 0.35, 0.82), ambient 0.24, diffuse 0.82, specular 0.24, and shininess 26.

DvzMaterialDesc dvz_material_desc(void);
Field Type Description
return DvzMaterialDesc default material descriptor

Declared in include/datoviz/scene.h:2445.

dvz_phong_material_desc()

Return default Phong visual material options.

The descriptor uses DVZ_MATERIAL_MODEL_PHONG with the same defaults as dvz_material_desc().

DvzMaterialDesc dvz_phong_material_desc(void);
Field Type Description
return DvzMaterialDesc default Phong material descriptor

Declared in include/datoviz/scene.h:2456.

dvz_standard_material_desc()

Return default standard visual material options.

The descriptor uses DVZ_MATERIAL_MODEL_STANDARD with opaque alpha, full opacity, a white base-color factor, light direction (-0.45, 0.35, 0.82), roughness 0.62, specular 0.34, metallic 0, no emissive contribution, and rim contribution 0.10.

DvzMaterialDesc dvz_standard_material_desc(void);
Field Type Description
return DvzMaterialDesc default standard material descriptor

Declared in include/datoviz/scene.h:2468.

dvz_visual_set_material()

Set the shared material parameters for a primitive, mesh, or sphere visual.

Phong, standard, and view-dependent limb models map to the shared material shader payload. Pass NULL to restore default material parameters.

DvzResult dvz_visual_set_material(
    DvzVisual * visual,
    const DvzMaterialDesc * desc
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
desc const DvzMaterialDesc * the material descriptor, or NULL to restore defaults

Declared in include/datoviz/scene.h:2492.

Types

DvzMaterialDesc · record
struct DvzMaterialDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzMaterialModel model;
    DvzAlphaMode alpha_mode;
    float opacity;
    float[4] base_color_factor;
    float[3] light_direction;
    DvzPhongMaterial phong;
    DvzStandardMaterial standard;
    DvzLimbMaterial limb;
};

Declared in include/datoviz/scene/types.h:1026.

DvzMaterialModel · enum
enum DvzMaterialModel {
    DVZ_MATERIAL_MODEL_UNLIT = 0,
    DVZ_MATERIAL_MODEL_PHONG = 1,
    DVZ_MATERIAL_MODEL_STANDARD = 2,
    DVZ_MATERIAL_MODEL_LIMB = 3,
};

Declared in include/datoviz/scene/enums.h:240.

DvzPhongMaterial · record
struct DvzPhongMaterial {
    float ambient;
    float diffuse;
    float specular;
    float shininess;
};

Declared in include/datoviz/scene/types.h:995.

DvzStandardMaterial · record
struct DvzStandardMaterial {
    float roughness;
    float specular;
    float metallic;
    float[3] emissive;
    float rim_strength;
};

Declared in include/datoviz/scene/types.h:1005.

Mesh

Functions

dvz_mesh()

Create a mesh visual.

v0.4 meshes use a triangle-list topology with position (vec3), optional color (RGBA8, defaulting to opaque white when omitted), optional normal (vec3), optional texcoords (vec2), optional instance_transform (mat4, one per instance), and optional "index" buffer bindings for indexed draws. Binding an RGBA8 2D sampled field to the "texture" slot enables the first retained textured-mesh shader path.

DvzVisual * dvz_mesh(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:2921.

dvz_mesh_set_geometry()

Upload a CPU geometry object into a mesh visual.

Geometry positions, colors, normals, texture coordinates, and optional triangle indices are copied into the visual's retained attribute and index buffers.

DvzResult dvz_mesh_set_geometry(
    DvzVisual * visual,
    const DvzGeometry * geometry
);
Field Type Description
return DvzResult 0 on success, -1 on invalid input or upload failure
visual DvzVisual * the mesh visual
geometry const DvzGeometry * the CPU geometry object

Declared in include/datoviz/scene.h:2934.

Path

Functions

dvz_path()

Create a path visual.

A path accepts position (vec3), color (RGBA8), and optional per-point stroke_width_px (float, pixels). Without stroke_width_px, paths use the primitive line-strip pipeline. With stroke_width_px, paths use the scene.path screen-space stroke pipeline.

DvzVisual * dvz_path(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:3562.

dvz_path_set_caps()

Configure caps applied to each open subpath endpoint.

Arrow caps, dashes, per-item cap attributes, and closed subpaths are deferred. Supported first slice caps are none, round, triangle-in, triangle-out, square, and butt.

DvzResult dvz_path_set_caps(
    DvzVisual * visual,
    DvzSegmentCap start_cap,
    DvzSegmentCap end_cap
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the path visual
start_cap DvzSegmentCap cap applied to each open subpath start
end_cap DvzSegmentCap cap applied to each open subpath end

Declared in include/datoviz/scene.h:3577.

dvz_path_set_join()

Configure the join style and miter limit for stroked path corners.

DVZ_PATH_JOIN_MITER falls back to bevel when the miter length exceeds miter_limit times the local stroke width. Round and bevel joins ignore the limit.

DvzResult dvz_path_set_join(
    DvzVisual * visual,
    DvzPathJoin join,
    float miter_limit
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the path visual
join DvzPathJoin the path join style
miter_limit float positive finite miter limit

Declared in include/datoviz/scene.h:3592.

dvz_path_set_subpaths()

Set explicit subpath lengths for a path visual.

When unset, all points belong to one open subpath. Lengths are consumed in order and must sum to the path position count at emission time.

DvzResult dvz_path_set_subpaths(
    DvzVisual * visual,
    uint32_t subpath_count,
    const uint32_t * lengths
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the path visual
subpath_count uint32_t number of subpaths
lengths const uint32_t * point count for each subpath

Declared in include/datoviz/scene.h:3606.

Types

DvzPathJoin · enum
enum DvzPathJoin {
    DVZ_PATH_JOIN_MITER = 0,
    DVZ_PATH_JOIN_ROUND = 1,
    DVZ_PATH_JOIN_BEVEL = 2,
};

Declared in include/datoviz/scene/enums.h:282.

Pixel

Functions

dvz_pixel()

Create a pixel visual.

Renders screen-space square sprites with position (vec3), color (RGBA8), pixel_size_px (float, in pixels), and optional item_state (uint32_t DvzItemStateKind bitfield). WGSL/WebGPU emission lowers each item to an instanced quad.

DvzVisual * dvz_pixel(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:2757.

Point

Functions

dvz_point()

Create a point visual.

Renders screen-space antialiased circular sprites with position (vec3), color (RGBA8), diameter_px (float, in pixels), and optional item_state (uint32_t DvzItemStateKind bitfield). dvz_point_set_style() controls optional edge styling with edge_color, stroke_width_px, and a filled/stroke/outline aspect.

DvzVisual * dvz_point(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:2728.

dvz_point_set_style()

Configure circular point fill/stroke styling.

Pass NULL to restore the default filled/no-stroke style. The aspect is exclusive: DVZ_SHAPE_ASPECT_FILLED draws only the fill, DVZ_SHAPE_ASPECT_STROKE draws only the edge, and DVZ_SHAPE_ASPECT_OUTLINE draws the fill with an edge.

DvzResult dvz_point_set_style(
    DvzVisual * visual,
    const DvzPointStyleDesc * desc
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the point visual
desc const DvzPointStyleDesc * the point style descriptor, or NULL to restore defaults

Declared in include/datoviz/scene.h:2541.

dvz_point_style_desc()

Return default point styling.

The default point style renders filled circular points with no stroke. The color visual attribute remains the fill color; edge_color and stroke_width_px apply when the aspect is DVZ_SHAPE_ASPECT_STROKE or DVZ_SHAPE_ASPECT_OUTLINE.

DvzPointStyleDesc dvz_point_style_desc(void);
Field Type Description
return DvzPointStyleDesc default point style descriptor

Declared in include/datoviz/scene.h:2527.

Types

DvzPointStyleDesc · record
struct DvzPointStyleDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzColor edge_color;
    float stroke_width_px;
    DvzShapeAspect aspect;
};

Declared in include/datoviz/scene/types.h:1058.

Polygon

Functions

dvz_polygon()

Create a scene-owned semantic polygon object.

A polygon represents one filled region with one outer ring and optional hole rings.

DvzPolygon * dvz_polygon(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzPolygon * the polygon, or NULL on allocation failure
scene DvzScene * the scene
flags uint32_t reserved polygon flags

Declared in include/datoviz/scene.h:3157.

dvz_polygon_composite()

Create a scene-owned composite render view for a polygon.

DvzComposite * dvz_polygon_composite(
    DvzPolygon * polygon,
    uint32_t flags
);
Field Type Description
return DvzComposite * the composite, or NULL on allocation failure
polygon DvzPolygon * the source polygon
flags uint32_t reserved composite flags

Declared in include/datoviz/scene.h:3307.

dvz_polygon_desc()

Return a default polygon descriptor.

DvzPolygonDesc dvz_polygon_desc(void);
Field Type Description
return DvzPolygonDesc initialized polygon descriptor

Related: dvz_polygon().

Declared in include/datoviz/geom.h:412.

dvz_polygon_destroy()

Destroy a scene-owned polygon object and release its copied ring data.

void dvz_polygon_destroy(
    DvzPolygon * polygon
);
Field Type Description
polygon DvzPolygon * the polygon

Declared in include/datoviz/scene.h:3165.

dvz_polygon_set_fill_color()

Set the polygon fill color.

DvzResult dvz_polygon_set_fill_color(
    DvzPolygon * polygon,
    const DvzColor color
);
Field Type Description
return DvzResult 0 on success, -1 on error
polygon DvzPolygon * the polygon
color const DvzColor RGBA fill color

Declared in include/datoviz/scene.h:3253.

dvz_polygon_set_geometry()

Replace all polygon rings from a borrowed descriptor.

DvzResult dvz_polygon_set_geometry(
    DvzPolygon * polygon,
    const DvzPolygonDesc * desc
);
Field Type Description
return DvzResult 0 on success, -1 on invalid input or allocation failure
polygon DvzPolygon * the polygon
desc const DvzPolygonDesc * borrowed polygon descriptor

Declared in include/datoviz/scene.h:3183.

dvz_polygon_set_hole()

Append or replace one polygon hole ring.

Passing hole_index equal to the current hole count appends a new hole. Passing a smaller index replaces that hole.

DvzResult dvz_polygon_set_hole(
    DvzPolygon * polygon,
    uint32_t hole_index,
    const dvec2 * xy,
    uint32_t count
);
Field Type Description
return DvzResult 0 on success, -1 on invalid input or allocation failure
polygon DvzPolygon * the polygon
hole_index uint32_t hole index to replace, or current hole count to append
xy const dvec2 * borrowed XY vertex array
count uint32_t number of hole ring vertices

Declared in include/datoviz/scene.h:3210.

dvz_polygon_set_id()

Set the stable user id associated with a polygon.

DvzResult dvz_polygon_set_id(
    DvzPolygon * polygon,
    uint64_t id
);
Field Type Description
return DvzResult 0 on success, -1 on error
polygon DvzPolygon * the polygon
id uint64_t stable user id

Declared in include/datoviz/scene.h:3220.

dvz_polygon_set_outer()

Replace the polygon outer ring while preserving existing holes.

DvzResult dvz_polygon_set_outer(
    DvzPolygon * polygon,
    const dvec2 * xy,
    uint32_t count
);
Field Type Description
return DvzResult 0 on success, -1 on invalid input or allocation failure
polygon DvzPolygon * the polygon
xy const dvec2 * borrowed XY vertex array
count uint32_t number of outer ring vertices

Declared in include/datoviz/scene.h:3194.

dvz_polygon_set_stroke_caps()

Configure polygon stroke endpoint caps.

DvzResult dvz_polygon_set_stroke_caps(
    DvzPolygon * polygon,
    DvzSegmentCap start_cap,
    DvzSegmentCap end_cap
);
Field Type Description
return DvzResult 0 on success, -1 on error
polygon DvzPolygon * the polygon
start_cap DvzSegmentCap cap applied to each ring start
end_cap DvzSegmentCap cap applied to each ring end

Declared in include/datoviz/scene.h:3285.

dvz_polygon_set_stroke_color()

Set the polygon stroke color.

DvzResult dvz_polygon_set_stroke_color(
    DvzPolygon * polygon,
    const DvzColor color
);
Field Type Description
return DvzResult 0 on success, -1 on error
polygon DvzPolygon * the polygon
color const DvzColor RGBA stroke color

Declared in include/datoviz/scene.h:3263.

dvz_polygon_set_stroke_join()

Configure polygon stroke joins.

DvzResult dvz_polygon_set_stroke_join(
    DvzPolygon * polygon,
    DvzPathJoin join,
    float miter_limit
);
Field Type Description
return DvzResult 0 on success, -1 on error
polygon DvzPolygon * the polygon
join DvzPathJoin join style
miter_limit float positive finite miter limit

Declared in include/datoviz/scene.h:3297.

dvz_polygon_set_stroke_width_px()

Set the polygon stroke width in pixels.

DvzResult dvz_polygon_set_stroke_width_px(
    DvzPolygon * polygon,
    float width
);
Field Type Description
return DvzResult 0 on success, -1 on invalid input
polygon DvzPolygon * the polygon
width float stroke width in pixels

Declared in include/datoviz/scene.h:3273.

dvz_polygon_set_style()

Apply polygon render style.

Flat style setters remain the primary API for common updates. This descriptor is a convenience for applying defaults or several style fields atomically.

DvzResult dvz_polygon_set_style(
    DvzPolygon * polygon,
    const DvzPolygonStyle * style
);
Field Type Description
return DvzResult 0 on success, -1 on error
polygon DvzPolygon * the polygon
style const DvzPolygonStyle * polygon style descriptor

Declared in include/datoviz/scene.h:3243.

dvz_polygon_set_visible()

Set polygon visibility.

DvzResult dvz_polygon_set_visible(
    DvzPolygon * polygon,
    _Bool visible
);
Field Type Description
return DvzResult 0 on success, -1 on error
polygon DvzPolygon * the polygon
visible _Bool whether the polygon should render

Declared in include/datoviz/scene.h:3230.

dvz_polygon_style()

Return the default polygon style descriptor.

DvzPolygonStyle dvz_polygon_style(void);
Field Type Description
return DvzPolygonStyle default polygon style

Declared in include/datoviz/scene.h:3173.

Types

DvzPolygon · typedef
typedef struct DvzPolygon DvzPolygon;

Declared in include/datoviz/scene/types.h:66.

DvzPolygonDesc · record
struct DvzPolygonDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzPolygonRing outer;
    const DvzPolygonRing * holes;
    uint32_t hole_count;
};

Declared in include/datoviz/geom/types.h:280.

DvzPolygonRing · record
struct DvzPolygonRing {
    const dvec2 * xy;
    uint32_t count;
};

Declared in include/datoviz/geom/types.h:272.

DvzPolygonStyle · record
struct DvzPolygonStyle {
    uint32_t struct_size;
    uint32_t flags;
    _Bool visible;
    DvzColor fill_color;
    DvzColor stroke_color;
    float stroke_width_px;
    DvzSegmentCap stroke_start_cap;
    DvzSegmentCap stroke_end_cap;
    DvzPathJoin stroke_join;
    float stroke_miter_limit;
};

Declared in include/datoviz/scene/types.h:933.

Polygons

Functions

dvz_polygons()

Create a scene-owned semantic polygon set object.

A polygon set stores several independent polygon regions. Each region has its own rings and style.

DvzPolygons * dvz_polygons(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzPolygons * the polygon set, or NULL on allocation failure
scene DvzScene * the scene
flags uint32_t reserved polygon-set flags

Declared in include/datoviz/scene.h:3320.

dvz_polygons_add_region()

Append one polygon region to a polygon set.

uint32_t dvz_polygons_add_region(
    DvzPolygons * set,
    const DvzPolygonDesc * desc
);
Field Type Description
return uint32_t the polygon index, or UINT32_MAX on error
set DvzPolygons * the polygon set
desc const DvzPolygonDesc * borrowed polygon descriptor

Declared in include/datoviz/scene.h:3338.

dvz_polygons_composite()

Create a scene-owned composite render view for a polygon set.

DvzComposite * dvz_polygons_composite(
    DvzPolygons * set,
    uint32_t flags
);
Field Type Description
return DvzComposite * the composite, or NULL on allocation failure
set DvzPolygons * the polygon set
flags uint32_t reserved composite flags

Declared in include/datoviz/scene.h:3509.

dvz_polygons_destroy()

Destroy a scene-owned polygon set object.

void dvz_polygons_destroy(
    DvzPolygons * set
);
Field Type Description
set DvzPolygons * the polygon set

Declared in include/datoviz/scene.h:3328.

dvz_polygons_set_region_fill_color()

Set one polygon region's fill color.

DvzResult dvz_polygons_set_region_fill_color(
    DvzPolygons * set,
    uint32_t polygon_index,
    const DvzColor color
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
polygon_index uint32_t polygon index
color const DvzColor RGBA fill color

Declared in include/datoviz/scene.h:3411.

dvz_polygons_set_region_fill_colors()

Set a contiguous range of polygon region fill colors.

DvzResult dvz_polygons_set_region_fill_colors(
    DvzPolygons * set,
    uint32_t first_polygon,
    uint32_t polygon_count,
    const DvzColor * colors
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
first_polygon uint32_t first polygon index
polygon_count uint32_t number of regions to update
colors const DvzColor * RGBA fill colors

Declared in include/datoviz/scene.h:3424.

dvz_polygons_set_region_geometry()

Replace one polygon region's rings.

DvzResult dvz_polygons_set_region_geometry(
    DvzPolygons * set,
    uint32_t polygon_index,
    const DvzPolygonDesc * desc
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
polygon_index uint32_t polygon index
desc const DvzPolygonDesc * borrowed polygon descriptor

Declared in include/datoviz/scene.h:3349.

dvz_polygons_set_region_id()

Set one polygon region's stable user id.

DvzResult dvz_polygons_set_region_id(
    DvzPolygons * set,
    uint32_t polygon_index,
    uint64_t id
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
polygon_index uint32_t polygon index
id uint64_t stable user id

Declared in include/datoviz/scene.h:3362.

dvz_polygons_set_region_ids()

Set a contiguous range of polygon region stable user ids.

DvzResult dvz_polygons_set_region_ids(
    DvzPolygons * set,
    uint32_t first_polygon,
    uint32_t polygon_count,
    const uint64_t * ids
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
first_polygon uint32_t first polygon index
polygon_count uint32_t number of regions to update
ids const uint64_t * borrowed stable user id array

Declared in include/datoviz/scene.h:3374.

dvz_polygons_set_region_stroke_color()

Set one polygon region's stroke color.

DvzResult dvz_polygons_set_region_stroke_color(
    DvzPolygons * set,
    uint32_t polygon_index,
    const DvzColor color
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
polygon_index uint32_t polygon index
color const DvzColor RGBA stroke color

Declared in include/datoviz/scene.h:3436.

dvz_polygons_set_region_stroke_colors()

Set a contiguous range of polygon region stroke colors.

DvzResult dvz_polygons_set_region_stroke_colors(
    DvzPolygons * set,
    uint32_t first_polygon,
    uint32_t polygon_count,
    const DvzColor * colors
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
first_polygon uint32_t first polygon index
polygon_count uint32_t number of regions to update
colors const DvzColor * RGBA stroke colors

Declared in include/datoviz/scene.h:3449.

dvz_polygons_set_region_stroke_width_px()

Set one polygon region's stroke width in pixels.

DvzResult dvz_polygons_set_region_stroke_width_px(
    DvzPolygons * set,
    uint32_t polygon_index,
    float width
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
polygon_index uint32_t polygon index
width float stroke width in pixels

Declared in include/datoviz/scene.h:3462.

dvz_polygons_set_region_stroke_widths_px()

Set a contiguous range of polygon region stroke widths.

DvzResult dvz_polygons_set_region_stroke_widths_px(
    DvzPolygons * set,
    uint32_t first_polygon,
    uint32_t polygon_count,
    const float * widths
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
first_polygon uint32_t first polygon index
polygon_count uint32_t number of regions to update
widths const float * stroke widths in pixels

Declared in include/datoviz/scene.h:3474.

dvz_polygons_set_region_visibilities()

Set a contiguous range of polygon region visibilities.

DvzResult dvz_polygons_set_region_visibilities(
    DvzPolygons * set,
    uint32_t first_polygon,
    uint32_t polygon_count,
    const _Bool * visible
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
first_polygon uint32_t first polygon index
polygon_count uint32_t number of regions to update
visible const _Bool * borrowed visibility array

Declared in include/datoviz/scene.h:3399.

dvz_polygons_set_region_visible()

Set one polygon region's visibility.

DvzResult dvz_polygons_set_region_visible(
    DvzPolygons * set,
    uint32_t polygon_index,
    _Bool visible
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
polygon_index uint32_t polygon index
visible _Bool whether the region should render

Declared in include/datoviz/scene.h:3387.

dvz_polygons_set_stroke_caps()

Configure polygon-set stroke endpoint caps.

DvzResult dvz_polygons_set_stroke_caps(
    DvzPolygons * set,
    DvzSegmentCap start_cap,
    DvzSegmentCap end_cap
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
start_cap DvzSegmentCap cap applied to each ring start
end_cap DvzSegmentCap cap applied to each ring end

Declared in include/datoviz/scene.h:3487.

dvz_polygons_set_stroke_join()

Configure polygon-set stroke joins.

DvzResult dvz_polygons_set_stroke_join(
    DvzPolygons * set,
    DvzPathJoin join,
    float miter_limit
);
Field Type Description
return DvzResult 0 on success, -1 on error
set DvzPolygons * the polygon set
join DvzPathJoin join style
miter_limit float positive finite miter limit

Declared in include/datoviz/scene.h:3499.

Types

DvzPolygons · typedef
typedef struct DvzPolygons DvzPolygons;

Declared in include/datoviz/scene/types.h:67.

Primitive

Functions

dvz_primitive()

Create a primitive visual.

Renders raw GPU primitives (point lists, line lists/strips, triangle lists/strips) with built-in shaders. Accepts position (vec3) and color (RGBA8), plus optional normal (vec3) and optional "index" buffer bindings for indexed draws.

DvzVisual * dvz_primitive(
    DvzScene * scene,
    DvzPrimitiveTopology topology,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
topology DvzPrimitiveTopology primitive topology, fixed at construction time
flags uint32_t variant flags

Declared in include/datoviz/scene.h:2904.

Segment

Functions

dvz_segment()

Create a segment visual.

v0.4 segment visuals render independent endpoint pairs as analytic screen-space stroked line segments. Dense attributes are position_start (vec3), position_end (vec3), color (RGBA8), and stroke_width_px (float width in pixels). Segment caps default to butt at both ends.

DvzVisual * dvz_segment(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:2818.

dvz_segment_set_caps()

Configure segment endpoint caps.

Arrow caps, dashes, scalar color, and per-item cap attributes are deferred. Supported first slice caps are none, round, triangle-in, triangle-out, square, and butt.

DvzResult dvz_segment_set_caps(
    DvzVisual * visual,
    DvzSegmentCap start_cap,
    DvzSegmentCap end_cap
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the segment visual
start_cap DvzSegmentCap cap applied to position_start
end_cap DvzSegmentCap cap applied to position_end

Declared in include/datoviz/scene.h:2833.

Types

DvzSegmentCap · enum
enum DvzSegmentCap {
    DVZ_SEGMENT_CAP_NONE = 0,
    DVZ_SEGMENT_CAP_ROUND = 1,
    DVZ_SEGMENT_CAP_TRIANGLE_IN = 2,
    DVZ_SEGMENT_CAP_TRIANGLE_OUT = 3,
    DVZ_SEGMENT_CAP_SQUARE = 4,
    DVZ_SEGMENT_CAP_BUTT = 5,
};

Declared in include/datoviz/scene/enums.h:263.

Sphere

Functions

dvz_sphere()

Create a sphere impostor visual.

Sphere visuals render one analytic 3D sphere per item from position (vec3 center), color (RGBA8), and radius (float). The GLSL backend reconstructs the sphere surface in the fragment shader, writes sphere-surface depth, and uses analytic antialiasing at the silhouette.

DvzVisual * dvz_sphere(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:2789.

dvz_sphere_set_mode()

Set the sphere impostor rendering mode.

DVZ_SPHERE_MODE_FAST_IMPOSTOR uses the cheap point-coordinate sphere reconstruction. DVZ_SPHERE_MODE_RAYCAST_IMPOSTOR intersects the camera ray with the sphere in the fragment shader for more accurate surface position, normal, and depth.

DvzResult dvz_sphere_set_mode(
    DvzVisual * visual,
    DvzSphereMode mode
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the sphere visual
mode DvzSphereMode the rendering mode

Declared in include/datoviz/scene.h:2803.

Types

DvzSphereFlags · enum
enum DvzSphereFlags {
    DVZ_SPHERE_FLAGS_NONE = 0,
    DVZ_SPHERE_FLAGS_LIGHTING = 1,
};

Declared in include/datoviz/scene/enums.h:249.

DvzSphereMode · enum
enum DvzSphereMode {
    DVZ_SPHERE_MODE_FAST_IMPOSTOR = 0,
    DVZ_SPHERE_MODE_RAYCAST_IMPOSTOR = 1,
};

Declared in include/datoviz/scene/enums.h:256.

Splat

Functions

dvz_splat()

Create a Gaussian splat visual.

Renders one screen-facing Gaussian footprint per item with position (vec3), color (RGBA8), sigma (vec2, screen pixels), and angle (float radians). The first implementation uses center depth, depth test on, depth writes off through alpha blending, and no sorting or projected 3D covariance.

DvzVisual * dvz_splat(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:2743.

Symbol

Functions

dvz_symbol_bitmap()

Register an RGBA bitmap symbol source in one symbol set.

The payload is copied into scene-owned storage. Homogeneous bitmap marker symbol arrays render through a scene-owned atlas texture.

DvzSymbolId dvz_symbol_bitmap(
    DvzSymbolSet * symbols,
    const char * name,
    const void * rgba,
    uint32_t width,
    uint32_t height,
    const DvzSymbolImageDesc * desc
);
Field Type Description
return DvzSymbolId the symbol id, or DVZ_SYMBOL_ID_INVALID on error
symbols DvzSymbolSet * the symbol set
name const char * optional diagnostic name
rgba const void * RGBA8 payload
width uint32_t source width in pixels
height uint32_t source height in pixels
desc const DvzSymbolImageDesc * optional image source options

Declared in include/datoviz/scene.h:2596.

dvz_symbol_builtin()

Register or return a built-in symbol id in one symbol set.

Built-in symbol ids are stable within the set and currently match the corresponding DvzMarkerShape values so marker shape and symbol data can share one retained path.

DvzSymbolId dvz_symbol_builtin(
    DvzSymbolSet * symbols,
    DvzSymbolBuiltin builtin
);
Field Type Description
return DvzSymbolId the symbol id, or DVZ_SYMBOL_ID_INVALID on error
symbols DvzSymbolSet * the symbol set
builtin DvzSymbolBuiltin the built-in symbol

Declared in include/datoviz/scene.h:2568.

dvz_symbol_image_desc()

Return default image-backed symbol source options.

The default row stride is tightly packed. distance_range_px is used by SDF/MSDF sources and is ignored for bitmap sources.

DvzSymbolImageDesc dvz_symbol_image_desc(void);
Field Type Description
return DvzSymbolImageDesc default symbol image descriptor

Declared in include/datoviz/scene.h:2579.

dvz_symbol_msdf()

Register an RGB MSDF symbol source in one symbol set.

The payload is copied into scene-owned storage. desc->distance_range_px describes the encoded distance-field range in source pixels when nonzero.

DvzSymbolId dvz_symbol_msdf(
    DvzSymbolSet * symbols,
    const char * name,
    const void * msdf,
    uint32_t width,
    uint32_t height,
    const DvzSymbolImageDesc * desc
);
Field Type Description
return DvzSymbolId the symbol id, or DVZ_SYMBOL_ID_INVALID on error
symbols DvzSymbolSet * the symbol set
name const char * optional diagnostic name
msdf const void * RGB8 MSDF payload
width uint32_t source width in pixels
height uint32_t source height in pixels
desc const DvzSymbolImageDesc * optional image source options

Declared in include/datoviz/scene.h:2634.

dvz_symbol_sdf()

Register a single-channel SDF symbol source in one symbol set.

The payload is copied into scene-owned storage. desc->distance_range_px describes the encoded distance-field range in source pixels when nonzero.

DvzSymbolId dvz_symbol_sdf(
    DvzSymbolSet * symbols,
    const char * name,
    const void * sdf,
    uint32_t width,
    uint32_t height,
    const DvzSymbolImageDesc * desc
);
Field Type Description
return DvzSymbolId the symbol id, or DVZ_SYMBOL_ID_INVALID on error
symbols DvzSymbolSet * the symbol set
name const char * optional diagnostic name
sdf const void * R8 SDF payload
width uint32_t source width in pixels
height uint32_t source height in pixels
desc const DvzSymbolImageDesc * optional image source options

Declared in include/datoviz/scene.h:2615.

dvz_symbol_set()

Create a scene-owned reusable symbol set.

Built-in code-SDF symbols are marker-renderable today. Bitmap, SDF, and MSDF source payloads are retained by the same object model; SVG-path import and atlas-backed marker rendering are later parity slices.

DvzSymbolSet * dvz_symbol_set(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzSymbolSet * the symbol set, or NULL on error
scene DvzScene * the scene
flags uint32_t reserved flags

Declared in include/datoviz/scene.h:2555.

dvz_symbol_svg_path()

Generate and register an MSDF symbol source from an SVG path string.

The generated payload is copied into scene-owned storage through dvz_symbol_msdf(). desc->distance_range_px controls the generated distance-field pixel range when nonzero. This function returns DVZ_SYMBOL_ID_INVALID if Datoviz was built without msdfgen SVG support.

DvzSymbolId dvz_symbol_svg_path(
    DvzSymbolSet * symbols,
    const char * name,
    const char * svg_path,
    uint32_t width,
    uint32_t height,
    const DvzSymbolImageDesc * desc
);
Field Type Description
return DvzSymbolId the symbol id, or DVZ_SYMBOL_ID_INVALID on error
symbols DvzSymbolSet * the symbol set
name const char * optional diagnostic name
svg_path const char * SVG path data string
width uint32_t generated atlas source width in pixels
height uint32_t generated atlas source height in pixels
desc const DvzSymbolImageDesc * optional image source options

Declared in include/datoviz/scene.h:2654.

Types

DvzSymbolBuiltin · enum
enum DvzSymbolBuiltin {
    DVZ_SYMBOL_DISC = 0,
    DVZ_SYMBOL_SQUARE = 1,
    DVZ_SYMBOL_TRIANGLE = 2,
    DVZ_SYMBOL_DIAMOND = 3,
    DVZ_SYMBOL_CROSS = 4,
    DVZ_SYMBOL_RING = 5,
    DVZ_SYMBOL_TARGET = 6,
    DVZ_SYMBOL_ASTERISK = 7,
    DVZ_SYMBOL_CHEVRON = 8,
    DVZ_SYMBOL_CLOVER = 9,
    DVZ_SYMBOL_CLUB = 10,
    DVZ_SYMBOL_ARROW = 11,
    DVZ_SYMBOL_ELLIPSE = 12,
    DVZ_SYMBOL_HBAR = 13,
    DVZ_SYMBOL_HEART = 14,
    DVZ_SYMBOL_INFINITY = 15,
    DVZ_SYMBOL_PIN = 16,
    DVZ_SYMBOL_SPADE = 17,
    DVZ_SYMBOL_TAG = 18,
    DVZ_SYMBOL_VBAR = 19,
    DVZ_SYMBOL_ROUNDED_RECT = 20,
};

Declared in include/datoviz/scene/enums.h:324.

DvzSymbolId · typedef
typedef uint32_t DvzSymbolId;

Declared in include/datoviz/scene/types.h:106.

DvzSymbolImageDesc · record
struct DvzSymbolImageDesc {
    uint32_t struct_size;
    uint32_t flags;
    uint32_t row_stride;
    float distance_range_px;
};

Declared in include/datoviz/scene/types.h:1080.

DvzSymbolSet · typedef
typedef struct DvzSymbolSet DvzSymbolSet;

Declared in include/datoviz/scene/types.h:91.

DvzSymbolSourceKind · enum
enum DvzSymbolSourceKind {
    DVZ_SYMBOL_SOURCE_NONE = 0,
    DVZ_SYMBOL_SOURCE_BUILTIN = 1,
    DVZ_SYMBOL_SOURCE_BITMAP = 2,
    DVZ_SYMBOL_SOURCE_SDF = 3,
    DVZ_SYMBOL_SOURCE_MSDF = 4,
};

Declared in include/datoviz/scene/enums.h:350.

Tessellate

Functions

dvz_tessellate_cubic_bezier()

Tessellate a cubic Bezier curve into an owned point path.

DvzTessellatedPath * dvz_tessellate_cubic_bezier(
    const dvec3 p0,
    const dvec3 p1,
    const dvec3 p2,
    const dvec3 p3,
    const DvzBezierTessellationDesc * desc
);
Field Type Description
return DvzTessellatedPath * new owned tessellated path, or NULL on invalid input or allocation failure; destroy with dvz_tessellated_path_destroy()
p0 const dvec3 first endpoint
p1 const dvec3 first control point
p2 const dvec3 second control point
p3 const dvec3 second endpoint
desc const DvzBezierTessellationDesc * optional borrowed tessellation descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:469.

dvz_tessellate_quadratic_bezier()

Tessellate a quadratic Bezier curve into an owned point path.

DvzTessellatedPath * dvz_tessellate_quadratic_bezier(
    const dvec3 p0,
    const dvec3 p1,
    const dvec3 p2,
    const DvzBezierTessellationDesc * desc
);
Field Type Description
return DvzTessellatedPath * new owned tessellated path, or NULL on invalid input or allocation failure; destroy with dvz_tessellated_path_destroy()
p0 const dvec3 first endpoint
p1 const dvec3 control point
p2 const dvec3 second endpoint
desc const DvzBezierTessellationDesc * optional borrowed tessellation descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:454.

Tessellated

Functions

dvz_tessellated_path_destroy()

Destroy a tessellated path.

void dvz_tessellated_path_destroy(
    DvzTessellatedPath * path
);
Field Type Description
path DvzTessellatedPath * owned tessellated path to destroy; may be NULL

Declared in include/datoviz/geom.h:479.

Types

DvzTessellatedPath · record
struct DvzTessellatedPath {
    uint32_t point_count;
    dvec3 * points;
};

Declared in include/datoviz/geom/types.h:310.

Triangulate

Functions

dvz_triangulate_polygon()

Triangulate a polygon with optional holes into indexed XY mesh geometry.

DvzGeometry * dvz_triangulate_polygon(
    const DvzPolygonDesc * polygon,
    const DvzTriangulationDesc * desc
);
Field Type Description
return DvzGeometry * new owned geometry, or NULL on invalid input or triangulation failure; destroy with dvz_geometry_destroy()
polygon const DvzPolygonDesc * borrowed polygon descriptor; must not be NULL and its arrays must remain valid for the duration of the call
desc const DvzTriangulationDesc * optional borrowed triangulation descriptor, or NULL for defaults

Declared in include/datoviz/geom.h:441.

Triangulation

Functions

dvz_triangulation_desc()

Return a default triangulation descriptor.

DvzTriangulationDesc dvz_triangulation_desc(void);
Field Type Description
return DvzTriangulationDesc initialized triangulation descriptor

Declared in include/datoviz/geom.h:420.

Types

DvzTriangulationBackend · enum
enum DvzTriangulationBackend {
    DVZ_TRIANGULATION_BACKEND_DEFAULT = 0,
    DVZ_TRIANGULATION_BACKEND_EARCUT = 1,
};

Declared in include/datoviz/geom/enums.h:57.

DvzTriangulationDesc · record
struct DvzTriangulationDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzTriangulationBackend backend;
};

Declared in include/datoviz/geom/types.h:291.

Vector

Functions

dvz_vector()

Create a vector visual.

Straight vector items accept dense position (vec3 tail/anchor), vector (vec3 displacement), color (RGBA8), and stroke_width_px (float pixels). The first native lowering renders each item through the scene segment stroke pipeline with source item identity preserved.

Curved mode omits vector; position, color, and stroke_width_px are then interpreted as path points, optionally grouped by dvz_vector_set_subpaths().

DvzVisual * dvz_vector(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:2861.

dvz_vector_set_style()

Configure vector styling.

v0.4 supports visual-wide scale, anchor, endpoint caps, and path join settings. Passing NULL restores the defaults.

DvzResult dvz_vector_set_style(
    DvzVisual * visual,
    const DvzVectorStyle * style
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the vector visual
style const DvzVectorStyle * style descriptor, or NULL for defaults

Declared in include/datoviz/scene.h:2874.

dvz_vector_set_subpaths()

Set explicit curved-vector subpath lengths for a vector visual.

When unset in curved mode, all points belong to one open vector path. Lengths are consumed in order and must sum to the vector visual's path-point count at emission time.

DvzResult dvz_vector_set_subpaths(
    DvzVisual * visual,
    uint32_t subpath_count,
    const uint32_t * lengths
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the vector visual
subpath_count uint32_t number of subpaths
lengths const uint32_t * point count for each subpath

Declared in include/datoviz/scene.h:2888.

dvz_vector_style()

Return default vector styling.

The default style renders a tail-anchored vector with a triangular end cap. scale multiplies each dense vector attribute before endpoint derivation.

DvzVectorStyle dvz_vector_style(void);
Field Type Description
return DvzVectorStyle default vector style descriptor

Declared in include/datoviz/scene.h:2844.

Types

DvzVectorAnchor · enum
enum DvzVectorAnchor {
    DVZ_VECTOR_ANCHOR_TAIL = 0,
    DVZ_VECTOR_ANCHOR_CENTER = 1,
    DVZ_VECTOR_ANCHOR_HEAD = 2,
};

Declared in include/datoviz/scene/enums.h:274.

DvzVectorStyle · record
struct DvzVectorStyle {
    uint32_t struct_size;
    uint32_t flags;
    float scale;
    DvzVectorAnchor anchor;
    DvzSegmentCap start_cap;
    DvzSegmentCap end_cap;
    DvzPathJoin join;
    float miter_limit;
};

Declared in include/datoviz/scene/types.h:919.

Visual

Functions

dvz_visual_alpha_mode()

Return the visual alpha handling mode.

DvzAlphaMode dvz_visual_alpha_mode(
    const DvzVisual * visual
);
Field Type Description
return DvzAlphaMode the alpha handling mode
visual const DvzVisual * the visual

Declared in include/datoviz/scene.h:1870.

dvz_visual_attach_desc()

Return the default visual attachment descriptor.

DvzVisualAttachDesc dvz_visual_attach_desc(void);
Field Type Description
return DvzVisualAttachDesc default visual attachment descriptor

Declared in include/datoviz/scene.h:1089.

dvz_visual_attr_count()

Return the number of public attributes accepted by a visual family.

uint32_t dvz_visual_attr_count(
    const DvzVisual * visual
);
Field Type Description
return uint32_t the number of supported public attributes, or 0 when visual is NULL
visual const DvzVisual * the visual

Declared in include/datoviz/scene.h:1721.

dvz_visual_attr_format()

Return the effective storage format for a visual attribute.

Missing attributes return the family default format.

DvzVisualAttrFormat dvz_visual_attr_format(
    const DvzVisual * visual,
    const char * attr_name
);
Field Type Description
return DvzVisualAttrFormat the effective attribute storage format
visual const DvzVisual * the visual
attr_name const char * attribute name

Declared in include/datoviz/scene.h:2029.

dvz_visual_attr_info()

Copy public metadata for one visual attribute.

The returned name pointer is owned by Datoviz and remains valid for the process lifetime. source_mask uses (1u << DvzVisualAttrSource) bits.

DvzResult dvz_visual_attr_info(
    const DvzVisual * visual,
    uint32_t index,
    DvzVisualAttrInfo * out
);
Field Type Description
return DvzResult DVZ_OK on success, DVZ_ERROR on invalid arguments
visual const DvzVisual * the visual
index uint32_t attribute index in [0, dvz_visual_attr_count())
out DvzVisualAttrInfo * output attribute metadata

Declared in include/datoviz/scene.h:1736.

dvz_visual_attr_mutability()

Return the expected update frequency for a visual attribute.

Missing attributes default to DVZ_VISUAL_ATTR_MUTABILITY_DYNAMIC.

DvzVisualAttrMutability dvz_visual_attr_mutability(
    const DvzVisual * visual,
    const char * attr_name
);
Field Type Description
return DvzVisualAttrMutability the mutability hint
visual const DvzVisual * the visual
attr_name const char * attribute name

Declared in include/datoviz/scene.h:1997.

dvz_visual_attr_source()

Return the semantic source for a visual attribute.

Missing attributes default to DVZ_VISUAL_ATTR_SOURCE_PER_ITEM.

DvzVisualAttrSource dvz_visual_attr_source(
    const DvzVisual * visual,
    const char * attr_name
);
Field Type Description
return DvzVisualAttrSource the semantic attribute source
visual const DvzVisual * the visual
attr_name const char * attribute name

Declared in include/datoviz/scene.h:1969.

dvz_visual_attr_supported()

Return whether a visual accepts one public attribute name.

_Bool dvz_visual_attr_supported(
    const DvzVisual * visual,
    const char * attr_name
);
Field Type Description
return _Bool whether the attribute is accepted by the visual family
visual const DvzVisual * the visual
attr_name const char * public attribute name

Declared in include/datoviz/scene.h:1746.

dvz_visual_blend_mode()

Return the visual blend mode.

DvzBlendMode dvz_visual_blend_mode(
    const DvzVisual * visual
);
Field Type Description
return DvzBlendMode the visual blend mode
visual const DvzVisual * the visual

Declared in include/datoviz/scene.h:1831.

dvz_visual_bounds()

Return the retained visual-space bounding box of one visual.

The box is computed from CPU-retained dense visual attributes and family-specific geometry state. It does not require an emitted frame or a live graphics backend. Buffer-backed attributes do not expose CPU-side bounds in the current v0.4 path.

DvzResult dvz_visual_bounds(
    const DvzVisual * visual,
    DvzBounds * out
);
Field Type Description
return DvzResult 0 when bounds are available, -1 otherwise
visual const DvzVisual * the visual
out DvzBounds * output bounding box

Declared in include/datoviz/scene.h:2134.

dvz_visual_clear_item_range()

Clear the active logical item range and restore full visual participation.

DvzResult dvz_visual_clear_item_range(
    DvzVisual * visual
);
Field Type Description
return DvzResult DVZ_OK if the item range was cleared, DVZ_ERROR otherwise
visual DvzVisual * the visual

Declared in include/datoviz/scene.h:2107.

dvz_visual_clear_transform()

Clear the retained visual-local transform back to identity.

DvzResult dvz_visual_clear_transform(
    DvzVisual * visual
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual

Declared in include/datoviz/scene.h:1940.

dvz_visual_data()

Return a read-only view of retained dense visual attribute data.

Attribute aliases are resolved with the same storage-name rules as dvz_visual_set_data(). Buffer-backed, field-backed, metadata-only, and missing attributes do not expose dense data through this dense-data view.

DvzResult dvz_visual_data(
    const DvzVisual * visual,
    const char * attr_name,
    DvzVisualDataView * out
);
Field Type Description
return DvzResult 0 when dense data is available, -1 otherwise
visual const DvzVisual * the visual
attr_name const char * attribute name
out DvzVisualDataView * output data view

Declared in include/datoviz/scene.h:2080.

dvz_visual_depth_test()

Return whether depth testing is enabled for the visual.

_Bool dvz_visual_depth_test(
    const DvzVisual * visual
);
Field Type Description
return _Bool whether depth testing is enabled
visual const DvzVisual * the visual

Declared in include/datoviz/scene.h:1792.

dvz_visual_destroy()

Destroy a visual.

void dvz_visual_destroy(
    DvzVisual * visual
);
Field Type Description
visual DvzVisual * the visual

Declared in include/datoviz/scene.h:1685.

dvz_visual_family()

Return the family of a visual.

DvzSceneVisualFamily dvz_visual_family(
    const DvzVisual * visual
);
Field Type Description
return DvzSceneVisualFamily the visual family, or DVZ_SCENE_VISUAL_FAMILY_NONE when visual is NULL
visual const DvzVisual * the visual

Declared in include/datoviz/scene.h:1703.

dvz_visual_family_name()

Return the stable public name of a visual family.

const char * dvz_visual_family_name(
    DvzSceneVisualFamily family
);
Field Type Description
return const char * the family name, or "none" for unknown/none
family DvzSceneVisualFamily the visual family

Declared in include/datoviz/scene.h:1712.

dvz_visual_get_item_range()

Return the effective logical item range for a retained visual.

When no explicit range is active, this returns the full effective range. This first API does not distinguish an explicitly full active range from a cleared range.

_Bool dvz_visual_get_item_range(
    const DvzVisual * visual,
    DvzItemRange * out
);
Field Type Description
return _Bool true on success, false on invalid input or unsupported visual state
visual const DvzVisual * the visual
out DvzItemRange * output item range

Declared in include/datoviz/scene.h:2120.

dvz_visual_get_transform()

Copy the retained visual-local transform.

When no transform is retained, this writes identity to out.

DvzResult dvz_visual_get_transform(
    const DvzVisual * visual,
    mat4 out
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual const DvzVisual * the visual
out mat4 output local model transform

Declared in include/datoviz/scene.h:1931.

dvz_visual_has_transform()

Return whether a visual has a retained local transform.

_Bool dvz_visual_has_transform(
    const DvzVisual * visual
);
Field Type Description
return _Bool whether a non-default local transform is retained
visual const DvzVisual * the visual

Declared in include/datoviz/scene.h:1919.

dvz_visual_id()

Return the scene-local identity of a visual.

DvzId dvz_visual_id(
    const DvzVisual * visual
);
Field Type Description
return DvzId the scene-local identity, or DVZ_ID_NONE when visual is NULL
visual const DvzVisual * the visual

Declared in include/datoviz/scene.h:1694.

dvz_visual_set_alpha_mode()

Set the visual alpha handling mode.

This controls which transparency path the scene planner should use for the visual. Use DVZ_ALPHA_BLENDED for ordinary source-over alpha blending, DVZ_ALPHA_WBOIT for weighted blended order-independent transparency, and DVZ_ALPHA_DEPTH_PEEL for the depth-peeling order-independent transparency path.

DvzResult dvz_visual_set_alpha_mode(
    DvzVisual * visual,
    DvzAlphaMode mode
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
mode DvzAlphaMode the alpha handling mode

Declared in include/datoviz/scene.h:1807.

dvz_visual_set_attr_buffer()

Bind a scene-owned buffer to a per-item visual attribute.

This is the C-level groundwork for externally produced GPU attributes. v0.4 currently supports planar vertex attributes only: the scene buffer stride must match the attribute item size, and the attribute source must remain DVZ_VISUAL_ATTR_SOURCE_PER_ITEM.

If the bound scene buffer has CPU data, the scene emits normal buffer upload commands. If it has no CPU data, the scene registers the resource label for a live runtime to satisfy separately and emits no CPU upload for that attribute.

DvzResult dvz_visual_set_attr_buffer(
    DvzVisual * visual,
    const char * attr_name,
    DvzSceneBuffer * buffer,
    uint64_t byte_offset,
    uint32_t item_count
);
Field Type Description
return DvzResult DVZ_OK on success, DVZ_ERROR on error
visual DvzVisual * the visual
attr_name const char * attribute name
buffer DvzSceneBuffer * the scene buffer, or NULL to clear the binding
byte_offset uint64_t byte offset into the buffer
item_count uint32_t number of attribute items

Declared in include/datoviz/scene.h:2431.

dvz_visual_set_attr_format()

Declare the storage format for a visual attribute.

The format changes the payload type accepted by dvz_visual_set_data() for that attribute. It must be set before dense data or an external buffer is attached. Missing attributes use the family default format; point and pixel "color" default to DVZ_VISUAL_ATTR_FORMAT_RGBA_U8.

DVZ_VISUAL_ATTR_FORMAT_SCALAR_F32 is currently defined for point and pixel "color" and requires a continuous scale bound to the semantic "color" slot.

DvzResult dvz_visual_set_attr_format(
    DvzVisual * visual,
    const char * attr_name,
    DvzVisualAttrFormat format
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
attr_name const char * attribute name
format DvzVisualAttrFormat requested attribute storage format

Declared in include/datoviz/scene.h:2015.

dvz_visual_set_attr_mutability()

Declare the expected update frequency for a visual attribute.

The hint is advisory and does not change ownership. It should be set before attaching data when callers know that an attribute is static or updated every frame.

DvzResult dvz_visual_set_attr_mutability(
    DvzVisual * visual,
    const char * attr_name,
    DvzVisualAttrMutability mutability
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
attr_name const char * attribute name
mutability DvzVisualAttrMutability the expected update frequency

Declared in include/datoviz/scene.h:1983.

dvz_visual_set_attr_source()

Declare the semantic source for a visual attribute.

This metadata is used by scene planning and future external-buffer lowering. The active dense data path remains DVZ_VISUAL_ATTR_SOURCE_PER_ITEM; non-per-item sources may be declared only before dense data is attached to the attribute.

DvzResult dvz_visual_set_attr_source(
    DvzVisual * visual,
    const char * attr_name,
    DvzVisualAttrSource source
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
attr_name const char * attribute name
source DvzVisualAttrSource the semantic attribute source

Declared in include/datoviz/scene.h:1955.

dvz_visual_set_blend_mode()

Set how an ordinarily blended visual is composited with the current color target.

Blend mode is independent from alpha mode. DVZ_BLEND_SOURCE_OVER is the default and uses ordinary source-over composition. DVZ_BLEND_ADDITIVE accumulates source RGB using source alpha while preserving source-over alpha coverage. Additive composition requires DVZ_ALPHA_BLENDED; it is invalid with WBOIT or depth peeling.

DvzResult dvz_visual_set_blend_mode(
    DvzVisual * visual,
    DvzBlendMode mode
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
mode DvzBlendMode the visual blend mode

Declared in include/datoviz/scene.h:1822.

dvz_visual_set_buffer()

Bind a scene-owned buffer to a named visual slot.

v0.4 primitive and mesh visuals accept the "index" slot. The bound scene buffer must advertise DVZ_SCENE_BUFFER_USAGE_INDEX.

DvzResult dvz_visual_set_buffer(
    DvzVisual * visual,
    const char * slot_name,
    DvzSceneBuffer * buffer
);
Field Type Description
return DvzResult DVZ_OK on success, DVZ_ERROR on error
visual DvzVisual * the visual
slot_name const char * the semantic slot name
buffer DvzSceneBuffer * the buffer, or NULL to clear the binding

Declared in include/datoviz/scene.h:2394.

dvz_visual_set_data()

Write attribute data to a visual.

v0.4 visual families currently accept:

Visual family Attributes
point "position" (vec3f), "color" (RGBA8 or scalar float with a color scale), "diameter_px" (float pixels), optional "item_state" (uint32_t DvzItemStateKind bitfield)
splat "position" (vec3f), "color" (RGBA8), "sigma" (vec2f pixels), "angle" (float radians)
pixel "position" (vec3f), "color" (RGBA8 or scalar float with a color scale), "pixel_size_px" (float pixels), optional "item_state" (uint32_t DvzItemStateKind bitfield)
marker "position" (vec3f), "color" (RGBA8), "diameter_px" (float pixels), "angle" (float radians), "shape" (uint32_t DvzMarkerShape), optional "item_state" (uint32_t DvzItemStateKind bitfield)
sphere "position" (vec3f), "color" (RGBA8), "radius" (float scene units)
segment "position_start" (vec3f), "position_end" (vec3f), "color" (RGBA8), "stroke_width_px" (float pixels)
primitive "position" (vec3f), "color" (RGBA8), primitive-only "normal" (vec3f)
path "position" (vec3f), "color" (RGBA8), optional "stroke_width_px" (float pixels)
mesh "position" (vec3f), optional "color" (RGBA8), optional "normal" (vec3f), optional "texcoords" (vec2f), optional "instance_transform" (mat4f, one per instance)
image corner-vertex "position" (vec3f) + "texcoords" (vec2f), or per-item "position" (vec3f) + "extent" (vec2f) with optional "tex_rect" (vec4f) and "anchor" (vec2f)
text string attribute "text" plus per-string "position" (vec3f pixels), optional "anchor" (vec2f), "size" (float pixels), "color" (RGBA8), "angle" (float radians, positive counter-clockwise in rendered y-up coordinates)
glyph "position" (vec3f anchor), "bounds" (vec4f local pixel bounds), "texcoords" (vec4f atlas UV bounds), "color" (RGBA8), "angle" (float radians, positive counter-clockwise in rendered y-up coordinates)

All configured attributes on one visual must use the same item_count. Retained mutation is legal after frame artifact creation; changes are reflected only in later artifacts.

DvzResult dvz_visual_set_data(
    DvzVisual * visual,
    const char * attr_name,
    const void * data,
    uint32_t item_count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
attr_name const char * attribute name (family-specific, e.g. "position", "color") The payload is copied before this function returns. The caller keeps ownership of data and may release or reuse it immediately after a successful or failed call.
data const void * packed data array borrowed for the duration of the call
item_count uint32_t number of items

Related: dvz_visual_set_data_many(), dvz_visual_set_data_range().

Declared in include/datoviz/scene.h:2064.

dvz_visual_set_data_many()

Atomically replace several dense visual attribute payloads.

This is the preferred API when changing the item count of a visual with several per-item attributes, such as point position/color/size. All updates are validated before any existing attribute payload is replaced. Every update in the batch must use the same item_count, and any existing dense per-item attribute with a different item_count must also be included in the batch. Retained mutation is legal after frame artifact creation; changes are reflected only in later artifacts.

DvzResult dvz_visual_set_data_many(
    DvzVisual * visual,
    const DvzVisualDataUpdate * updates,
    uint32_t update_count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual Every payload referenced by updates is copied before this function returns. The caller keeps ownership of update descriptors and payload pointers and may release or reuse them immediately after a successful or failed call.
updates const DvzVisualDataUpdate * attribute update descriptors borrowed for the duration of the call
update_count uint32_t number of update descriptors

Related: dvz_visual_set_data().

Declared in include/datoviz/scene.h:2200.

dvz_visual_set_data_range()

Write a contiguous sub-range of attribute data to a visual.

The attribute must already be fully allocated by a prior dvz_visual_set_data() call. Only the items in [first_item, first_item + item_count) are uploaded on the next emit. Retained mutation is legal after frame artifact creation; changes are reflected only in later artifacts.

DvzResult dvz_visual_set_data_range(
    DvzVisual * visual,
    const char * attr_name,
    uint32_t first_item,
    const void * data,
    uint32_t item_count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
attr_name const char * attribute name The payload is copied before this function returns. The caller keeps ownership of data and may release or reuse it immediately after a successful or failed call.
first_item uint32_t index of the first item to update
data const void * packed array of item_count items borrowed for the duration of the call
item_count uint32_t number of items to update

Related: dvz_visual_set_data().

Declared in include/datoviz/scene.h:2222.

dvz_visual_set_depth_test()

Enable or disable depth testing for the visual.

Depth-tested opaque visuals write and test against scene depth. Transparent visuals use depth testing to decide whether transparent fragments are occluded by previously rendered opaque geometry. Disabling it is primarily useful for diagnostics and overlays.

DvzResult dvz_visual_set_depth_test(
    DvzVisual * visual,
    _Bool enabled
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
enabled _Bool true to depth-test, false to ignore scene depth

Declared in include/datoviz/scene.h:1783.

dvz_visual_set_field()

Bind a scene-owned sampled field to a named visual slot.

Image, glyph, and labels visuals accept the "field" slot and require a 2D field. Mesh visuals accept the "texture" slot for a v0.4 RGBA8 2D texture. Volume visuals accept the "field" slot and require a 3D field. Labels visuals additionally require DVZ_FIELD_SEMANTIC_LABEL.

DvzResult dvz_visual_set_field(
    DvzVisual * visual,
    const char * slot_name,
    const DvzSampledField * field
);
Field Type Description
return DvzResult DVZ_OK on success, DVZ_ERROR on error
visual DvzVisual * the visual
slot_name const char * the semantic slot name
field const DvzSampledField * the field, or NULL to clear the binding

Declared in include/datoviz/scene/field.h:307.

dvz_visual_set_index_data()

Replace a visual's index buffer with copied 32-bit index data.

This convenience path creates a scene-owned index buffer, copies the index payload into it, and binds it to the visual's "index" slot. Use dvz_scene_buffer() plus dvz_visual_set_buffer() instead when the index buffer must be shared across several visuals.

DvzResult dvz_visual_set_index_data(
    DvzVisual * visual,
    const DvzIndex * indices,
    uint32_t index_count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the primitive or mesh visual
indices const DvzIndex * index array
index_count uint32_t number of indices

Declared in include/datoviz/scene.h:2410.

dvz_visual_set_item_range()

Set the active logical item range for a retained visual.

The active range is expressed in logical item units: [first_item, first_item + item_count). Changing it affects draw/query/export contribution planning only; it does not upload or rewrite attribute buffers. The point visual is the first supported family for this v0.4 slice.

DvzResult dvz_visual_set_item_range(
    DvzVisual * visual,
    uint32_t first_item,
    uint32_t item_count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
first_item uint32_t first logical item in the active range
item_count uint32_t number of logical items in the active range; zero is valid

Declared in include/datoviz/scene.h:2098.

Bind per-item link keys for a visual on one link channel.

link_keys must contain item_count entries and must not be NULL unless item_count is zero. The keys are copied before return. Passing zero entries clears the binding for this channel.

DvzResult dvz_visual_set_link_keys(
    DvzVisual * visual,
    DvzLinkChannel * channel,
    const uint64_t * link_keys,
    uint32_t item_count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
channel DvzLinkChannel * the link channel
link_keys const uint64_t * array of link keys
item_count uint32_t number of keys

Declared in include/datoviz/scene/interaction.h:133.

dvz_visual_set_query_capabilities()

Declare the query capabilities exposed by a visual.

DvzResult dvz_visual_set_query_capabilities(
    DvzVisual * visual,
    uint32_t capabilities
);
Field Type Description
return DvzResult DVZ_OK when the capabilities were accepted, DVZ_ERROR on error
visual DvzVisual * the visual
capabilities uint32_t bitwise OR of DvzQueryCapabilityFlag values

Declared in include/datoviz/scene/interaction.h:118.

dvz_visual_set_scale()

Bind a scene-owned scale to a named visual slot.

Visual scale slots are semantic attribute names. Point and pixel visuals accept the "color" slot with a continuous scale when their "color" attribute format is DVZ_VISUAL_ATTR_FORMAT_SCALAR_F32. Image and volume visuals use "color" for continuous sampled fields. Labels visuals and label-volume render modes use "labels" with a categorical scale.

DvzResult dvz_visual_set_scale(
    DvzVisual * visual,
    const char * slot_name,
    const DvzScale * scale
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
slot_name const char * the semantic slot name
scale const DvzScale * the scale, or NULL to clear the binding

Declared in include/datoviz/scene/scale.h:732.

dvz_visual_set_shader_desc()

Set the visual shader descriptor.

v0.4 accepts only NULL or DVZ_VISUAL_SHADER_NONE. Custom visual families and built-in shader replacement are reserved for future releases and return -1.

DvzResult dvz_visual_set_shader_desc(
    DvzVisual * visual,
    const DvzVisualShaderDesc * desc
);
Field Type Description
return DvzResult 0 on success, -1 on validation error or unsupported shader kind
visual DvzVisual * the visual
desc const DvzVisualShaderDesc * shader descriptor, or NULL to clear the future shader slot

Declared in include/datoviz/scene.h:1897.

dvz_visual_set_strings()

Write variable-length string data to a visual.

Text visuals accept the "text" string attribute. The item count must match any configured per-item dense attributes.

DvzResult dvz_visual_set_strings(
    DvzVisual * visual,
    const char * attr_name,
    const char *const * strings,
    uint32_t item_count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
attr_name const char * string attribute name
strings const char *const * string array
item_count uint32_t number of strings

Declared in include/datoviz/scene.h:2177.

dvz_visual_set_transform()

Set the retained visual-local transform.

The transform is stored on the visual and applies to every panel attachment before panel controller/view transforms.

DvzResult dvz_visual_set_transform(
    DvzVisual * visual,
    mat4 transform
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the visual
transform mat4 local model transform

Declared in include/datoviz/scene.h:1910.

dvz_visual_set_transform_desc()

Set the future scene-managed visual transform descriptor.

v0.4 accepts only NULL or DVZ_VISUAL_TRANSFORM_NONE. Scene-managed nonlinear/custom transforms are reserved for future releases and return -1.

DvzResult dvz_visual_set_transform_desc(
    DvzVisual * visual,
    const DvzVisualTransformDesc * desc
);
Field Type Description
return DvzResult 0 on success, -1 on validation error or unsupported transform kind
visual DvzVisual * the visual
desc const DvzVisualTransformDesc * transform descriptor, or NULL to clear the future transform slot

Related: dvz_visual_set_transform().

Declared in include/datoviz/scene.h:1884.

dvz_visual_set_visible()

Set visual visibility.

DvzResult dvz_visual_set_visible(
    DvzVisual * visual,
    _Bool visible
);
Field Type Description
return DvzResult DVZ_OK if visibility was updated, DVZ_ERROR otherwise
visual DvzVisual * the visual
visible _Bool true to show, false to hide

Declared in include/datoviz/scene.h:1769.

dvz_visual_shader_desc()

Return the default visual shader descriptor.

v0.4 accepts only DVZ_VISUAL_SHADER_NONE; custom visual families and built-in shader replacement are reserved for future releases.

DvzVisualShaderDesc dvz_visual_shader_desc(void);
Field Type Description
return DvzVisualShaderDesc default visual shader descriptor

Declared in include/datoviz/scene.h:1111.

dvz_visual_transform_desc()

Return the default future visual transform descriptor.

v0.4 accepts only DVZ_VISUAL_TRANSFORM_NONE through the descriptor path. Use dvz_visual_set_transform() for the supported affine visual-local transform.

DvzVisualTransformDesc dvz_visual_transform_desc(void);
Field Type Description
return DvzVisualTransformDesc default visual transform descriptor

Declared in include/datoviz/scene.h:1100.

dvz_visual_validate()

Validate retained visual-local state.

This checks that stored attributes are supported by the visual family and that retained attribute metadata is internally consistent.

_Bool dvz_visual_validate(
    const DvzVisual * visual,
    DvzDiagnosticReport * report
);
Field Type Description
return _Bool whether the retained visual state is valid
visual const DvzVisual * the visual
report DvzDiagnosticReport * output diagnostic report (nullable)

Declared in include/datoviz/scene.h:1759.

Types

DvzAlphaMode · enum
enum DvzAlphaMode {
    DVZ_ALPHA_OPAQUE = 0,
    DVZ_ALPHA_BLENDED = 1,
    DVZ_ALPHA_WBOIT = 2,
    DVZ_ALPHA_DEPTH_PEEL = 3,
    DVZ_ALPHA_MASK = 4,
};

Declared in include/datoviz/scene/enums.h:223.

DvzSceneVisualFamily · enum
enum DvzSceneVisualFamily {
    DVZ_SCENE_VISUAL_FAMILY_NONE = 0,
    DVZ_SCENE_VISUAL_FAMILY_POINT = 1,
    DVZ_SCENE_VISUAL_FAMILY_PIXEL = 2,
    DVZ_SCENE_VISUAL_FAMILY_MARKER = 3,
    DVZ_SCENE_VISUAL_FAMILY_SEGMENT = 4,
    DVZ_SCENE_VISUAL_FAMILY_VECTOR = 5,
    DVZ_SCENE_VISUAL_FAMILY_PATH = 6,
    DVZ_SCENE_VISUAL_FAMILY_IMAGE = 7,
    DVZ_SCENE_VISUAL_FAMILY_MESH = 8,
    DVZ_SCENE_VISUAL_FAMILY_VOLUME = 9,
    DVZ_SCENE_VISUAL_FAMILY_PRIMITIVE = 10,
    DVZ_SCENE_VISUAL_FAMILY_SPHERE = 11,
    DVZ_SCENE_VISUAL_FAMILY_GLYPH = 12,
    DVZ_SCENE_VISUAL_FAMILY_TEXT = 13,
    DVZ_SCENE_VISUAL_FAMILY_LABELS = 14,
    DVZ_SCENE_VISUAL_FAMILY_SPLAT = 15,
};

Declared in include/datoviz/scene/enums.h:444.

DvzShapeAspect · enum
enum DvzShapeAspect {
    DVZ_SHAPE_ASPECT_FILLED = 0,
    DVZ_SHAPE_ASPECT_STROKE = 1,
    DVZ_SHAPE_ASPECT_OUTLINE = 2,
};

Declared in include/datoviz/scene/enums.h:360.

DvzVisual · typedef
typedef struct DvzVisual DvzVisual;

Declared in include/datoviz/scene/types.h:63.

DvzVisualAttachDesc · record
struct DvzVisualAttachDesc {
    uint32_t struct_size;
    uint32_t flags;
    int32_t z_layer;
    DvzControllerMode controller_mode;
    DvzVisualCoordSpace coord_space;
    DvzVisualClipRect clip_rect;
    DvzVisualViewportRect viewport_rect;
};

Declared in include/datoviz/scene/types.h:1158.

DvzVisualAttrFormat · enum
enum DvzVisualAttrFormat {
    DVZ_VISUAL_ATTR_FORMAT_DEFAULT = 0,
    DVZ_VISUAL_ATTR_FORMAT_RGBA_U8 = 1,
    DVZ_VISUAL_ATTR_FORMAT_SCALAR_F32 = 2,
};

Declared in include/datoviz/scene/enums.h:545.

DvzVisualAttrInfo · record
struct DvzVisualAttrInfo {
    const char * name;
    uint32_t item_size;
    uint32_t source_mask;
    DvzVisualAttrFormat default_format;
    _Bool instance;
};

Declared in include/datoviz/scene/types.h:1192.

DvzVisualAttrMutability · enum
enum DvzVisualAttrMutability {
    DVZ_VISUAL_ATTR_MUTABILITY_DYNAMIC = 0,
    DVZ_VISUAL_ATTR_MUTABILITY_STATIC = 1,
    DVZ_VISUAL_ATTR_MUTABILITY_STREAMING = 2,
};

Declared in include/datoviz/scene/enums.h:107.

DvzVisualAttrSource · enum
enum DvzVisualAttrSource {
    DVZ_VISUAL_ATTR_SOURCE_PER_ITEM = 0,
    DVZ_VISUAL_ATTR_SOURCE_CONSTANT = 1,
    DVZ_VISUAL_ATTR_SOURCE_PER_SPAN = 2,
    DVZ_VISUAL_ATTR_SOURCE_PER_GROUP = 3,
};

Declared in include/datoviz/scene/enums.h:97.

DvzVisualClipRect · enum
enum DvzVisualClipRect {
    DVZ_VISUAL_CLIP_AUTO = 0,
    DVZ_VISUAL_CLIP_PANEL = 1,
    DVZ_VISUAL_CLIP_PLOT = 2,
};

Declared in include/datoviz/scene/enums.h:143.

DvzVisualCoordSpace · enum
enum DvzVisualCoordSpace {
    DVZ_VISUAL_COORD_VIEW = 0,
    DVZ_VISUAL_COORD_DATA = 1,
    DVZ_VISUAL_COORD_PANEL = 2,
    DVZ_VISUAL_COORD_PANEL_PIXEL = 3,
};

Declared in include/datoviz/scene/enums.h:133.

DvzVisualDataUpdate · record
struct DvzVisualDataUpdate {
    const char * attr_name;
    const void * data;
    uint32_t item_count;
};

Declared in include/datoviz/scene/types.h:1171.

DvzVisualDataView · record
struct DvzVisualDataView {
    const void * data;
    uint64_t item_count;
    uint32_t item_size;
    DvzVisualAttrSource source;
    DvzVisualAttrMutability mutability;
    uint64_t version;
};

Declared in include/datoviz/scene/types.h:1180.

DvzVisualShaderDesc · record
struct DvzVisualShaderDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzVisualShaderKind kind;
    DvzVisualShaderSource vertex_source;
    DvzVisualShaderSource fragment_source;
    uint64_t shader_id;
    const char * family;
    const char * variant;
    const char * label;
    const void * vertex_code;
    uint64_t vertex_code_size;
    const void * fragment_code;
    uint64_t fragment_code_size;
};

Declared in include/datoviz/scene/types.h:305.

DvzVisualShaderKind · enum
enum DvzVisualShaderKind {
    DVZ_VISUAL_SHADER_NONE = 0,
    DVZ_VISUAL_SHADER_CUSTOM_FAMILY = 1,
    DVZ_VISUAL_SHADER_BUILTIN_REPLACEMENT = 2,
};

Declared in include/datoviz/scene/enums.h:173.

DvzVisualShaderSource · enum
enum DvzVisualShaderSource {
    DVZ_VISUAL_SHADER_SOURCE_NONE = 0,
    DVZ_VISUAL_SHADER_SOURCE_GLSL = 1,
    DVZ_VISUAL_SHADER_SOURCE_WGSL = 2,
    DVZ_VISUAL_SHADER_SOURCE_SPIRV = 3,
};

Declared in include/datoviz/scene/enums.h:181.

DvzVisualTransformDesc · record
struct DvzVisualTransformDesc {
    uint32_t struct_size;
    uint32_t flags;
    DvzVisualTransformKind kind;
    DvzVisualTransformSpace input_space;
    DvzVisualTransformSpace output_space;
    uint64_t transform_id;
    const char * label;
    mat4 matrix;
};

Declared in include/datoviz/scene/types.h:292.

DvzVisualTransformKind · enum
enum DvzVisualTransformKind {
    DVZ_VISUAL_TRANSFORM_NONE = 0,
    DVZ_VISUAL_TRANSFORM_LINEAR = 1,
    DVZ_VISUAL_TRANSFORM_NONLINEAR = 2,
    DVZ_VISUAL_TRANSFORM_CUSTOM = 3,
};

Declared in include/datoviz/scene/enums.h:115.

DvzVisualTransformSpace · enum
enum DvzVisualTransformSpace {
    DVZ_VISUAL_TRANSFORM_SPACE_DATA = 0,
    DVZ_VISUAL_TRANSFORM_SPACE_VISUAL = 1,
    DVZ_VISUAL_TRANSFORM_SPACE_PANEL = 2,
};

Declared in include/datoviz/scene/enums.h:124.

DvzVisualViewportRect · enum
enum DvzVisualViewportRect {
    DVZ_VISUAL_VIEWPORT_AUTO = 0,
    DVZ_VISUAL_VIEWPORT_PANEL = 1,
    DVZ_VISUAL_VIEWPORT_PLOT = 2,
    DVZ_VISUAL_VIEWPORT_TARGET = 3,
};

Declared in include/datoviz/scene/enums.h:152.

Volume

Functions

dvz_volume()

Create a volume visual.

Volume visuals retain a 3D sampled field bound through dvz_visual_set_field(volume, "field", field). The native runtime renders a box proxy and supports full-volume composite rendering by default, plus slice and MIP modes.

DvzVisual * dvz_volume(
    DvzScene * scene,
    uint32_t flags
);
Field Type Description
return DvzVisual * the visual
scene DvzScene * the scene
flags uint32_t variant flags

Declared in include/datoviz/scene.h:3795.

dvz_volume_clear_clipping()

Disable all clipping on a volume visual.

DvzResult dvz_volume_clear_clipping(
    DvzVisual * visual
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual

Declared in include/datoviz/scene.h:3956.

dvz_volume_clear_clipping_plane()

Disable arbitrary plane clipping on a volume visual.

DvzResult dvz_volume_clear_clipping_plane(
    DvzVisual * visual
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual

Declared in include/datoviz/scene.h:3947.

dvz_volume_set_alpha_stops()

Set piecewise-linear opacity stops for scalar volume transfer.

DvzResult dvz_volume_set_alpha_stops(
    DvzVisual * visual,
    const DvzVolumeAlphaStop * stops,
    uint32_t count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
stops const DvzVolumeAlphaStop * alpha stops sorted or unsorted by position
count uint32_t number of stops, at most 8

Declared in include/datoviz/scene.h:3909.

dvz_volume_set_axis_mapping()

Set the mapping from normalized volume coordinates to texture UVW coordinates.

axis_order[i] selects the normalized volume coordinate used for texture axis i. axis_flip[i] flips texture axis i after reordering. Pass NULL for axis_flip to disable all flips.

DvzResult dvz_volume_set_axis_mapping(
    DvzVisual * visual,
    const uint32_t[3] axis_order,
    const _Bool[3] axis_flip
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
axis_order const uint32_t[3] texture-axis source order, a permutation of 0, 1, 2
axis_flip const _Bool[3] optional per-texture-axis flips

Declared in include/datoviz/scene.h:3886.

dvz_volume_set_bounds()

Set the object-space volume proxy bounds.

The bounds control the rendered box geometry while preserving normalized UVW texture sampling. They are useful for displaying anisotropic volumes in their physical aspect ratio.

DvzResult dvz_volume_set_bounds(
    DvzVisual * visual,
    const double[3] bounds_min,
    const double[3] bounds_max
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
bounds_min const double[3] minimum object-space coordinate
bounds_max const double[3] maximum object-space coordinate

Declared in include/datoviz/scene.h:3871.

dvz_volume_set_clipping_box()

Enable axis-aligned clipping on a volume visual.

DvzResult dvz_volume_set_clipping_box(
    DvzVisual * visual,
    const double[3] clip_min,
    const double[3] clip_max
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
clip_min const double[3] minimum normalized clip coordinate
clip_max const double[3] maximum normalized clip coordinate

Declared in include/datoviz/scene.h:3922.

dvz_volume_set_clipping_plane()

Enable arbitrary plane clipping on a volume visual.

The plane is defined in normalized volume coordinates. Voxels for which dot(normal, uvw - point) has the selected sign are kept.

DvzResult dvz_volume_set_clipping_plane(
    DvzVisual * visual,
    const double[3] point,
    const double[3] normal,
    _Bool keep_positive
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
point const double[3] point on the clipping plane, in normalized volume coordinates
normal const double[3] non-zero clipping plane normal
keep_positive _Bool whether to keep the positive side of the plane

Declared in include/datoviz/scene.h:3937.

dvz_volume_set_opacity()

Set the global opacity multiplier on a volume visual.

DvzResult dvz_volume_set_opacity(
    DvzVisual * visual,
    float opacity
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
opacity float opacity multiplier in [0, 1]

Declared in include/datoviz/scene.h:3805.

dvz_volume_set_render_mode()

Set the volume render mode.

DvzResult dvz_volume_set_render_mode(
    DvzVisual * visual,
    DvzVolumeRenderMode mode
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
mode DvzVolumeRenderMode the render mode

Declared in include/datoviz/scene.h:3826.

dvz_volume_set_sampling()

Set the texture sampling mode on a volume visual.

DvzResult dvz_volume_set_sampling(
    DvzVisual * visual,
    DvzVolumeSamplingMode sampling
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
sampling DvzVolumeSamplingMode the sampling mode

Declared in include/datoviz/scene.h:3816.

dvz_volume_set_slice_axis()

Set the volume slice axis.

DvzResult dvz_volume_set_slice_axis(
    DvzVisual * visual,
    DvzVolumeAxis axis
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
axis DvzVolumeAxis axis normal for slicing planes (X/Y/Z)

Declared in include/datoviz/scene.h:3836.

dvz_volume_set_slice_position()

Set the normalized volume slice position.

DvzResult dvz_volume_set_slice_position(
    DvzVisual * visual,
    double position
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
position double slice position in [0, 1], where 0 is the minimum axis coordinate

Declared in include/datoviz/scene.h:3846.

dvz_volume_set_step_count()

Set the volume raymarch step count used by MIP and composite rendering.

DvzResult dvz_volume_set_step_count(
    DvzVisual * visual,
    uint32_t step_count
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
step_count uint32_t number of raymarch samples

Declared in include/datoviz/scene.h:3856.

dvz_volume_set_value_range()

Set the scalar value range used before transfer texture lookup.

DvzResult dvz_volume_set_value_range(
    DvzVisual * visual,
    double min,
    double max
);
Field Type Description
return DvzResult 0 on success, -1 on error
visual DvzVisual * the volume visual
min double minimum scalar value mapped to 0
max double maximum scalar value mapped to 1

Declared in include/datoviz/scene.h:3898.

dvz_volume_state()

Return the retained volume state for inspection.

const DvzVolumeState * dvz_volume_state(
    const DvzVisual * visual
);
Field Type Description
return const DvzVolumeState * the volume state, or NULL on error
visual const DvzVisual * the volume visual

Declared in include/datoviz/scene.h:3965.

Types

DvzVolumeAlphaStop · record
struct DvzVolumeAlphaStop {
    double position;
    float alpha;
};

Declared in include/datoviz/scene/types.h:1090.

DvzVolumeAxis · enum
enum DvzVolumeAxis {
    DVZ_VOLUME_AXIS_X = 0,
    DVZ_VOLUME_AXIS_Y = 1,
    DVZ_VOLUME_AXIS_Z = 2,
};

Declared in include/datoviz/scene/enums.h:415.

DvzVolumeRenderMode · enum
enum DvzVolumeRenderMode {
    DVZ_VOLUME_RENDER_SLICE = 0,
    DVZ_VOLUME_RENDER_MIP = 1,
    DVZ_VOLUME_RENDER_COMPOSITE = 2,
};

Declared in include/datoviz/scene/enums.h:406.

DvzVolumeSamplingMode · enum
enum DvzVolumeSamplingMode {
    DVZ_VOLUME_SAMPLING_LINEAR = 0,
    DVZ_VOLUME_SAMPLING_NEAREST = 1,
};

Declared in include/datoviz/scene/enums.h:399.

DvzVolumeState · record
struct DvzVolumeState {
    float opacity;
    DvzVolumeSamplingMode sampling;
    DvzVolumeRenderMode render_mode;
    DvzVolumeAxis slice_axis;
    double slice_position;
    _Bool clipping_enabled;
    double[3] clip_min;
    double[3] clip_max;
    _Bool clip_plane_enabled;
    _Bool clip_plane_keep_positive;
    double[3] clip_plane_point;
    double[3] clip_plane_normal;
    double[3] bounds_min;
    double[3] bounds_max;
    uint32_t[3] axis_order;
    _Bool[3] axis_flip;
    double value_min;
    double value_max;
    DvzVolumeAlphaStop[8] alpha_stops;
    uint32_t alpha_stop_count;
    uint32_t step_count;
    uint64_t version;
};

Declared in include/datoviz/scene/types.h:1098.