39 return static_cast<const Mesh *
>(ob_eval->
data);
53 if (mesh != this->mesh_ref || mesh->
runtime != this->runtime_ref ||
54 mesh->runtime->edit_data.get() != this->edit_data_ref)
74#ifdef WITH_CXX_GUARDEDALLOC
75 MEM_CXX_CLASS_ALLOC_FUNCS(
"SnapCache_EditMesh")
90 ".hide_vert", bke::AttrDomain::Point);
92 ".hide_edge", bke::AttrDomain::Edge);
94 ".hide_poly", bke::AttrDomain::Face);
98 const bool use_threading = (mesh->faces_num + mesh->edges_num) > 1024;
157 const Mesh *mesh_ref = (
G.moving) ?
163 if (std::unique_ptr<SnapObjectContext::SnapCache> *em_cache_p = sctx->
editmesh_caches.lookup_ptr(
175 std::unique_ptr<SnapCache_EditMesh> em_cache_ptr = std::make_unique<SnapCache_EditMesh>();
176 em_cache = em_cache_ptr.get();
212 return snap_mode_supported;
225 if (em_cache !=
nullptr) {
247 if (em_cache && em_cache->
mesh) {
BMEditMesh * BKE_editmesh_from_object(Object *ob)
Return the BMEditMesh for a given object.
void BKE_id_free(Main *bmain, void *idv)
void * BKE_id_new_nomain(short type, const char *name)
General operations, lookup, etc. for blender objects.
const Mesh * BKE_object_get_editmesh_eval_cage(const Object *object)
const Mesh * BKE_object_get_editmesh_eval_final(const Object *object)
@ SCE_SNAP_INDIVIDUAL_NEAREST
#define BM_elem_flag_test_bool(ele, hflag)
#define BM_ITER_MESH_INDEX(ele, iter, bm, itype, indexvar)
ATTR_WARN_UNUSED_RESULT BMesh * bm
void BM_mesh_bm_to_me_compact(BMesh &bm, Mesh &mesh, const CustomData_MeshMasks *mask, const bool add_mesh_attributes)
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMVert * v
GSpanAttributeWriter lookup_or_add_for_write_only_span(StringRef attribute_id, AttrDomain domain, eCustomDataType data_type)
void parallel_invoke(Functions &&...functions)
MeshRuntimeHandle * runtime
ObjectRuntimeHandle * runtime
bool has_mesh_updated(const Mesh *mesh)
~SnapCache_EditMesh() override
bke::EditMeshData * edit_data_ref
bke::MeshRuntime * runtime_ref
struct SnapObjectContext::@587::@591 edit_mesh
bool(* test_face_fn)(BMFace *, void *user_data)
bool(* test_edge_fn)(BMEdge *, void *user_data)
blender::Map< const ID *, std::unique_ptr< SnapCache > > editmesh_caches
bool(* test_vert_fn)(BMVert *, void *user_data)
struct SnapObjectContext::@589 runtime
struct SnapObjectContext::@587 callbacks
eSnapEditType edit_mode_type
MutableVArraySpan< T > span