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 |