Skip to content

Controller API

Controller utilities

dvz_camera_pos()

Set the camera position.

void dvz_camera_pos(DvzPanel* panel, vec3 pos);
Parameter Type Description
panel DvzPanel* the panel
pos vec3 the position in scene coordinates

dvz_camera_look()

Set the camera center position (the position the camera points to).

void dvz_camera_look(DvzPanel* panel, vec3 center);
Parameter Type Description
panel DvzPanel* the panel
center vec3 the center position

dvz_arcball_rotate()

Set the arcball rotation.

void dvz_arcball_rotate(DvzPanel* panel, float angle, vec3 axis);
Parameter Type Description
panel DvzPanel* the panel
angle float the rotation angle
axis vec3 the rotation angle

dvz_mvp_camera()

Set up a 3D camera on a Model-View-Projection (MVP) object.

void dvz_mvp_camera(
    DvzViewport viewport, vec3 eye, vec3 center, vec2 near_far, DvzMVP* mvp);
Parameter Type Description
viewport DvzViewport the viewport
eye vec3 the camera position in scene coordinates
center vec3 the position the camera points to
near_far vec2 the near and far values for the perspective matrix
mvp DvzMVP* a pointer to an MVP object

Internal controller

dvz_controller()

Create a custom controller.

DvzController dvz_controller(DvzPanel* panel);
Parameter Type Description
panel DvzPanel* the panel
returns DvzController controller structure

dvz_controller_visual()

Add a visual to a controller.

void dvz_controller_visual(DvzController* controller, DvzVisual* visual);
Parameter Type Description
controller DvzController* the controller
visual DvzVisual* the visual

dvz_controller_interact()

Add an interact to a controller.

void dvz_controller_interact(DvzController* controller, DvzInteractType type);
Parameter Type Description
controller DvzController* the controller
interact None the interact

dvz_controller_callback()

Specify a controller frame callback.

void dvz_controller_callback(
    DvzController* controller, DvzControllerCallback callback);
Parameter Type Description
controller DvzController* the controller
callback DvzControllerCallback the callback

Callback signature: void(DvzController* controller, DvzEvent ev);

dvz_controller_update()

Update a controller.

void dvz_controller_update(DvzController* controller);
Parameter Type Description
controller DvzController* the controller

Not yet implemented

dvz_controller_destroy()

Destroy a controller.

void dvz_controller_destroy(DvzController* controller);
Parameter Type Description
controller DvzController* the controller

dvz_controller_builtin()

Create a builtin controller.

DvzController dvz_controller_builtin(
    DvzPanel* panel, DvzControllerType type, int flags);
Parameter Type Description
panel DvzPanel* the panel
type DvzControllerType the controller type
flags int flags for the builtin controller
returns DvzController controller

Transform

dvz_transform_pos()

Apply a CPU builtin transformation on position data.

void dvz_transform_pos(
    DvzDataCoords coords, DvzArray* pos_in, DvzArray* pos_out, bool inverse);
Parameter Type Description
coords DvzDataCoords the data coordinate system and bounds
pos_in DvzArray* input array of dvec3 values
pos_out DvzArray* output array of dvec3 values
inverse bool whether to use the inverse or forward transformation

dvz_transform()

Convert a 3D position from a coordinate system to another.

void dvz_transform(
    DvzPanel* panel, DvzCDS source, dvec3 pos_in,
    DvzCDS target, dvec3 pos_out);
Parameter Type Description
panel DvzPanel* the panel
source DvzCDS the source coordinate system
in None the input position
target DvzCDS the target coordinate system
out None the output (transformed) position