121 float (*vertexCos)[3],
128 float (*vertexCos)[3],
220 const float hit_co[3],
221 const float hit_no[3],
235 const float hit_co[3],
236 const float hit_no[3],
238 const float point_co[3],
239 float r_point_co[3]);
244#define NULL_ShrinkwrapCalcData \
248#define NULL_BVHTreeFromMesh \
252#define NULL_BVHTreeRayHit \
256#define NULL_BVHTreeNearest \
bool BKE_shrinkwrap_project_normal(char options, const float vert[3], const float dir[3], float ray_radius, const SpaceTransform *transf, ShrinkwrapTreeData *tree, BVHTreeRayHit *hit)
void BKE_shrinkwrap_free_tree(ShrinkwrapTreeData *data)
void BKE_shrinkwrap_snap_point_to_surface(const ShrinkwrapTreeData *tree, const SpaceTransform *transform, int mode, int hit_idx, const float hit_co[3], const float hit_no[3], float goal_dist, const float point_co[3], float r_point_co[3])
void shrinkwrapModifier_deform(ShrinkwrapModifierData *smd, const ModifierEvalContext *ctx, Scene *scene, Object *ob, Mesh *mesh, const MDeformVert *dvert, int defgrp_index, float(*vertexCos)[3], int numVerts)
void BKE_shrinkwrap_compute_smooth_normal(const ShrinkwrapTreeData *tree, const SpaceTransform *transform, int tri_idx, const float hit_co[3], const float hit_no[3], float r_no[3])
void shrinkwrapParams_deform(const ShrinkwrapParams ¶ms, Object &object, ShrinkwrapTreeData &tree, blender::Span< MDeformVert > dvert, int defgrp_index, blender::MutableSpan< blender::float3 > positions)
void BKE_shrinkwrap_mesh_nearest_surface_deform(Depsgraph *depsgraph, Scene *scene, Object *ob_source, Object *ob_target)
void BKE_shrinkwrap_remesh_target_project(Mesh *src_me, Mesh *target_me, Object *ob_target)
bool BKE_shrinkwrap_needs_normals(int shrinkType, int shrinkMode)
void shrinkwrapGpencilModifier_deform(ShrinkwrapGpencilModifierData *mmd, Object *ob, MDeformVert *dvert, int defgrp_index, float(*vertexCos)[3], int numVerts)
bool BKE_shrinkwrap_init_tree(ShrinkwrapTreeData *data, Mesh *mesh, int shrinkType, int shrinkMode, bool force_normals)
void BKE_shrinkwrap_find_nearest_surface(ShrinkwrapTreeData *tree, BVHTreeNearest *nearest, float co[3], int type)
blender::BitVector tri_has_boundary
blender::Array< int > vert_boundary_id
bool has_boundary() const
blender::Array< ShrinkwrapBoundaryVertData > boundary_verts
blender::BitVector edge_is_boundary
CCL_NAMESPACE_BEGIN struct Options options
const Depsgraph * depsgraph
const ShrinkwrapBoundaryData & boundary_cache_ensure(const Mesh &mesh)
bool invert_vertex_weights
blender::OffsetIndices< int > faces
blender::Span< blender::float3 > face_normals
const ShrinkwrapBoundaryData * boundary
blender::VArraySpan< bool > sharp_faces
blender::Span< blender::float3 > corner_normals
blender::Span< int > corner_edges
blender::Span< blender::float3 > vert_normals