100 float r_text_color[4],
101 float r_shadow_color[4]);
113 float r_cursor_co[3]);
118 float r_cursor_co[3],
119 float r_cursor_quat[4]);
135void ED_view3d_to_m4(
float mat[4][4],
const float ofs[3],
const float quat[4],
float dist);
144void ED_view3d_from_m4(
const float mat[4][4],
float ofs[3],
float quat[4],
const float *dist);
155 const Object *ob,
float ofs[3],
float quat[4],
const float *dist,
float *lens);
166 const Depsgraph *
depsgraph,
Object *ob,
const float ofs[3],
const float quat[4],
float dist);
220 float r_location_world[3]);
235 const float depth_loc_override[3]);
239#define IS_CLIPPED 12000
296#define V3D_PROJ_TEST_CLIP_DEFAULT \
297 (V3D_PROJ_TEST_CLIP_BB | V3D_PROJ_TEST_CLIP_WIN | V3D_PROJ_TEST_CLIP_NEAR)
298#define V3D_PROJ_TEST_ALL \
299 (V3D_PROJ_TEST_CLIP_DEFAULT | V3D_PROJ_TEST_CLIP_FAR | V3D_PROJ_TEST_CLIP_ZERO | \
300 V3D_PROJ_TEST_CLIP_CONTENT)
302#define V3D_PROJ_TEST_CLIP_CONTENT_DEFAULT \
303 (V3D_PROJ_TEST_CLIP_CONTENT | V3D_PROJ_TEST_CLIP_NEAR | V3D_PROJ_TEST_CLIP_FAR | \
304 V3D_PROJ_TEST_CLIP_WIN)
310 const float snap_target_global[3],
315#define USE_SNAP_DETECT_FROM_KEYMAP_HACK
332 float plane_omat[3][3];
361 const float prev_point[3]);
367 const float source_loc[3],
368 const float target_loc[3],
371 const uchar source_color[4],
372 const uchar target_color[4]);
379 void (*func)(
void *user_data,
380 const float screen_co[2],
386 void (*func)(
void *user_data,
BMVert *eve,
const float screen_co[2],
int index),
390 void (*func)(
void *user_data,
392 const float screen_co_a[2],
393 const float screen_co_b[2],
403 void (*func)(
void *user_data,
405 const float screen_co_a[2],
406 const float screen_co_b[2],
413 void (*func)(
void *user_data,
BMFace *efa,
const float screen_co[2],
int index),
417 void (*func)(
void *user_data,
423 const float screen_co[2]),
430 void (*func)(
void *user_data,
MetaElem *ml,
const float screen_co[2]),
434 void (*func)(
void *user_data,
BPoint *bp,
const float screen_co[2]),
441 void (*func)(
void *user_data,
443 const float screen_co_a[2],
444 const float screen_co_b[2]),
452 void (*func)(
void *user_data,
454 const float screen_co_a[2],
455 const float screen_co_b[2]),
474 const float mat[4][4]);
480 float perspmat[4][4],
498 float perspmat[4][4],
516 float perspmat[4][4],
573 float r_ray_start[3],
574 float r_ray_normal[3],
575 bool do_clip_planes);
597 const bool do_clip_planes,
599 float r_ray_normal[3],
600 float r_ray_start[3],
615 float r_ray_start[3],
616 float r_ray_normal[3]);
634 const float depth_pt[3],
639 const float depth_pt[3],
643 const float plane[4],
655 const float plane[4],
658 const float plane_fallback[4],
661 const ARegion *region,
const float plane[4],
const int mval[2],
bool do_clip,
float r_out[3]);
679 const float xy_delta[2],
725 float r_ray_start[3],
727 bool do_clip_planes);
739 const ARegion *region,
float regionx,
float regiony,
float regionz,
float world[3]);
750 bool use_ortho_factor,
865 const bool has_depth);
880 float mouse_worldloc[3],
881 const float fallback_depth_pt[3]);
888 float mouse_worldloc[3],
890 const float *force_depth);
892 const int mval_sta[2],
893 const int mval_end[2],
901 GPUTexture *tex =
nullptr;
911 bool sample(
const int mval[2],
float r_col[3]);
950 bool do_material_slot_selection);
994 const float screen_co_a[2],
995 const float screen_co_b[2]);
1034# define ED_view3d_clear_mats_rv3d(rv3d) (void)(rv3d)
1035# define ED_view3d_check_mats_rv3d(rv3d) (void)(rv3d)
1053 const float viewmat[4][4],
1054 const float winmat[4][4],
1064 int *r_material_slot);
1077 const float viewmat[4][4],
1078 const float winmat[4][4],
1085 char *r_view_axis_roll);
1095 char *r_view_axis_roll);
1174 const Scene *scene,
ID *id_key,
bContext *C,
bool do_rotate,
bool do_translate);
1214#define VIEW3D_MARGIN 1.4f
1215#define VIEW3D_DIST_FALLBACK 1.0f
1244 const float dist_co[3],
1255 float r_grid_steps[8]);
1264 const char **r_grid_unit);
1277#define SHADING_XRAY_ALPHA(shading) \
1278 (((shading).type == OB_WIRE) ? (shading).xray_alpha_wire : (shading).xray_alpha)
1279#define SHADING_XRAY_FLAG(shading) \
1280 (((shading).type == OB_WIRE) ? V3D_SHADING_XRAY_WIREFRAME : V3D_SHADING_XRAY)
1281#define SHADING_XRAY_FLAG_ENABLED(shading) (((shading).flag & SHADING_XRAY_FLAG(shading)) != 0)
1282#define SHADING_XRAY_ENABLED(shading) \
1283 (SHADING_XRAY_FLAG_ENABLED(shading) && (SHADING_XRAY_ALPHA(shading) < 1.0f))
1284#define SHADING_XRAY_ACTIVE(shading) \
1285 (SHADING_XRAY_ENABLED(shading) && ((shading).type < OB_MATERIAL))
1287#define XRAY_ALPHA(v3d) SHADING_XRAY_ALPHA((v3d)->shading)
1288#define XRAY_FLAG(v3d) SHADING_XRAY_FLAG((v3d)->shading)
1289#define XRAY_FLAG_ENABLED(v3d) SHADING_XRAY_FLAG_ENABLED((v3d)->shading)
1297#define XRAY_ENABLED(v3d) SHADING_XRAY_ENABLED((v3d)->shading)
1298#define XRAY_ACTIVE(v3d) SHADING_XRAY_ACTIVE((v3d)->shading)
1300#define OVERLAY_RETOPOLOGY_ENABLED(overlay) \
1301 (((overlay).edit_flag & V3D_OVERLAY_EDIT_RETOPOLOGY) != 0)
1304# define OVERLAY_RETOPOLOGY_MIN_OFFSET 0.0015f
1306# define OVERLAY_RETOPOLOGY_MIN_OFFSET FLT_EPSILON
1309#define OVERLAY_RETOPOLOGY_OFFSET(overlay) \
1310 (OVERLAY_RETOPOLOGY_ENABLED(overlay) ? \
1311 max_ff((overlay).retopology_offset, OVERLAY_RETOPOLOGY_MIN_OFFSET) : \
1314#define RETOPOLOGY_ENABLED(v3d) (OVERLAY_RETOPOLOGY_ENABLED((v3d)->overlay))
1315#define RETOPOLOGY_OFFSET(v3d) (OVERLAY_RETOPOLOGY_OFFSET((v3d)->overlay))
1329 const char *category_override);
1352 bool frame_selected =
true,
1353 int smooth_viewtx = 0);
1361#ifdef WITH_XR_OPENXR
1362void ED_view3d_xr_mirror_update(
const ScrArea *area,
const View3D *v3d,
bool enable);
#define ENUM_OPERATORS(_type, _max)
void ED_view3d_calc_camera_border_size(const Scene *scene, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const RegionView3D *rv3d, float r_size[2])
void view3d_opengl_select_cache_begin()
void ED_view3d_cursor_snap_data_update(V3DSnapCursorState *state, const bContext *C, const ARegion *region, int x, int y)
void ED_view3d_check_mats_rv3d(RegionView3D *rv3d)
blender::float2 ED_view3d_project_float_v2_m4(const ARegion *region, const float co[3], const blender::float4x4 &mat)
V3DSnapCursorState * ED_view3d_cursor_snap_state_create()
bool ED_view3d_win_to_ray_clipped(Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const float mval[2], float r_ray_start[3], float r_ray_normal[3], bool do_clip_planes)
float ED_view3d_select_dist_px()
void ED_view3d_distance_set(RegionView3D *rv3d, float dist)
void ED_view3d_project_float_v3_m4(const ARegion *region, const float co[3], float r_co[3], const float mat[4][4])
void ED_view3d_local_collections_reset(const bContext *C, bool reset_all)
bool ED_view3d_depth_read_cached(const ViewDepths *vd, const int mval[2], int margin, float *r_depth)
bool ED_view3d_camera_to_view_selected_with_set_clipping(Main *bmain, Depsgraph *depsgraph, const Scene *scene, Object *camera_ob)
void ED_view3d_win_to_ray(const ARegion *region, const float mval[2], float r_ray_start[3], float r_ray_normal[3])
void ED_view3d_datamask(const Scene *scene, ViewLayer *view_layer, const View3D *v3d, CustomData_MeshMasks *r_cddata_masks)
RV3DMatrixStore * ED_view3d_mats_rv3d_backup(RegionView3D *rv3d)
float ED_view3d_grid_scale(const Scene *scene, const View3D *v3d, const char **r_grid_unit)
void ED_view3d_cursor3d_position_rotation(bContext *C, const int mval[2], bool use_depth, enum eV3DCursorOrient orientation, float r_cursor_co[3], float r_cursor_quat[4])
void ED_view3d_global_to_vector(const RegionView3D *rv3d, const float coord[3], float r_out[3])
void view3d_region_operator_needs_opengl(wmWindow *win, ARegion *region)
void armature_foreachScreenBone(const ViewContext *vc, void(*func)(void *user_data, EditBone *ebone, const float screen_co_a[2], const float screen_co_b[2]), void *user_data, eV3DProjTest clip_flag)
void ED_view3d_cursor_snap_state_default_set(V3DSnapCursorState *state)
void ED_view3d_clipping_calc_from_boundbox(float clip[4][4], const BoundBox *bb, bool is_flip)
RegionView3D * ED_view3d_context_rv3d(bContext *C)
float ED_view3d_grid_view_scale(const Scene *scene, const View3D *v3d, const ARegion *region, const char **r_grid_unit)
void mesh_foreachScreenVert(const ViewContext *vc, void(*func)(void *user_data, BMVert *eve, const float screen_co[2], int index), void *user_data, eV3DProjTest clip_flag)
char ED_view3d_axis_view_opposite(char view)
void ED_view3d_gizmo_mesh_preselect_get_active(const bContext *C, const wmGizmo *gz, Base **r_base, BMElem **r_ele)
bool ED_view3d_camera_lock_sync(const Depsgraph *depsgraph, View3D *v3d, RegionView3D *rv3d)
bool ED_view3d_depth_read_cached_seg(const ViewDepths *vd, const int mval_sta[2], const int mval_end[2], int margin, float *r_depth)
void ED_view3d_clipping_calc(BoundBox *bb, float planes[4][4], const ARegion *region, const Object *ob, const rcti *rect)
@ V3D_PROJ_TEST_CLIP_NEAR
@ V3D_PROJ_TEST_CLIP_ZERO
@ V3D_PROJ_TEST_CLIP_CONTENT
eV3DProjStatus ED_view3d_project_float_object(const ARegion *region, const float co[3], float r_co[2], eV3DProjTest flag)
eV3DProjStatus ED_view3d_project_int_object(const ARegion *region, const float co[3], int r_co[2], eV3DProjTest flag)
bool ED_view3d_quat_to_axis_view(const float quat[4], float epsilon, char *r_view, char *r_view_axis_roll)
void ED_view3d_clear_mats_rv3d(RegionView3D *rv3d)
bool ED_view3d_distance_set_from_location(RegionView3D *rv3d, const float dist_co[3], float dist_min)
eV3DProjStatus ED_view3d_project_int_ex(const ARegion *region, float perspmat[4][4], bool is_local, const float co[3], int r_co[2], eV3DProjTest flag)
void ED_view3d_win_to_3d_int(const View3D *v3d, const ARegion *region, const float depth_pt[3], const int mval[2], float r_out[3])
void ED_view3d_autodist_last_clear(wmWindow *win)
V3DSnapCursorState * ED_view3d_cursor_snap_state_active_get()
float ED_view3d_pixel_size_no_ui_scale(const RegionView3D *rv3d, const float co[3])
void ED_view3d_win_to_3d(const View3D *v3d, const ARegion *region, const float depth_pt[3], const float mval[2], float r_out[3])
void ED_view3d_screen_datamask(const Scene *scene, ViewLayer *view_layer, const bScreen *screen, CustomData_MeshMasks *r_cddata_masks)
void ED_view3d_gizmo_mesh_preselect_clear(wmGizmo *gz)
void nurbs_foreachScreenVert(const ViewContext *vc, void(*func)(void *user_data, Nurb *nu, BPoint *bp, BezTriple *bezt, int beztindex, bool handle_visible, const float screen_co[2]), void *user_data, eV3DProjTest clip_flag)
void ED_view3d_to_object(const Depsgraph *depsgraph, Object *ob, const float ofs[3], const float quat[4], float dist)
bool ED_view3d_context_user_region(bContext *C, View3D **r_v3d, ARegion **r_region)
bool ED_view3d_persp_ensure(const Depsgraph *depsgraph, View3D *v3d, ARegion *region)
bool ED_view3d_offset_lock_check(const View3D *v3d, const RegionView3D *rv3d)
bool ED_view3d_autodist_last_check(wmWindow *win, const wmEvent *event)
void ED_view3d_persp_switch_from_camera(const Depsgraph *depsgraph, View3D *v3d, RegionView3D *rv3d, char persp)
bool ED_view3d_lock(RegionView3D *rv3d)
void ED_view3d_init_mats_rv3d(const Object *ob, RegionView3D *rv3d)
char ED_view3d_lock_view_from_index(int index)
void ED_view3d_background_color_get(const Scene *scene, const View3D *v3d, float r_color[3])
void ED_view3d_to_m4(float mat[4][4], const float ofs[3], const float quat[4], float dist)
float ED_view3d_calc_depth_for_comparison(const RegionView3D *rv3d, const float co[3])
void ED_view3d_stop_render_preview(wmWindowManager *wm, ARegion *region)
void ED_view3d_lastview_store(RegionView3D *rv3d)
float ED_view3d_pixel_size(const RegionView3D *rv3d, const float co[3])
void ED_view3d_cursor_snap_state_prevpoint_set(V3DSnapCursorState *state, const float prev_point[3])
bool ED_view3d_clip_segment(const RegionView3D *rv3d, float ray_start[3], float ray_end[3])
void mesh_foreachScreenEdge(const ViewContext *vc, void(*func)(void *user_data, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index), void *user_data, eV3DProjTest clip_flag)
void ED_view3d_autodist_last_set(wmWindow *win, const wmEvent *event, const float ofs[3], const bool has_depth)
void ED_view3d_from_object(const Object *ob, float ofs[3], float quat[4], const float *dist, float *lens)
Object * ED_view3d_give_material_slot_under_cursor(bContext *C, const int mval[2], int *r_material_slot)
bool ED_view3d_camera_view_zoom_scale(RegionView3D *rv3d, const float scale)
void ED_view3d_project_v2(const ARegion *region, const float world[3], float r_region_co[2])
bool ED_view3d_autodist(ARegion *region, View3D *v3d, const int mval[2], float mouse_worldloc[3], const float fallback_depth_pt[3])
@ V3D_SNAPCURSOR_SNAP_EDIT_GEOM_FINAL
@ V3D_SNAPCURSOR_OCCLUSION_ALWAYS_FALSE
@ V3D_SNAPCURSOR_TOGGLE_ALWAYS_TRUE
@ V3D_SNAPCURSOR_OCCLUSION_ALWAYS_TRUE
@ V3D_SNAPCURSOR_SNAP_EDIT_GEOM_CAGE
Object * ED_view3d_give_object_under_cursor(bContext *C, const int mval[2])
bool ED_view3d_has_depth_buffer_updated(const Depsgraph *depsgraph, const View3D *v3d)
float ED_view3d_radius_to_dist_ortho(float lens, float radius)
bool ED_view3d_win_to_3d_on_plane_int(const ARegion *region, const float plane[4], const int mval[2], bool do_clip, float r_out[3])
void ED_view3d_select_id_validate(const ViewContext *vc)
bool ED_view3d_quat_from_axis_view(char view, char view_axis_roll, float r_quat[4])
float ED_view3d_offset_distance(const float mat[4][4], const float ofs[3], float fallback_dist)
void ED_view3d_from_m4(const float mat[4][4], float ofs[3], float quat[4], const float *dist)
ViewContext ED_view3d_viewcontext_init(bContext *C, Depsgraph *depsgraph)
void lattice_foreachScreenVert(const ViewContext *vc, void(*func)(void *user_data, BPoint *bp, const float screen_co[2]), void *user_data, eV3DProjTest clip_flag)
int view3d_opengl_select(const ViewContext *vc, GPUSelectBuffer *buffer, const rcti *input, eV3DSelectMode select_mode, eV3DSelectObjectFilter select_filter)
void ED_view3d_dist_range_get(const View3D *v3d, float r_dist_range[2])
bool ED_view3d_autodist_last_get(wmWindow *win, float r_ofs[3])
eV3DProjStatus ED_view3d_project_short_global(const ARegion *region, const float co[3], short r_co[2], eV3DProjTest flag)
bool ED_view3d_snap_selected_to_location(bContext *C, wmOperator *op, const float snap_target_global[3], int pivot_point)
void ED_view3d_depth_override(Depsgraph *depsgraph, ARegion *region, View3D *v3d, Object *obact, eV3DDepthOverrideMode mode, ViewDepths **r_depths)
void ED_view3d_win_to_delta(const ARegion *region, const float xy_delta[2], float zfac, float r_out[3])
void ED_view3d_navigation_free(bContext *C, ViewOpsData *vod)
float ED_view3d_radius_to_dist_persp(float angle, float radius)
bool ED_view3d_quat_to_axis_view_and_reset_quat(float quat[4], float epsilon, char *r_view, char *r_view_axis_roll)
eV3DProjStatus ED_view3d_project_short_object(const ARegion *region, const float co[3], short r_co[2], eV3DProjTest flag)
void ED_view3d_mats_rv3d_restore(RegionView3D *rv3d, RV3DMatrixStore *rv3dmat)
bool ED_localview_exit_if_empty(const Depsgraph *depsgraph, Scene *scene, ViewLayer *view_layer, wmWindowManager *wm, wmWindow *win, View3D *v3d, ScrArea *area, bool frame_selected=true, int smooth_viewtx=0)
void ED_view3d_clipping_local(RegionView3D *rv3d, const float mat[4][4])
void ED_view3d_init_mats_rv3d_gl(const Object *ob, RegionView3D *rv3d)
int ED_view3d_backbuf_sample_size_clamp(ARegion *region, float dist)
float ED_view3d_radius_to_dist(const View3D *v3d, const ARegion *region, const Depsgraph *depsgraph, char persp, bool use_aspect, float radius)
blender::float4x4 ED_view3d_ob_project_mat_get(const RegionView3D *rv3d, const Object *ob)
bool ED_view3d_depth_read_cached_normal(const ARegion *region, const ViewDepths *depths, const int mval[2], float r_normal[3])
bool ED_view3d_clipping_clamp_minmax(const RegionView3D *rv3d, float min[3], float max[3])
bool ED_view3d_unproject_v3(const ARegion *region, float regionx, float regiony, float regionz, float world[3])
bool ED_view3d_win_to_segment_clipped(const Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const float mval[2], float r_ray_start[3], float r_ray_end[3], bool do_clip_planes)
bool ED_view3d_context_activate(bContext *C)
void ED_view3d_lock_clear(View3D *v3d)
void pose_foreachScreenBone(const ViewContext *vc, void(*func)(void *user_data, bPoseChannel *pchan, const float screen_co_a[2], const float screen_co_b[2]), void *user_data, eV3DProjTest clip_flag)
bool ED_view3d_is_object_under_cursor(bContext *C, const int mval[2])
void view3d_operator_needs_opengl(const bContext *C)
void ED_view3d_draw_setup_view(const wmWindowManager *wm, wmWindow *win, Depsgraph *depsgraph, Scene *scene, ARegion *region, View3D *v3d, const float viewmat[4][4], const float winmat[4][4], const rcti *rect)
eV3DSelectObjectFilter ED_view3d_select_filter_from_mode(const Scene *scene, const Object *obact)
float ED_view3d_calc_zfac_ex(const RegionView3D *rv3d, const float co[3], bool *r_flip)
eV3DProjStatus ED_view3d_project_short_ex(const ARegion *region, float perspmat[4][4], bool is_local, const float co[3], short r_co[2], eV3DProjTest flag)
bool ED_view3d_clip_range_get(const Depsgraph *depsgraph, const View3D *v3d, const RegionView3D *rv3d, bool use_ortho_factor, float *r_clip_start, float *r_clip_end)
void ED_view3d_win_to_origin(const ARegion *region, const float mval[2], float r_out[3])
void mesh_foreachScreenFace(const ViewContext *vc, void(*func)(void *user_data, BMFace *efa, const float screen_co[2], int index), void *user_data, eV3DProjTest clip_flag)
void ED_view3d_camera_lock_init_ex(const Depsgraph *depsgraph, View3D *v3d, RegionView3D *rv3d, bool calc_dist)
void ED_view3d_cursor3d_update(bContext *C, const int mval[2], bool use_depth, enum eV3DCursorOrient orientation)
bool ED_view3d_camera_view_pan(ARegion *region, const float event_ofs[2])
bool ED_view3d_camera_lock_undo_push(const char *str, const View3D *v3d, const RegionView3D *rv3d, bContext *C)
float ED_view3d_calc_zfac(const RegionView3D *rv3d, const float co[3])
void ED_view3d_depths_free(ViewDepths *depths)
@ V3D_DEPTH_SELECTED_ONLY
@ V3D_CURSOR_ORIENT_XFORM
void ED_view3d_cursor_snap_state_free(V3DSnapCursorState *state)
void mball_foreachScreenElem(const ViewContext *vc, void(*func)(void *user_data, MetaElem *ml, const float screen_co[2]), void *user_data, eV3DProjTest clip_flag)
bool ED_view3d_navigation_do(bContext *C, ViewOpsData *vod, const wmEvent *event, const float depth_loc_override[3])
bool ED_view3d_autodist_simple(ARegion *region, const int mval[2], float mouse_worldloc[3], int margin, const float *force_depth)
void ED_view3d_cursor_snap_state_active_set(V3DSnapCursorState *state)
SnapObjectContext * ED_view3d_cursor_snap_context_ensure(Scene *scene)
ViewOpsData * ED_view3d_navigation_init(bContext *C, const wmKeyMapItem *kmi_merge)
bool ED_view3d_win_to_ray_clipped_ex(Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const float mval[2], const bool do_clip_planes, float r_ray_co[3], float r_ray_normal[3], float r_ray_start[3], float r_ray_end[3])
bool ED_view3d_camera_autokey(const Scene *scene, ID *id_key, bContext *C, bool do_rotate, bool do_translate)
void ED_view3d_cursor_snap_draw_util(RegionView3D *rv3d, const float source_loc[3], const float target_loc[3], const eSnapMode source_type, const eSnapMode target_type, const uchar source_color[4], const uchar target_color[4])
bool ED_view3d_viewplane_get(const Depsgraph *depsgraph, const View3D *v3d, const RegionView3D *rv3d, int winx, int winy, rctf *r_viewplane, float *r_clip_start, float *r_clip_end, float *r_pixsize)
void ED_view3d_project_v3(const ARegion *region, const float world[3], float r_region_co[3])
eV3DProjStatus ED_view3d_project_base(const ARegion *region, Base *base, float r_co[2])
@ VIEW3D_SELECT_PICK_NEAREST
bool ED_view3d_camera_to_view_selected(Main *bmain, Depsgraph *depsgraph, const Scene *scene, Object *camera_ob)
bool ED_view3d_win_to_3d_on_plane(const ARegion *region, const float plane[4], const float mval[2], bool do_clip, float r_out[3])
int view3d_opengl_select_with_id_filter(const ViewContext *vc, GPUSelectBuffer *buffer, const rcti *input, eV3DSelectMode select_mode, eV3DSelectObjectFilter select_filter, uint select_id)
Base * ED_view3d_give_base_under_cursor(bContext *C, const int mval[2])
int view3d_opengl_select_ex(const ViewContext *vc, GPUSelectBuffer *buffer, const rcti *input, eV3DSelectMode select_mode, eV3DSelectObjectFilter select_filter, bool do_material_slot_selection)
bool ED_view3d_local_collections_set(const Main *bmain, View3D *v3d)
eV3DProjStatus ED_view3d_project_float_ex(const ARegion *region, float perspmat[4][4], bool is_local, const float co[3], float r_co[2], eV3DProjTest flag)
bool ED_view3d_camera_lock_check(const View3D *v3d, const RegionView3D *rv3d)
void ED_view3d_calc_camera_border(const Scene *scene, const Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const RegionView3D *rv3d, bool no_shift, rctf *r_viewborder)
void ED_view3d_polygon_offset(const RegionView3D *rv3d, float dist)
void ED_view3d_text_colors_get(const Scene *scene, const View3D *v3d, float r_text_color[4], float r_shadow_color[4])
bool ED_view3d_clipping_test(const RegionView3D *rv3d, const float co[3], bool is_local)
blender::float4x4 ED_view3d_ob_project_mat_get_from_obmat(const RegionView3D *rv3d, const blender::float4x4 &obmat)
Camera * ED_view3d_camera_data_get(View3D *v3d, RegionView3D *rv3d)
void ED_view3d_win_to_vector(const ARegion *region, const float mval[2], float r_out[3])
bool edge_inside_circle(const float cent[2], float radius, const float screen_co_a[2], const float screen_co_b[2])
void ED_view3d_grid_steps(const Scene *scene, const View3D *v3d, const RegionView3D *rv3d, float r_grid_steps[8])
RenderEngineType * ED_view3d_engine_type(const Scene *scene, int drawtype)
void ED_view3d_camera_lock_init(const Depsgraph *depsgraph, View3D *v3d, RegionView3D *rv3d)
bool ED_view3d_win_to_3d_on_plane_with_fallback(const ARegion *region, const float plane[4], const float mval[2], bool do_clip, const float plane_fallback[4], float r_out[3])
bool ED_view3d_calc_render_border(const Scene *scene, Depsgraph *depsgraph, View3D *v3d, ARegion *region, rcti *r_rect)
void ED_view3d_viewcontext_init_object(ViewContext *vc, Object *obact)
void view3d_opengl_select_cache_end()
void ED_view3d_quadview_update(ScrArea *area, ARegion *region, bool do_clip)
bool ED_view3d_camera_lock_autokey(View3D *v3d, RegionView3D *rv3d, bContext *C, bool do_rotate, bool do_translate)
void ED_view3d_buttons_region_layout_ex(const bContext *C, ARegion *region, const char *category_override)
void ED_view3d_update_viewmat(const Depsgraph *depsgraph, const Scene *scene, View3D *v3d, ARegion *region, const float viewmat[4][4], const float winmat[4][4], const rcti *rect, bool offscreen)
void mesh_foreachScreenEdge_clip_bb_segment(const ViewContext *vc, void(*func)(void *user_data, BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index), void *user_data, eV3DProjTest clip_flag)
V3DSnapCursorData * ED_view3d_cursor_snap_data_get()
@ VIEW3D_SELECT_FILTER_NOP
@ VIEW3D_SELECT_FILTER_OBJECT_MODE_LOCK
@ VIEW3D_SELECT_FILTER_WPAINT_POSE_MODE_LOCK
bool ED_view3d_camera_lock_undo_test(const View3D *v3d, const RegionView3D *rv3d, bContext *C)
void ED_view3d_cursor3d_position(bContext *C, const int mval[2], bool use_depth, float r_cursor_co[3])
bool ED_view3d_depth_unproject_v3(const ARegion *region, const int mval[2], double depth, float r_location_world[3])
eV3DProjStatus ED_view3d_project_int_global(const ARegion *region, const float co[3], int r_co[2], eV3DProjTest flag)
void meshobject_foreachScreenVert(const ViewContext *vc, void(*func)(void *user_data, const float screen_co[2], int index), void *user_data, eV3DProjTest clip_flag)
void ED_view3d_shade_update(Main *bmain, View3D *v3d, ScrArea *area)
bool ED_operator_rv3d_user_region_poll(bContext *C)
bool ED_view3d_area_user_region(const ScrArea *area, const View3D *v3d, ARegion **r_region)
void ED_scene_draw_fps(const Scene *scene, int xoffset, int *yoffset)
float ED_scene_grid_scale(const Scene *scene, const char **r_grid_unit)
bool ED_view3d_has_workbench_in_texture_color(const Scene *scene, const Object *ob, const View3D *v3d)
bool ED_view3d_camera_lock_undo_grouped_push(const char *str, const View3D *v3d, const RegionView3D *rv3d, bContext *C)
eV3DProjStatus ED_view3d_project_float_global(const ARegion *region, const float co[3], float r_co[2], eV3DProjTest flag)
ViewportColorSampleSession()=default
~ViewportColorSampleSession()
const Depsgraph * depsgraph
Frequency::GEOMETRY nor[]
bool(* poll)(ARegion *region, void *custom_poll_data)