|
| void | bv_init (struct bview *v, struct bview_set *s) |
| |
| void | bv_free (struct bview *v) |
| |
| void | bv_mat_aet (struct bview *v) |
| |
| void | bv_settings_init (struct bview_settings *s) |
| |
| void | bv_autoview (struct bview *v, fastf_t scale, int all_view_objs) |
| |
| void | bv_autoview_bounds (struct bview *v, fastf_t scale, const point_t min, const point_t max) |
| |
| void | bv_sync (struct bview *dest, struct bview *src) |
| |
| fastf_t | bv_view_get_scale (const struct bview *v) |
| |
| void | bv_view_set_scale (struct bview *v, fastf_t scale) |
| |
| fastf_t | bv_view_get_size (const struct bview *v) |
| |
| void | bv_view_set_size (struct bview *v, fastf_t size) |
| |
| fastf_t | bv_view_get_perspective (const struct bview *v) |
| |
| void | bv_view_set_perspective (struct bview *v, fastf_t perspective) |
| |
| void | bv_view_get_aet (const struct bview *v, vect_t aet) |
| |
| void | bv_view_set_aet (struct bview *v, const vect_t aet) |
| |
| void | bv_view_get_rotation (const struct bview *v, mat_t rot) |
| |
| void | bv_view_set_rotation (struct bview *v, const mat_t rot) |
| |
| void | bv_view_get_center_vec (const struct bview *v, point_t center) |
| |
| void | bv_view_set_center_vec (struct bview *v, const point_t center) |
| |
| int | bv_obj_settings_sync (struct bv_obj_settings *dest, struct bv_obj_settings *src) |
| |
| void | bv_update (struct bview *gvp) |
| |
| int | bv_update_selected (struct bview *gvp) |
| |
| void | bv_knobs_reset (struct bview_knobs *k, int category) |
| |
| unsigned long long | bv_knobs_hash (struct bview_knobs *k, struct bu_data_hash_state *state) |
| |
| int | bv_knobs_cmd_process (vect_t *rvec, int *do_rot, vect_t *tvec, int *do_tran, struct bview *v, const char *cmd, fastf_t f, char origin, int model_flag, int incr_flag) |
| | Process an individual libbv knob command.
|
| |
| void | bv_knobs_rot (struct bview *v, const vect_t rvec, char origin, char coords, const matp_t obj_rot, const pointp_t pvt_pt) |
| | Rotate the view based on an Euler angle triplet (degrees) specified in one of several coordinate frames, about one of several origins.
|
| |
| void | bv_knobs_tran (struct bview *v, const vect_t tvec, int model_flag) |
| |
| void | bv_update_rate_flags (struct bview *v) |
| |
| int | bv_differ (struct bview *v1, struct bview *v2) |
| |
| unsigned long long | bv_hash (struct bview *v) |
| |
| unsigned long long | bv_dl_hash (struct display_list *dl) |
| |
| size_t | bv_clear (struct bview *v, int flags) |
| |
| int | bv_adjust (struct bview *v, int dx, int dy, point_t keypoint, int mode, unsigned long long flags) |
| |
| int | bv_screen_to_view (struct bview *v, fastf_t *fx, fastf_t *fy, fastf_t x, fastf_t y) |
| |
| int | bv_screen_pt (point_t *p, fastf_t x, fastf_t y, struct bview *v) |
| |
| int | bv_scene_obj_bound (struct bv_scene_obj *s, struct bview *v) |
| |
| fastf_t | bv_vZ_calc (struct bv_scene_obj *s, struct bview *v, int mode) |
| |
| void | bv_obj_sync (struct bv_scene_obj *dest, struct bv_scene_obj *src) |
| |
| void | bv_obj_stale (struct bv_scene_obj *s) |
| |
| struct bv_scene_obj * | bv_obj_create (struct bview *v, int type) |
| |
| struct bv_scene_obj * | bv_obj_get (struct bview *v, int type) |
| |
| struct bv_scene_obj * | bv_obj_get_child (struct bv_scene_obj *s) |
| |
| void | bv_obj_reset (struct bv_scene_obj *s) |
| |
| void | bv_obj_put (struct bv_scene_obj *o) |
| |
| struct bv_scene_obj * | bv_find_child (struct bv_scene_obj *s, const char *vname) |
| |
| struct bv_scene_obj * | bv_find_obj (struct bview *v, const char *vname) |
| |
| void | bv_uniq_obj_name (struct bu_vls *oname, const char *seed, struct bview *v) |
| |
| struct bv_scene_obj * | bv_obj_for_view (struct bv_scene_obj *s, struct bview *v) |
| |
| struct bv_scene_obj * | bv_obj_get_vo (struct bv_scene_obj *s, struct bview *v) |
| |
| int | bv_obj_have_vo (struct bv_scene_obj *s, struct bview *v) |
| |
| int | bv_clear_view_obj (struct bv_scene_obj *s, struct bview *v) |
| |
| int | bv_illum_obj (struct bv_scene_obj *s, char ill_state) |
| |
| struct bu_ptbl * | bv_view_objs (struct bview *v, int type) |
| |
| int | bv_view_plane (plane_t *p, struct bview *v) |
| |
| void | bv_log (int level, const char *fmt,...) _BU_ATTR_PRINTF23 |
| |
| void | bv_view_print (const char *title, struct bview *v, int verbosity) |
| |
| void | bv_set_init (struct bview_set *s) |
| |
| void | bv_set_free (struct bview_set *s) |
| |
| void | bv_set_add_view (struct bview_set *s, struct bview *v) |
| |
| void | bv_set_rm_view (struct bview_set *s, struct bview *v) |
| |
| struct bu_ptbl * | bv_set_views (struct bview_set *s) |
| |
| struct bview * | bv_set_find_view (struct bview_set *s, const char *vname) |
| |
| struct bv_scene_obj * | bv_set_fsos (struct bview_set *s) |
| |
Utility routines for manipulating libbv data structures.
In applications with multiple views, those views typically share common scene objects and memory. To manage this sharing, we define view sets.
Rotate the view based on an Euler angle triplet (degrees) specified in one of several coordinate frames, about one of several origins.
coords: Rotation input frame 'v' - rvec in view coordinates 'm' - rvec in model coordinates (converted via Rv * Rm * Rv^{-1}) 'o' - rvec in object coordinates (use obj_rot to map object->model->view, fallback to 'v' semantics if obj_rot is NULL)
origin: Rotation pivot specifier 'v' : view center (0,0,0 in view space) 'm' : model origin 'e' : eye point (0,0,1 in view space) 'k' : model-space custom pivot supplied via pvt_pt Any unrecognized value falls back to 'v'.
obj_rot: Accumulated object->model rotation matrix when coords=='o'. NULL otherwise.
pvt_pt: Model-space pivot point when origin=='k'. Ignored otherwise. NULL == model origin.
BEHAVIOR
- rvec is converted into a pure view-space rotation matrix according to 'coords' (and obj_rot for 'o').
- If origin != 'v', the view center (gv_center) is relocated so the specified pivot is invariant under the applied rotation.
- gv_rotation is post-multiplied by the view rotation matrix.
- bv_update(v) refreshes derived matrices. Absolute translation bookkeeping (tra_v_abs / tra_m_abs) is always recomputed
- Parameters
-
| [in,out] | v | target bview structure |
| [in] | rvec | rotation vector (Euler angles, degrees) expressed in the coordinate frame indicated by coords. |
| [in] | origin | char indicating origin - may be 'e' (eye_pt), 'm' (model origin), 'v' (view origin - default) or 'k' (keypoint) |
| [in] | coords | coordinate frame - may be 'm' (model), 'o' (obj coords via obj_rot), or 'v' (view) |
| [in] | obj_rot | pointer to accumulated object rotation matrix (may be NULL) |
| [in] | pvt_pt | model space pivot point |