112 const int defgrp_index,
113 float (*vertexCos)[3],
119 struct Object *ob_target);
123 struct Mesh *target_me,
124 struct Object *ob_target);
140 const float ray_radius,
156 const float hit_co[3],
157 const float hit_no[3],
165 const float hit_co[3],
166 const float hit_no[3],
168 const float point_co[3],
169 float r_point_co[3]);
174 #define NULL_ShrinkwrapCalcData \
178 #define NULL_BVHTreeFromMesh \
182 #define NULL_BVHTreeRayHit \
186 #define NULL_BVHTreeNearest \
typedef float(TangentPoint)[2]
bool BKE_shrinkwrap_project_normal(char options, const float vert[3], const float dir[3], const float ray_radius, const struct SpaceTransform *transf, struct ShrinkwrapTreeData *tree, BVHTreeRayHit *hit)
void shrinkwrapModifier_deform(struct ShrinkwrapModifierData *smd, const struct ModifierEvalContext *ctx, struct Scene *scene, struct Object *ob, struct Mesh *mesh, struct MDeformVert *dvert, const int defgrp_index, float(*vertexCos)[3], int numVerts)
struct ShrinkwrapBoundaryData ShrinkwrapBoundaryData
void BKE_shrinkwrap_find_nearest_surface(struct ShrinkwrapTreeData *tree, struct BVHTreeNearest *nearest, float co[3], int type)
void BKE_shrinkwrap_remesh_target_project(struct Mesh *src_me, struct Mesh *target_me, struct Object *ob_target)
struct ShrinkwrapBoundaryVertData ShrinkwrapBoundaryVertData
void BKE_shrinkwrap_mesh_nearest_surface_deform(struct bContext *C, struct Object *ob_source, struct Object *ob_target)
void BKE_shrinkwrap_compute_smooth_normal(const struct ShrinkwrapTreeData *tree, const struct SpaceTransform *transform, int looptri_idx, const float hit_co[3], const float hit_no[3], float r_no[3])
bool BKE_shrinkwrap_needs_normals(int shrinkType, int shrinkMode)
void BKE_shrinkwrap_compute_boundary_data(struct Mesh *mesh)
void BKE_shrinkwrap_discard_boundary_data(struct Mesh *mesh)
bool BKE_shrinkwrap_init_tree(struct ShrinkwrapTreeData *data, Mesh *mesh, int shrinkType, int shrinkMode, bool force_normals)
void BKE_shrinkwrap_free_tree(struct ShrinkwrapTreeData *data)
struct ShrinkwrapTreeData ShrinkwrapTreeData
void BKE_shrinkwrap_snap_point_to_surface(const struct ShrinkwrapTreeData *tree, const struct 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])
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
SIMD_FORCE_INLINE btVector3 transform(const btVector3 &point) const
CCL_NAMESPACE_BEGIN struct Options options
const int * vert_boundary_id
const ShrinkwrapBoundaryVertData * boundary_verts
const BLI_bitmap * looptri_has_boundary
const BLI_bitmap * edge_is_boundary
unsigned int num_boundary_verts
ShrinkwrapBoundaryData * boundary