Blender  V2.93
Classes | Typedefs | Enumerations | Functions
ED_transform_snap_object_context.h File Reference

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

SnapObjectContextED_transform_snap_object_context_create (struct Scene *scene, int flag)
 
SnapObjectContextED_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 Documentation

◆ eSnapSelect

typedef enum eSnapSelect eSnapSelect

◆ SnapObjectContext

Definition at line 1 of file ED_transform_snap_object_context.h.

Enumeration Type Documentation

◆ eSnapSelect

Enumerator
SNAP_ALL 
SNAP_NOT_SELECTED 
SNAP_NOT_ACTIVE 

Definition at line 42 of file ED_transform_snap_object_context.h.

Function Documentation

◆ ED_transform_snap_object_context_create()

SnapObjectContext* ED_transform_snap_object_context_create ( struct Scene scene,
int  flag 
)

◆ 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 
)

◆ ED_transform_snap_object_context_destroy()

void ED_transform_snap_object_context_destroy ( SnapObjectContext sctx)

◆ ED_transform_snap_object_context_set_editmesh_callbacks()

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().

◆ ED_transform_snap_object_project_all_view3d_ex()

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 
)

◆ ED_transform_snap_object_project_ray()

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] 
)

◆ ED_transform_snap_object_project_ray_all()

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.

Parameters
ray_depthOnly depths in this range are considered, -1.0 for maximum.
sortOptionally sort the hits by depth.
r_hit_listList 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().

◆ ED_transform_snap_object_project_ray_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] 
)

◆ ED_transform_snap_object_project_view3d()

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.

Parameters
sctxSnap context.
mvalScreenspace coordinate.
prev_coCoordinate for perpendicular point calculation (optional).
dist_pxMaximum distance to snap (in pixels).
r_lochit location.
r_nohit normal (optional).
Returns
Snap success

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().

◆ ED_transform_snap_object_project_view3d_ex()

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] 
)