Blender V4.3
ED_transform_snap_object_context.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
9#pragma once
10
11#include "DNA_scene_types.h"
12
13// #define DEBUG_SNAP_TIME
14
15struct BMEdge;
16struct BMFace;
17struct BMVert;
18
19struct ARegion;
20struct Depsgraph;
21struct ListBase;
22struct Object;
23struct Scene;
24struct View3D;
25
26/* `transform_snap_object.cc` */
27
28/* ED_transform_snap_object_*** API */
29
33 SNAP_GEOM_EDIT = 2, /* Bmesh for mesh-type. */
34};
35
41
45
46 float depth;
47 float co[3];
48
53 unsigned int ob_uuid;
54};
55
73
77
81 bool (*test_vert_fn)(BMVert *, void *user_data),
82 bool (*test_edge_fn)(BMEdge *, void *user_data),
83 bool (*test_face_fn)(BMFace *, void *user_data),
84 void *user_data);
85
87 Depsgraph *depsgraph,
88 const View3D *v3d,
90 const float ray_start[3],
91 const float ray_normal[3],
92 float *ray_depth,
93 /* return args */
94 float r_loc[3],
95 float r_no[3],
96 int *r_index,
97 const Object **r_ob,
98 float r_obmat[4][4]);
107 Depsgraph *depsgraph,
108 const View3D *v3d,
110 const float ray_start[3],
111 const float ray_normal[3],
112 float *ray_depth,
113 float r_co[3],
114 float r_no[3]);
115
124 Depsgraph *depsgraph,
125 const View3D *v3d,
127 const float ray_start[3],
128 const float ray_normal[3],
129 float ray_depth,
130 bool sort,
131 ListBase *r_hit_list);
132
154 Depsgraph *depsgraph,
155 const ARegion *region,
156 const View3D *v3d,
157 const eSnapMode snap_to,
159 const float init_co[3],
160 const float mval[2],
161 const float prev_co[3],
162 float *dist_px,
163 float r_loc[3],
164 float r_no[3],
165 int *r_index,
166 const Object **r_ob,
167 float r_obmat[4][4],
168 float r_face_nor[3]);
186 Depsgraph *depsgraph,
187 const ARegion *region,
188 const View3D *v3d,
189 const eSnapMode snap_to,
191 const float init_co[3],
192 const float mval[2],
193 const float prev_co[3],
194 float *dist_px,
195 /* return args */
196 float r_loc[3],
197 float r_no[3]);
198
203 Depsgraph *depsgraph,
204 const ARegion *region,
205 const View3D *v3d,
207 const float mval[2],
208 float ray_depth,
209 bool sort,
210 ListBase *r_hit_list);
211
212#ifdef DEBUG_SNAP_TIME
214#else
215# define ED_transform_snap_object_time_average_print() void(0)
216#endif
eSnapTargetOP
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])
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_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)
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_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()
SnapObjectContext * ED_transform_snap_object_context_create(Scene *scene, int flag)
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])
void ED_transform_snap_object_context_destroy(SnapObjectContext *sctx)
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])
const Depsgraph * depsgraph
uiWidgetBaseParameters params[MAX_WIDGET_BASE_BATCH]
bool(* test_face_fn)(BMFace *, void *user_data)
bool(* test_edge_fn)(BMEdge *, void *user_data)
bool(* test_vert_fn)(BMVert *, void *user_data)
uint8_t flag
Definition wm_window.cc:138