示例#1
0
static void deformVertsEM(
					   ModifierData *md, Object *ob, struct EditMesh *editData,
	   DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
{
	DerivedMesh *dm= derivedData;
	WaveModifierData *wmd = (WaveModifierData *)md;

	if(wmd->flag & MOD_WAVE_NORM)
		dm= get_cddm(ob, editData, dm, vertexCos);
	else if(wmd->texture || wmd->defgrp_name[0])
		dm= get_dm(ob, editData, dm, NULL, 0);

	waveModifier_do(wmd, md->scene, ob, dm, vertexCos, numVerts);

	if(dm != derivedData)
		dm->release(dm);
}
示例#2
0
static void deformVerts(ModifierData *md, Object *ob,
                        DerivedMesh *derivedData,
                        float (*vertexCos)[3],
                        int numVerts,
                        ModifierApplyFlag UNUSED(flag))
{
	DerivedMesh *dm = derivedData;
	WaveModifierData *wmd = (WaveModifierData *)md;

	if (wmd->flag & MOD_WAVE_NORM)
		dm = get_cddm(ob, NULL, dm, vertexCos, false);
	else if (wmd->texture || wmd->defgrp_name[0])
		dm = get_dm(ob, NULL, dm, NULL, false, false);

	waveModifier_do(wmd, md->scene, ob, dm, vertexCos, numVerts);

	if (dm != derivedData)
		dm->release(dm);
}