コード例 #1
0
static void deformVerts(
        ModifierData *md, Object *ob, DerivedMesh *derivedData,
        float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag))
{
	DerivedMesh *dm = get_dm(ob, NULL, derivedData, NULL, false, false);

	correctivesmooth_modifier_do(md, ob, dm, vertexCos, (unsigned int)numVerts, NULL);

	if (dm != derivedData) {
		dm->release(dm);
	}
}
コード例 #2
0
static void deformVertsEM(
        ModifierData *md, Object *ob, struct BMEditMesh *editData,
        DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
	DerivedMesh *dm = get_dm(ob, editData, derivedData, NULL, false, false);

	correctivesmooth_modifier_do(md, ob, dm, vertexCos, (unsigned int)numVerts, editData);

	if (dm != derivedData) {
		dm->release(dm);
	}
}
コード例 #3
0
static void deformVerts(ModifierData *md,
                        const ModifierEvalContext *ctx,
                        Mesh *mesh,
                        float (*vertexCos)[3],
                        int numVerts)
{
  Mesh *mesh_src = MOD_deform_mesh_eval_get(ctx->object, NULL, mesh, NULL, numVerts, false, false);

  correctivesmooth_modifier_do(
      md, ctx->depsgraph, ctx->object, mesh_src, vertexCos, (unsigned int)numVerts, NULL);

  if (mesh_src != mesh) {
    BKE_id_free(NULL, mesh_src);
  }
}