|
Blender V4.3
|
#include "DNA_scene_types.h"Go to the source code of this file.
Classes | |
| struct | SnapObjectHitDepth |
| struct | SnapObjectParams |
Macros | |
| #define | ED_transform_snap_object_time_average_print() void(0) |
Enumerations | |
| enum | eSnapEditType { SNAP_GEOM_FINAL = 0 , SNAP_GEOM_CAGE = 1 , SNAP_GEOM_EDIT = 2 } |
| enum | eSnapOcclusionTest { SNAP_OCCLUSION_NEVER = 0 , SNAP_OCCLUSION_AS_SEEM = 1 , SNAP_OCCLUSION_ALWAYS = 2 } |
Functions | |
| SnapObjectContext * | ED_transform_snap_object_context_create (Scene *scene, int flag) |
| void | ED_transform_snap_object_context_destroy (SnapObjectContext *sctx) |
| void | ED_transform_snap_object_context_set_editmesh_callbacks (SnapObjectContext *sctx, bool(*test_vert_fn)(BMVert *, void *user_data), bool(*test_edge_fn)(BMEdge *, void *user_data), bool(*test_face_fn)(BMFace *, void *user_data), void *user_data) |
| bool | ED_transform_snap_object_project_ray_ex (SnapObjectContext *sctx, Depsgraph *depsgraph, const View3D *v3d, const SnapObjectParams *params, const float ray_start[3], const float ray_normal[3], float *ray_depth, float r_loc[3], float r_no[3], int *r_index, const Object **r_ob, float r_obmat[4][4]) |
| bool | ED_transform_snap_object_project_ray (SnapObjectContext *sctx, Depsgraph *depsgraph, const View3D *v3d, const SnapObjectParams *params, const float ray_start[3], const float ray_normal[3], float *ray_depth, float r_co[3], float r_no[3]) |
| bool | ED_transform_snap_object_project_ray_all (SnapObjectContext *sctx, Depsgraph *depsgraph, const View3D *v3d, const SnapObjectParams *params, const float ray_start[3], const float ray_normal[3], float ray_depth, bool sort, ListBase *r_hit_list) |
| eSnapMode | ED_transform_snap_object_project_view3d_ex (SnapObjectContext *sctx, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const eSnapMode snap_to, const SnapObjectParams *params, const float init_co[3], const float mval[2], const float prev_co[3], float *dist_px, float r_loc[3], float r_no[3], int *r_index, const Object **r_ob, float r_obmat[4][4], float r_face_nor[3]) |
| eSnapMode | ED_transform_snap_object_project_view3d (SnapObjectContext *sctx, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const eSnapMode snap_to, const SnapObjectParams *params, const float init_co[3], const float mval[2], const float prev_co[3], float *dist_px, float r_loc[3], float r_no[3]) |
| bool | ED_transform_snap_object_project_all_view3d_ex (SnapObjectContext *sctx, Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const SnapObjectParams *params, const float mval[2], float ray_depth, bool sort, ListBase *r_hit_list) |
| #define ED_transform_snap_object_time_average_print | ( | ) | void(0) |
Definition at line 215 of file ED_transform_snap_object_context.hh.
Referenced by freeSnapping().
| enum eSnapEditType |
| Enumerator | |
|---|---|
| SNAP_GEOM_FINAL | |
| SNAP_GEOM_CAGE | |
| SNAP_GEOM_EDIT | |
Definition at line 30 of file ED_transform_snap_object_context.hh.
| enum eSnapOcclusionTest |
| Enumerator | |
|---|---|
| SNAP_OCCLUSION_NEVER | |
| SNAP_OCCLUSION_AS_SEEM | |
| SNAP_OCCLUSION_ALWAYS | |
Definition at line 36 of file ED_transform_snap_object_context.hh.
| SnapObjectContext * ED_transform_snap_object_context_create | ( | Scene * | scene, |
| int | flag ) |
Definition at line 1015 of file transform_snap_object.cc.
References scene, and SnapObjectContext::scene.
Referenced by add_vertex_invoke(), ED_view3d_cursor3d_position_rotation(), EDBM_project_snap_verts(), gizmo_move_invoke(), initSnappingMode(), initWalkInfo(), v3d_cursor_snap_context_ensure(), and wm_xr_raycast().
| void ED_transform_snap_object_context_destroy | ( | SnapObjectContext * | sctx | ) |
Definition at line 1024 of file transform_snap_object.cc.
Referenced by add_vertex_invoke(), ED_view3d_cursor3d_position_rotation(), EDBM_project_snap_verts(), freeSnapping(), gizmo_move_exit(), v3d_cursor_snap_context_ensure(), v3d_cursor_snap_free(), walkEnd(), and wm_xr_raycast().
| void ED_transform_snap_object_context_set_editmesh_callbacks | ( | SnapObjectContext * | sctx, |
| bool(* | test_vert_fn )(BMVert *, void *user_data), | ||
| bool(* | test_edge_fn )(BMEdge *, void *user_data), | ||
| bool(* | test_face_fn )(BMFace *, void *user_data), | ||
| void * | user_data ) |
Callbacks to filter how snap works.
Definition at line 1029 of file transform_snap_object.cc.
References SnapObjectContext::callbacks, SnapObjectContext::edit_mesh, SnapObjectContext::editmesh_caches, SnapObjectContext::test_edge_fn, SnapObjectContext::test_face_fn, SnapObjectContext::test_vert_fn, and SnapObjectContext::user_data.
Referenced by snap_object_context_init(), and transform_mode_snap_source_init().
| bool ED_transform_snap_object_project_all_view3d_ex | ( | SnapObjectContext * | sctx, |
| Depsgraph * | depsgraph, | ||
| const ARegion * | region, | ||
| const View3D * | v3d, | ||
| const SnapObjectParams * | params, | ||
| const float | mval[2], | ||
| float | ray_depth, | ||
| bool | sort, | ||
| ListBase * | r_hit_list ) |
see: ED_transform_snap_object_project_ray_all
Definition at line 1530 of file transform_snap_object.cc.
References RegionView3D::clip, clip_segment_v3_plane_n(), depsgraph, blender::math::dot(), ED_transform_snap_object_project_ray_all(), ED_view3d_win_to_ray_clipped_ex(), params, RegionView3D::rflag, and RV3D_CLIPPING.
Referenced by peelObjectsTransform().
| bool ED_transform_snap_object_project_ray | ( | SnapObjectContext * | sctx, |
| Depsgraph * | depsgraph, | ||
| const View3D * | v3d, | ||
| const SnapObjectParams * | params, | ||
| const float | ray_start[3], | ||
| const float | ray_normal[3], | ||
| float * | ray_depth, | ||
| float | r_co[3], | ||
| float | r_no[3] ) |
Convenience function for snap ray-casting.
Given a ray, cast it into the scene (snapping to faces).
Definition at line 1277 of file transform_snap_object.cc.
References depsgraph, ED_transform_snap_object_project_ray_ex(), and params.
Referenced by view3d_ruler_item_mousemove(), walk_floor_distance_get(), and walk_ray_cast().
| bool ED_transform_snap_object_project_ray_all | ( | SnapObjectContext * | sctx, |
| Depsgraph * | depsgraph, | ||
| const View3D * | v3d, | ||
| const SnapObjectParams * | params, | ||
| const float | ray_start[3], | ||
| const float | ray_normal[3], | ||
| float | ray_depth, | ||
| bool | sort, | ||
| ListBase * | r_hit_list ) |
Fill in a list of all hits.
| ray_depth | Only depths in this range are considered, -1.0 for maximum. |
| sort | Optionally sort the hits by depth. |
| r_hit_list | List of SnapObjectHitDepth (caller must free). |
Definition at line 1232 of file transform_snap_object.cc.
References BLI_assert, BLI_listbase_sort(), BVH_RAYCAST_DIST_MAX, depsgraph, hit_depth_cmp(), params, SnapObjectContext::ray_depth_max, raycastObjects(), SnapObjectContext::ret, SCE_SNAP_TO_FACE, and snap_object_context_runtime_init().
Referenced by ED_transform_snap_object_project_all_view3d_ex().
| bool ED_transform_snap_object_project_ray_ex | ( | SnapObjectContext * | sctx, |
| Depsgraph * | depsgraph, | ||
| const View3D * | v3d, | ||
| const SnapObjectParams * | params, | ||
| const float | ray_start[3], | ||
| const float | ray_normal[3], | ||
| float * | ray_depth, | ||
| float | r_loc[3], | ||
| float | r_no[3], | ||
| int * | r_index, | ||
| const Object ** | r_ob, | ||
| float | r_obmat[4][4] ) |
Definition at line 1177 of file transform_snap_object.cc.
References BVH_RAYCAST_DIST_MAX, copy_m4_m4(), copy_v3_v3(), depsgraph, SnapObjectContext::index, SnapObjectContext::loc, SnapObjectContext::no, SnapObjectContext::ob, SnapObjectContext::obmat, params, blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), SnapObjectContext::ray_depth_max, raycastObjects(), SnapObjectContext::ret, SCE_SNAP_TO_FACE, and snap_object_context_runtime_init().
Referenced by ED_transform_snap_object_project_ray(), and wm_xr_raycast().
| eSnapMode ED_transform_snap_object_project_view3d | ( | SnapObjectContext * | sctx, |
| Depsgraph * | depsgraph, | ||
| const ARegion * | region, | ||
| const View3D * | v3d, | ||
| const eSnapMode | snap_to, | ||
| const SnapObjectParams * | params, | ||
| const float | init_co[3], | ||
| const float | mval[2], | ||
| const float | prev_co[3], | ||
| float * | dist_px, | ||
| float | r_loc[3], | ||
| float | r_no[3] ) |
Convenience function for performing snapping.
Given a 2D region value, snap to vert/edge/face.
| sctx | Snap context. |
| snap_to | Target elements to snap source to. |
| params | Addition snapping options. |
| init_co | Initial world-space coordinate of source (optional). |
| mval | Current transformed screen-space coordinate or mouse position (optional). |
| prev_co | Current transformed world-space coordinate of source (optional). |
| dist_px | Maximum distance to snap (in pixels). |
| r_loc | Snapped world-space coordinate. |
| r_no | Snapped world-space normal (optional). |
Definition at line 1499 of file transform_snap_object.cc.
References depsgraph, ED_transform_snap_object_project_view3d_ex(), and params.
Referenced by add_vertex_invoke(), applyFaceNearest(), applyFaceProject(), EDBM_project_snap_verts(), gizmo_move_modal(), snapObjectsTransform(), v3d_cursor_snap_update(), and view3d_ruler_item_mousemove().
| eSnapMode ED_transform_snap_object_project_view3d_ex | ( | SnapObjectContext * | sctx, |
| Depsgraph * | depsgraph, | ||
| const ARegion * | region, | ||
| const View3D * | v3d, | ||
| const eSnapMode | snap_to, | ||
| const SnapObjectParams * | params, | ||
| const float | init_co[3], | ||
| const float | mval[2], | ||
| const float | prev_co[3], | ||
| float * | dist_px, | ||
| float | r_loc[3], | ||
| float | r_no[3], | ||
| int * | r_index, | ||
| const Object ** | r_ob, | ||
| float | r_obmat[4][4], | ||
| float | r_face_nor[3] ) |
Perform snapping.
Given a 2D region value, snap to vert/edge/face/grid.
| sctx | Snap context. |
| snap_to | Target elements to snap source to. |
| params | Addition snapping options. |
| init_co | Initial world-space coordinate of source (optional). |
| mval | Current transformed screen-space coordinate or mouse position (optional). |
| prev_co | Current transformed world-space coordinate of source (optional). |
| dist_px | Maximum distance to snap (in pixels). |
| r_loc | Snapped world-space coordinate. |
| r_no | Snapped world-space normal (optional). |
| r_index | Index of snapped-to target element (optional). |
| r_ob | Snapped-to target object (optional). |
| r_obmat | Matrix of snapped-to target object (optional). |
| r_face_nor | World-space normal of snapped-to target face (optional). |
Definition at line 1301 of file transform_snap_object.cc.
References BLI_assert, BLI_ASSERT_UNIT_V3, BVH_RAYCAST_DIST_MAX, RegionView3D::clip, clip_segment_v3_plane_n(), copy_m4_m4(), copy_v3_v3(), depsgraph, SnapObjectContext::dist_px_sq, blender::math::dot(), ED_view3d_win_to_ray_clipped_ex(), FLT_MAX, SnapObjectContext::has_occlusion_plane, SnapObjectContext::index, SnapObjectContext::loc, nearestWorldObjects(), SnapObjectContext::no, SnapObjectContext::ob, SnapObjectContext::obmat, SnapObjectContext::occlusion_plane, occlusion_plane_create(), params, blender::MatBase< T, NumCol, NumRow, Alignment >::ptr(), SnapObjectContext::ray_dir, SnapObjectContext::ray_start, raycastObjects(), SnapObjectContext::ret, RegionView3D::rflag, SnapObjectContext::runtime, RV3D_CLIPPING, SCE_SNAP_INDIVIDUAL_NEAREST, SCE_SNAP_TO_EDGE, SCE_SNAP_TO_EDGE_ENDPOINT, SCE_SNAP_TO_EDGE_MIDPOINT, SCE_SNAP_TO_EDGE_PERPENDICULAR, SCE_SNAP_TO_FACE, SCE_SNAP_TO_GEOM, SCE_SNAP_TO_GRID, SCE_SNAP_TO_NONE, SCE_SNAP_TO_POINT, snap_edge_points(), snap_grid(), snap_object_context_runtime_init(), SNAP_OCCLUSION_ALWAYS, SNAP_OCCLUSION_AS_SEEM, SNAP_OCCLUSION_NEVER, snap_polygon(), SNAP_TO_EDGE_ELEMENTS, SnapObjectContext::snap_to_flag, snapObjectsRay(), blender::math::sqrt(), square_f(), and XRAY_ENABLED.
Referenced by ED_transform_snap_object_project_view3d(), ED_view3d_cursor3d_position_rotation(), and v3d_cursor_snap_update().