109 float (*vertexCos)[3],
116 float (*vertexCos)[3],
124 struct Object *ob_target);
130 struct Mesh *target_me,
131 struct Object *ob_target);
176 const float hit_co[3],
177 const float hit_no[3],
191 const float hit_co[3],
192 const float hit_no[3],
194 const float point_co[3],
195 float r_point_co[3]);
200 #define NULL_ShrinkwrapCalcData \
204 #define NULL_BVHTreeFromMesh \
208 #define NULL_BVHTreeRayHit \
212 #define NULL_BVHTreeNearest \
typedef float(TangentPoint)[2]
struct ShrinkwrapBoundaryData ShrinkwrapBoundaryData
void BKE_shrinkwrap_find_nearest_surface(struct ShrinkwrapTreeData *tree, struct BVHTreeNearest *nearest, float co[3], int type)
bool BKE_shrinkwrap_project_normal(char options, const float vert[3], const float dir[3], float ray_radius, const struct SpaceTransform *transf, struct ShrinkwrapTreeData *tree, BVHTreeRayHit *hit)
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 shrinkwrapModifier_deform(struct ShrinkwrapModifierData *smd, const struct ModifierEvalContext *ctx, struct Scene *scene, struct Object *ob, struct Mesh *mesh, struct MDeformVert *dvert, int defgrp_index, float(*vertexCos)[3], int numVerts)
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])
void shrinkwrapGpencilModifier_deform(struct ShrinkwrapGpencilModifierData *mmd, struct Object *ob, struct MDeformVert *dvert, int defgrp_index, float(*vertexCos)[3], int numVerts)
_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