|
Blender
V2.93
|
Go to the source code of this file.
Classes | |
| struct | SnapObjectHitDepth |
| struct | SnapObjectParams |
Typedefs | |
| typedef enum eSnapSelect | eSnapSelect |
| typedef struct SnapObjectContext | SnapObjectContext |
Enumerations | |
| enum | eSnapSelect { SNAP_ALL = 0 , SNAP_NOT_SELECTED = 1 , SNAP_NOT_ACTIVE = 2 } |
Functions | |
| SnapObjectContext * | ED_transform_snap_object_context_create (struct Scene *scene, int flag) |
| SnapObjectContext * | ED_transform_snap_object_context_create_view3d (struct Scene *scene, int flag, const struct ARegion *region, const struct View3D *v3d) |
| void | ED_transform_snap_object_context_destroy (SnapObjectContext *sctx) |
| void | ED_transform_snap_object_context_set_editmesh_callbacks (SnapObjectContext *sctx, bool(*test_vert_fn)(struct BMVert *, void *user_data), bool(*test_edge_fn)(struct BMEdge *, void *user_data), bool(*test_face_fn)(struct BMFace *, void *user_data), void *user_data) |
| bool | ED_transform_snap_object_project_ray_ex (struct SnapObjectContext *sctx, struct Depsgraph *depsgraph, const struct 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, struct Object **r_ob, float r_obmat[4][4]) |
| bool | ED_transform_snap_object_project_ray (SnapObjectContext *sctx, struct Depsgraph *depsgraph, const struct SnapObjectParams *params, const float ray_origin[3], const float ray_direction[3], float *ray_depth, float r_co[3], float r_no[3]) |
| bool | ED_transform_snap_object_project_ray_all (SnapObjectContext *sctx, struct Depsgraph *depsgraph, const struct SnapObjectParams *params, const float ray_start[3], const float ray_normal[3], float ray_depth, bool sort, struct ListBase *r_hit_list) |
| short | ED_transform_snap_object_project_view3d_ex (struct SnapObjectContext *sctx, struct Depsgraph *depsgraph, const unsigned short snap_to, const struct SnapObjectParams *params, const float mval[2], const float prev_co[3], float *dist_px, float r_loc[3], float r_no[3], int *r_index, struct Object **r_ob, float r_obmat[4][4]) |
| bool | ED_transform_snap_object_project_view3d (struct SnapObjectContext *sctx, struct Depsgraph *depsgraph, const unsigned short snap_to, const struct SnapObjectParams *params, 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, struct Depsgraph *depsgraph, const struct SnapObjectParams *params, const float mval[2], float ray_depth, bool sort, ListBase *r_hit_list) |
| typedef enum eSnapSelect eSnapSelect |
| typedef struct SnapObjectContext SnapObjectContext |
Definition at line 1 of file ED_transform_snap_object_context.h.
| enum eSnapSelect |
| Enumerator | |
|---|---|
| SNAP_ALL | |
| SNAP_NOT_SELECTED | |
| SNAP_NOT_ACTIVE | |
Definition at line 42 of file ED_transform_snap_object_context.h.
| SnapObjectContext* ED_transform_snap_object_context_create | ( | struct Scene * | scene, |
| int | flag | ||
| ) |
Definition at line 2824 of file transform_snap_object.c.
References BLI_ghash_ptr_new(), BLI_memarena_new(), BLI_MEMARENA_STD_BUFSIZE, SnapObjectContext::cache, SnapObjectContext::data_to_object_map, SnapObjectContext::flag, SnapObjectContext::mem_arena, MEM_callocN, NULL, SnapObjectContext::object_map, scene, and SnapObjectContext::scene.
Referenced by ED_transform_snap_object_context_create_view3d().
| SnapObjectContext* ED_transform_snap_object_context_create_view3d | ( | struct Scene * | scene, |
| int | flag, | ||
| const struct ARegion * | region, | ||
| const struct View3D * | v3d | ||
| ) |
| void ED_transform_snap_object_context_destroy | ( | SnapObjectContext * | sctx | ) |
Definition at line 2861 of file transform_snap_object.c.
References BLI_ghash_free(), BLI_memarena_free(), SnapObjectContext::cache, SnapObjectContext::data_to_object_map, SnapObjectContext::mem_arena, MEM_freeN, NULL, SnapObjectContext::object_map, and snap_object_data_free().
Referenced by add_vertex_invoke(), ED_view3d_cursor3d_position_rotation(), EDBM_project_snap_verts(), freeSnapping(), gizmo_move_exit(), gpencil_strokes_reproject_exec(), snap_gizmo_free(), view3d_interactive_add_calc_plane(), and walkEnd().
| void ED_transform_snap_object_context_set_editmesh_callbacks | ( | SnapObjectContext * | sctx, |
| bool(*)(struct BMVert *, void *user_data) | test_vert_fn, | ||
| bool(*)(struct BMEdge *, void *user_data) | test_edge_fn, | ||
| bool(*)(struct BMFace *, void *user_data) | test_face_fn, | ||
| void * | user_data | ||
| ) |
Referenced by initSnappingMode().
| bool ED_transform_snap_object_project_all_view3d_ex | ( | SnapObjectContext * | sctx, |
| Depsgraph * | depsgraph, | ||
| const struct 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 3253 of file transform_snap_object.c.
References depsgraph, ED_transform_snap_object_project_ray_all(), ED_view3d_win_to_ray_clipped_ex(), NULL, params, SnapObjectContext::region, sort(), SnapObjectContext::v3d, and SnapObjectContext::v3d_data.
Referenced by peelObjectsTransform().
| bool ED_transform_snap_object_project_ray | ( | SnapObjectContext * | sctx, |
| struct Depsgraph * | depsgraph, | ||
| const struct SnapObjectParams * | params, | ||
| const float | ray_origin[3], | ||
| const float | ray_direction[3], | ||
| float * | ray_depth, | ||
| float | r_co[3], | ||
| float | r_no[3] | ||
| ) |
Definition at line 2986 of file transform_snap_object.c.
References BVH_RAYCAST_DIST_MAX, depsgraph, NULL, params, SnapObjUserData::r_no, and transform_snap_context_project_ray_impl().
Referenced by ED_gpencil_stroke_reproject(), 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 struct 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 2919 of file transform_snap_object.c.
References BLI_assert, BLI_listbase_sort(), BVH_RAYCAST_DIST_MAX, depsgraph, hit_depth_cmp(), NULL, params, raycastObjects(), and sort().
Referenced by ED_transform_snap_object_project_all_view3d_ex().
| bool ED_transform_snap_object_project_ray_ex | ( | struct SnapObjectContext * | sctx, |
| struct Depsgraph * | depsgraph, | ||
| const struct 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, | ||
| struct Object ** | r_ob, | ||
| float | r_obmat[4][4] | ||
| ) |
Definition at line 2886 of file transform_snap_object.c.
References depsgraph, NULL, params, SnapObjUserData::r_index, SnapObjUserData::r_loc, SnapObjUserData::r_no, SnapObjUserData::r_ob, SnapObjUserData::r_obmat, and raycastObjects().
Referenced by transform_snap_context_project_ray_impl().
| bool ED_transform_snap_object_project_view3d | ( | SnapObjectContext * | sctx, |
| Depsgraph * | depsgraph, | ||
| const ushort | snap_to, | ||
| const struct SnapObjectParams * | params, | ||
| 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. |
| mval | Screenspace coordinate. |
| prev_co | Coordinate for perpendicular point calculation (optional). |
| dist_px | Maximum distance to snap (in pixels). |
| r_loc | hit location. |
| r_no | hit normal (optional). |
Definition at line 3226 of file transform_snap_object.c.
References depsgraph, SnapObjUserData::dist_px, ED_transform_snap_object_project_view3d_ex(), NULL, params, SnapObjUserData::r_loc, and SnapObjUserData::r_no.
Referenced by add_vertex_invoke(), applyProject(), EDBM_project_snap_verts(), gizmo_move_modal(), view3d_interactive_add_calc_plane(), and view3d_ruler_item_mousemove().
| short ED_transform_snap_object_project_view3d_ex | ( | struct SnapObjectContext * | sctx, |
| struct Depsgraph * | depsgraph, | ||
| const unsigned short | snap_to, | ||
| const struct SnapObjectParams * | params, | ||
| const float | mval[2], | ||
| const float | prev_co[3], | ||
| float * | dist_px, | ||
| float | r_loc[3], | ||
| float | r_no[3], | ||
| int * | r_index, | ||
| struct Object ** | r_ob, | ||
| float | r_obmat[4][4] | ||
| ) |
Definition at line 3186 of file transform_snap_object.c.
References depsgraph, SnapObjUserData::dist_px, params, SnapObjUserData::r_index, SnapObjUserData::r_loc, SnapObjUserData::r_no, SnapObjUserData::r_ob, SnapObjUserData::r_obmat, and transform_snap_context_project_view3d_mixed_impl().
Referenced by ED_gizmotypes_snap_3d_update(), ED_transform_snap_object_project_view3d(), ED_view3d_cursor3d_position_rotation(), idp_poject_surface_normal(), and snapObjectsTransform().