forked from bartvdbraak/blender
Cleanup: modifier arg wrapping
This commit is contained in:
parent
f197134426
commit
c84b8d4801
@ -121,11 +121,12 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
|
||||
DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_TRANSFORM, "Armature Modifier");
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
ArmatureModifierData *amd = (ArmatureModifierData *) md;
|
||||
|
||||
@ -180,8 +181,9 @@ static void deformMatricesEM(
|
||||
if (!derivedData) dm->release(dm);
|
||||
}
|
||||
|
||||
static void deformMatrices(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], float (*defMats)[3][3], int numVerts)
|
||||
static void deformMatrices(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], float (*defMats)[3][3], int numVerts)
|
||||
{
|
||||
ArmatureModifierData *amd = (ArmatureModifierData *) md;
|
||||
DerivedMesh *dm = derivedData;
|
||||
|
@ -791,9 +791,10 @@ static DerivedMesh *arrayModifier_doArray(
|
||||
}
|
||||
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
ArrayModifierData *amd = (ArrayModifierData *) md;
|
||||
return arrayModifier_doArray(amd, md->scene, ob, dm, flag);
|
||||
|
@ -77,9 +77,10 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
/*
|
||||
* This calls the new bevel code (added since 2.64)
|
||||
*/
|
||||
static DerivedMesh *applyModifier(ModifierData *md, struct Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, struct Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *result;
|
||||
BMesh *bm;
|
||||
|
@ -66,9 +66,10 @@ static bool dependsOnTime(ModifierData *UNUSED(md))
|
||||
return true;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob),
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *UNUSED(ob),
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
DerivedMesh *result;
|
||||
|
@ -434,11 +434,12 @@ static void cuboid_do(
|
||||
}
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm = NULL;
|
||||
CastModifierData *cmd = (CastModifierData *)md;
|
||||
|
@ -72,8 +72,9 @@ static void initData(ModifierData *md)
|
||||
cloth_init(clmd);
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3],
|
||||
int numVerts, ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3],
|
||||
int numVerts, ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm;
|
||||
ClothModifierData *clmd = (ClothModifierData *) md;
|
||||
@ -219,8 +220,9 @@ static void freeData(ModifierData *md)
|
||||
}
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
static void foreachIDLink(
|
||||
ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
{
|
||||
ClothModifierData *clmd = (ClothModifierData *) md;
|
||||
|
||||
|
@ -95,11 +95,12 @@ static bool dependsOnTime(ModifierData *UNUSED(md))
|
||||
return true;
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int UNUSED(numVerts),
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int UNUSED(numVerts),
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
CollisionModifierData *collmd = (CollisionModifierData *) md;
|
||||
DerivedMesh *dm = NULL;
|
||||
|
@ -706,7 +706,8 @@ static void correctivesmooth_modifier_do(
|
||||
|
||||
/* when the modifier fails to execute */
|
||||
error:
|
||||
MEM_SAFE_FREE(csmd->delta_cache);
|
||||
MEM_SAFE_FREE(
|
||||
csmd->delta_cache);
|
||||
csmd->delta_cache_num = 0;
|
||||
|
||||
}
|
||||
|
@ -114,11 +114,12 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
|
||||
DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_TRANSFORM, "Curve Modifier");
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
CurveModifierData *cmd = (CurveModifierData *) md;
|
||||
|
||||
|
@ -163,8 +163,9 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
|
||||
DT_TYPE_SHARP_FACE \
|
||||
)
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DataTransferModifierData *dtmd = (DataTransferModifierData *) md;
|
||||
DerivedMesh *dm = derivedData;
|
||||
|
@ -77,9 +77,10 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
return dataMask;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DecimateModifierData *dmd = (DecimateModifierData *) md;
|
||||
DerivedMesh *dm = derivedData, *result = NULL;
|
||||
|
@ -107,16 +107,18 @@ static bool dependsOnNormals(ModifierData *md)
|
||||
return ELEM(dmd->direction, MOD_DISP_DIR_NOR, MOD_DISP_DIR_CLNOR);
|
||||
}
|
||||
|
||||
static void foreachObjectLink(ModifierData *md, Object *ob,
|
||||
ObjectWalkFunc walk, void *userData)
|
||||
static void foreachObjectLink(
|
||||
ModifierData *md, Object *ob,
|
||||
ObjectWalkFunc walk, void *userData)
|
||||
{
|
||||
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
|
||||
|
||||
walk(userData, ob, &dmd->map_object, IDWALK_CB_NOP);
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
static void foreachIDLink(
|
||||
ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
{
|
||||
DisplaceModifierData *dmd = (DisplaceModifierData *) md;
|
||||
|
||||
@ -125,8 +127,9 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||
}
|
||||
|
||||
static void foreachTexLink(ModifierData *md, Object *ob,
|
||||
TexWalkFunc walk, void *userData)
|
||||
static void foreachTexLink(
|
||||
ModifierData *md, Object *ob,
|
||||
TexWalkFunc walk, void *userData)
|
||||
{
|
||||
walk(userData, ob, md, "texture");
|
||||
}
|
||||
@ -380,11 +383,12 @@ static void displaceModifier_do(
|
||||
}
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm = get_cddm(ob, NULL, derivedData, vertexCos, dependsOnNormals(md));
|
||||
|
||||
|
@ -103,9 +103,10 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
return dataMask;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md;
|
||||
|
||||
@ -163,8 +164,9 @@ static bool dependsOnTime(ModifierData *UNUSED(md))
|
||||
return true;
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
static void foreachIDLink(
|
||||
ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
{
|
||||
DynamicPaintModifierData *pmd = (DynamicPaintModifierData *) md;
|
||||
|
||||
@ -184,8 +186,9 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
}
|
||||
}
|
||||
|
||||
static void foreachTexLink(ModifierData *UNUSED(md), Object *UNUSED(ob),
|
||||
TexWalkFunc UNUSED(walk), void *UNUSED(userData))
|
||||
static void foreachTexLink(
|
||||
ModifierData *UNUSED(md), Object *UNUSED(ob),
|
||||
TexWalkFunc UNUSED(walk), void *UNUSED(userData))
|
||||
{
|
||||
//walk(userData, ob, md, ""); /* re-enable when possible */
|
||||
}
|
||||
|
@ -112,8 +112,9 @@ static void initData(ModifierData *md)
|
||||
emd->flags = MOD_EDGESPLIT_FROMANGLE | MOD_EDGESPLIT_FROMFLAG;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *UNUSED(ob), DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *UNUSED(ob), DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *result;
|
||||
EdgeSplitModifierData *emd = (EdgeSplitModifierData *) md;
|
||||
|
@ -94,9 +94,10 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
return dataMask;
|
||||
}
|
||||
|
||||
static void createFacepa(ExplodeModifierData *emd,
|
||||
ParticleSystemModifierData *psmd,
|
||||
DerivedMesh *dm)
|
||||
static void createFacepa(
|
||||
ExplodeModifierData *emd,
|
||||
ParticleSystemModifierData *psmd,
|
||||
DerivedMesh *dm)
|
||||
{
|
||||
ParticleSystem *psys = psmd->psys;
|
||||
MFace *fa = NULL, *mface = NULL;
|
||||
@ -785,9 +786,10 @@ static DerivedMesh *cutEdges(ExplodeModifierData *emd, DerivedMesh *dm)
|
||||
|
||||
return splitdm;
|
||||
}
|
||||
static DerivedMesh *explodeMesh(ExplodeModifierData *emd,
|
||||
ParticleSystemModifierData *psmd, Scene *scene, Object *ob,
|
||||
DerivedMesh *to_explode)
|
||||
static DerivedMesh *explodeMesh(
|
||||
ExplodeModifierData *emd,
|
||||
ParticleSystemModifierData *psmd, Scene *scene, Object *ob,
|
||||
DerivedMesh *to_explode)
|
||||
{
|
||||
DerivedMesh *explode, *dm = to_explode;
|
||||
MFace *mf = NULL, *mface;
|
||||
@ -993,9 +995,10 @@ static ParticleSystemModifierData *findPrecedingParticlesystem(Object *ob, Modif
|
||||
}
|
||||
return psmd;
|
||||
}
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
ExplodeModifierData *emd = (ExplodeModifierData *) md;
|
||||
|
@ -85,9 +85,10 @@ static void copyData(const ModifierData *md, ModifierData *target)
|
||||
|
||||
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
FluidsimModifierData *fluidmd = (FluidsimModifierData *) md;
|
||||
DerivedMesh *result = NULL;
|
||||
|
@ -304,8 +304,9 @@ static DerivedMesh *fluidsim_read_obj(const char *filename, const MPoly *mp_exam
|
||||
}
|
||||
|
||||
|
||||
void fluid_get_bb(MVert *mvert, int totvert, float obmat[4][4],
|
||||
/*RET*/ float start[3], /*RET*/ float size[3])
|
||||
void fluid_get_bb(
|
||||
MVert *mvert, int totvert, float obmat[4][4],
|
||||
/*RET*/ float start[3], /*RET*/ float size[3])
|
||||
{
|
||||
float bbsx = 0.0, bbsy = 0.0, bbsz = 0.0;
|
||||
float bbex = 1.0, bbey = 1.0, bbez = 1.0;
|
||||
@ -425,8 +426,9 @@ static void fluidsim_read_vel_cache(FluidsimModifierData *fluidmd, DerivedMesh *
|
||||
gzclose(gzf);
|
||||
}
|
||||
|
||||
static DerivedMesh *fluidsim_read_cache(Object *ob, DerivedMesh *orgdm,
|
||||
FluidsimModifierData *fluidmd, int framenr, int useRenderParams)
|
||||
static DerivedMesh *fluidsim_read_cache(
|
||||
Object *ob, DerivedMesh *orgdm,
|
||||
FluidsimModifierData *fluidmd, int framenr, int useRenderParams)
|
||||
{
|
||||
int curFrame = framenr /* - 1 */ /*scene->r.sfra*/; /* start with 0 at start frame */
|
||||
/* why start with 0 as start frame?? Animations + time are frozen for frame 0 anyway. (See physics_fluid.c for that. - DG */
|
||||
@ -509,10 +511,11 @@ static DerivedMesh *fluidsim_read_cache(Object *ob, DerivedMesh *orgdm,
|
||||
}
|
||||
#endif // WITH_MOD_FLUID
|
||||
|
||||
DerivedMesh *fluidsimModifier_do(FluidsimModifierData *fluidmd, Scene *scene,
|
||||
Object *ob,
|
||||
DerivedMesh *dm,
|
||||
int useRenderParams, int UNUSED(isFinalCalc))
|
||||
DerivedMesh *fluidsimModifier_do(
|
||||
FluidsimModifierData *fluidmd, Scene *scene,
|
||||
Object *ob,
|
||||
DerivedMesh *dm,
|
||||
int useRenderParams, int UNUSED(isFinalCalc))
|
||||
{
|
||||
#ifdef WITH_MOD_FLUID
|
||||
DerivedMesh *result = NULL;
|
||||
|
@ -42,9 +42,10 @@ struct DerivedMesh;
|
||||
void fluidsim_init(struct FluidsimModifierData *fluidmd);
|
||||
void fluidsim_free(struct FluidsimModifierData *fluidmd);
|
||||
|
||||
struct DerivedMesh *fluidsimModifier_do(struct FluidsimModifierData *fluidmd,
|
||||
struct Scene *scene, struct Object *ob, struct DerivedMesh *dm,
|
||||
int useRenderParams, int isFinalCalc);
|
||||
struct DerivedMesh *fluidsimModifier_do(
|
||||
struct FluidsimModifierData *fluidmd,
|
||||
struct Scene *scene, struct Object *ob, struct DerivedMesh *dm,
|
||||
int useRenderParams, int isFinalCalc);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -264,8 +264,9 @@ static void hook_co_apply(struct HookData_cb *hd, const int j)
|
||||
}
|
||||
}
|
||||
|
||||
static void deformVerts_do(HookModifierData *hmd, Object *ob, DerivedMesh *dm,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
static void deformVerts_do(
|
||||
HookModifierData *hmd, Object *ob, DerivedMesh *dm,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
bPoseChannel *pchan = BKE_pose_channel_find_name(hmd->object->pose, hmd->subtarget);
|
||||
float dmat[4][4];
|
||||
@ -361,9 +362,10 @@ static void deformVerts_do(HookModifierData *hmd, Object *ob, DerivedMesh *dm,
|
||||
}
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
HookModifierData *hmd = (HookModifierData *) md;
|
||||
DerivedMesh *dm = derivedData;
|
||||
@ -377,8 +379,9 @@ static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
dm->release(dm);
|
||||
}
|
||||
|
||||
static void deformVertsEM(ModifierData *md, Object *ob, struct BMEditMesh *editData,
|
||||
DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
|
||||
static void deformVertsEM(
|
||||
ModifierData *md, Object *ob, struct BMEditMesh *editData,
|
||||
DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
HookModifierData *hmd = (HookModifierData *) md;
|
||||
DerivedMesh *dm = derivedData;
|
||||
|
@ -509,8 +509,9 @@ static bool isValidVertexGroup(LaplacianDeformModifierData *lmd, Object *ob, Der
|
||||
return (dvert != NULL);
|
||||
}
|
||||
|
||||
static void initSystem(LaplacianDeformModifierData *lmd, Object *ob, DerivedMesh *dm,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
static void initSystem(
|
||||
LaplacianDeformModifierData *lmd, Object *ob, DerivedMesh *dm,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
int i;
|
||||
int defgrp_index;
|
||||
@ -724,8 +725,9 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
return dataMask;
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag))
|
||||
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);
|
||||
|
||||
|
@ -495,8 +495,9 @@ static CustomDataMask required_data_mask(Object *UNUSED(ob), ModifierData *md)
|
||||
return dataMask;
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm;
|
||||
|
||||
|
@ -103,11 +103,12 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
|
||||
DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_TRANSFORM, "Lattice Modifier");
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
LatticeModifierData *lmd = (LatticeModifierData *) md;
|
||||
|
||||
|
@ -96,9 +96,10 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
|
||||
}
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
MaskModifierData *mmd = (MaskModifierData *)md;
|
||||
const bool found_test = (mmd->flag & MOD_MASK_INV) == 0;
|
||||
|
@ -263,11 +263,12 @@ static void meshcache_do(
|
||||
}
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
MeshCacheModifierData *mcmd = (MeshCacheModifierData *)md;
|
||||
|
||||
|
@ -48,9 +48,10 @@ typedef struct MDDHead {
|
||||
int verts_tot;
|
||||
} MDDHead; /* frames, verts */
|
||||
|
||||
static bool meshcache_read_mdd_head(FILE *fp, const int verts_tot,
|
||||
MDDHead *mdd_head,
|
||||
const char **err_str)
|
||||
static bool meshcache_read_mdd_head(
|
||||
FILE *fp, const int verts_tot,
|
||||
MDDHead *mdd_head,
|
||||
const char **err_str)
|
||||
{
|
||||
if (!fread(mdd_head, sizeof(*mdd_head), 1, fp)) {
|
||||
*err_str = "Missing header";
|
||||
@ -78,11 +79,12 @@ static bool meshcache_read_mdd_head(FILE *fp, const int verts_tot,
|
||||
/**
|
||||
* Gets the index frange and factor
|
||||
*/
|
||||
static bool meshcache_read_mdd_range(FILE *fp,
|
||||
const int verts_tot,
|
||||
const float frame, const char interp,
|
||||
int r_index_range[2], float *r_factor,
|
||||
const char **err_str)
|
||||
static bool meshcache_read_mdd_range(
|
||||
FILE *fp,
|
||||
const int verts_tot,
|
||||
const float frame, const char interp,
|
||||
int r_index_range[2], float *r_factor,
|
||||
const char **err_str)
|
||||
{
|
||||
MDDHead mdd_head;
|
||||
|
||||
@ -97,11 +99,12 @@ static bool meshcache_read_mdd_range(FILE *fp,
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool meshcache_read_mdd_range_from_time(FILE *fp,
|
||||
const int verts_tot,
|
||||
const float time, const float UNUSED(fps),
|
||||
float *r_frame,
|
||||
const char **err_str)
|
||||
static bool meshcache_read_mdd_range_from_time(
|
||||
FILE *fp,
|
||||
const int verts_tot,
|
||||
const float time, const float UNUSED(fps),
|
||||
float *r_frame,
|
||||
const char **err_str)
|
||||
{
|
||||
MDDHead mdd_head;
|
||||
int i;
|
||||
@ -144,10 +147,11 @@ static bool meshcache_read_mdd_range_from_time(FILE *fp,
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MOD_meshcache_read_mdd_index(FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot,
|
||||
const int index, const float factor,
|
||||
const char **err_str)
|
||||
bool MOD_meshcache_read_mdd_index(
|
||||
FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot,
|
||||
const int index, const float factor,
|
||||
const char **err_str)
|
||||
{
|
||||
MDDHead mdd_head;
|
||||
|
||||
@ -212,10 +216,11 @@ bool MOD_meshcache_read_mdd_index(FILE *fp,
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MOD_meshcache_read_mdd_frame(FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float frame,
|
||||
const char **err_str)
|
||||
bool MOD_meshcache_read_mdd_frame(
|
||||
FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float frame,
|
||||
const char **err_str)
|
||||
{
|
||||
int index_range[2];
|
||||
float factor;
|
||||
@ -253,10 +258,11 @@ bool MOD_meshcache_read_mdd_frame(FILE *fp,
|
||||
}
|
||||
}
|
||||
|
||||
bool MOD_meshcache_read_mdd_times(const char *filepath,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float time, const float fps, const char time_mode,
|
||||
const char **err_str)
|
||||
bool MOD_meshcache_read_mdd_times(
|
||||
const char *filepath,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float time, const float fps, const char time_mode,
|
||||
const char **err_str)
|
||||
{
|
||||
float frame;
|
||||
|
||||
|
@ -52,9 +52,10 @@ typedef struct PC2Head {
|
||||
int frame_tot;
|
||||
} PC2Head; /* frames, verts */
|
||||
|
||||
static bool meshcache_read_pc2_head(FILE *fp, const int verts_tot,
|
||||
PC2Head *pc2_head,
|
||||
const char **err_str)
|
||||
static bool meshcache_read_pc2_head(
|
||||
FILE *fp, const int verts_tot,
|
||||
PC2Head *pc2_head,
|
||||
const char **err_str)
|
||||
{
|
||||
if (!fread(pc2_head, sizeof(*pc2_head), 1, fp)) {
|
||||
*err_str = "Missing header";
|
||||
@ -90,11 +91,12 @@ static bool meshcache_read_pc2_head(FILE *fp, const int verts_tot,
|
||||
*
|
||||
* currently same as for MDD
|
||||
*/
|
||||
static bool meshcache_read_pc2_range(FILE *fp,
|
||||
const int verts_tot,
|
||||
const float frame, const char interp,
|
||||
int r_index_range[2], float *r_factor,
|
||||
const char **err_str)
|
||||
static bool meshcache_read_pc2_range(
|
||||
FILE *fp,
|
||||
const int verts_tot,
|
||||
const float frame, const char interp,
|
||||
int r_index_range[2], float *r_factor,
|
||||
const char **err_str)
|
||||
{
|
||||
PC2Head pc2_head;
|
||||
|
||||
@ -109,11 +111,12 @@ static bool meshcache_read_pc2_range(FILE *fp,
|
||||
return true;
|
||||
}
|
||||
|
||||
static bool meshcache_read_pc2_range_from_time(FILE *fp,
|
||||
const int verts_tot,
|
||||
const float time, const float fps,
|
||||
float *r_frame,
|
||||
const char **err_str)
|
||||
static bool meshcache_read_pc2_range_from_time(
|
||||
FILE *fp,
|
||||
const int verts_tot,
|
||||
const float time, const float fps,
|
||||
float *r_frame,
|
||||
const char **err_str)
|
||||
{
|
||||
PC2Head pc2_head;
|
||||
float frame;
|
||||
@ -135,10 +138,11 @@ static bool meshcache_read_pc2_range_from_time(FILE *fp,
|
||||
return true;
|
||||
}
|
||||
|
||||
bool MOD_meshcache_read_pc2_index(FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot,
|
||||
const int index, const float factor,
|
||||
const char **err_str)
|
||||
bool MOD_meshcache_read_pc2_index(
|
||||
FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot,
|
||||
const int index, const float factor,
|
||||
const char **err_str)
|
||||
{
|
||||
PC2Head pc2_head;
|
||||
|
||||
@ -188,10 +192,11 @@ bool MOD_meshcache_read_pc2_index(FILE *fp,
|
||||
}
|
||||
|
||||
|
||||
bool MOD_meshcache_read_pc2_frame(FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float frame,
|
||||
const char **err_str)
|
||||
bool MOD_meshcache_read_pc2_frame(
|
||||
FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float frame,
|
||||
const char **err_str)
|
||||
{
|
||||
int index_range[2];
|
||||
float factor;
|
||||
@ -229,10 +234,11 @@ bool MOD_meshcache_read_pc2_frame(FILE *fp,
|
||||
}
|
||||
}
|
||||
|
||||
bool MOD_meshcache_read_pc2_times(const char *filepath,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float time, const float fps, const char time_mode,
|
||||
const char **err_str)
|
||||
bool MOD_meshcache_read_pc2_times(
|
||||
const char *filepath,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float time, const float fps, const char time_mode,
|
||||
const char **err_str)
|
||||
{
|
||||
float frame;
|
||||
|
||||
|
@ -31,9 +31,10 @@
|
||||
|
||||
#include "MOD_meshcache_util.h"
|
||||
|
||||
void MOD_meshcache_calc_range(const float frame, const char interp,
|
||||
const int frame_tot,
|
||||
int r_index_range[2], float *r_factor)
|
||||
void MOD_meshcache_calc_range(
|
||||
const float frame, const char interp,
|
||||
const int frame_tot,
|
||||
int r_index_range[2], float *r_factor)
|
||||
{
|
||||
if (interp == MOD_MESHCACHE_INTERP_NONE) {
|
||||
r_index_range[0] = r_index_range[1] = max_ii(0, min_ii(frame_tot - 1, round_fl_to_int(frame)));
|
||||
|
@ -29,37 +29,44 @@
|
||||
|
||||
|
||||
/* MOD_meshcache_mdd.c */
|
||||
bool MOD_meshcache_read_mdd_index(FILE *fp,
|
||||
float (*vertexCos)[3], const int vertex_tot,
|
||||
const int index, const float factor,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_mdd_frame(FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float frame,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_mdd_times(const char *filepath,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float time, const float fps, const char time_mode,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_mdd_index(
|
||||
FILE *fp,
|
||||
float (*vertexCos)[3], const int vertex_tot,
|
||||
const int index, const float factor,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_mdd_frame(
|
||||
FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float frame,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_mdd_times(
|
||||
const char *filepath,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float time, const float fps, const char time_mode,
|
||||
const char **err_str);
|
||||
|
||||
/* MOD_meshcache_pc2.c */
|
||||
bool MOD_meshcache_read_pc2_index(FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot,
|
||||
const int index, const float factor,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_pc2_frame(FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float frame,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_pc2_times(const char *filepath,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float time, const float fps, const char time_mode,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_pc2_index(
|
||||
FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot,
|
||||
const int index, const float factor,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_pc2_frame(
|
||||
FILE *fp,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float frame,
|
||||
const char **err_str);
|
||||
bool MOD_meshcache_read_pc2_times(
|
||||
const char *filepath,
|
||||
float (*vertexCos)[3], const int verts_tot, const char interp,
|
||||
const float time, const float fps, const char time_mode,
|
||||
const char **err_str);
|
||||
|
||||
/* MOD_meshcache_util.c */
|
||||
void MOD_meshcache_calc_range(const float frame, const char interp,
|
||||
const int frame_tot,
|
||||
int r_index_range[2], float *r_factor);
|
||||
void MOD_meshcache_calc_range(
|
||||
const float frame, const char interp,
|
||||
const int frame_tot,
|
||||
int r_index_range[2], float *r_factor);
|
||||
|
||||
#define FRAME_SNAP_EPS 0.0001f
|
||||
|
||||
|
@ -422,11 +422,12 @@ static void meshdeformModifier_do(
|
||||
cagedm->release(cagedm);
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
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);
|
||||
|
||||
@ -438,11 +439,12 @@ static void deformVerts(ModifierData *md, Object *ob,
|
||||
dm->release(dm);
|
||||
}
|
||||
|
||||
static void deformVertsEM(ModifierData *md, Object *ob,
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts)
|
||||
static void deformVertsEM(
|
||||
ModifierData *md, Object *ob,
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts)
|
||||
{
|
||||
DerivedMesh *dm = get_dm(ob, NULL, derivedData, NULL, false, false);
|
||||
|
||||
|
@ -88,9 +88,10 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
|
||||
return (mcmd->cache_file == NULL) || (mcmd->object_path[0] == '\0');
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
#ifdef WITH_ALEMBIC
|
||||
MeshSeqCacheModifierData *mcmd = (MeshSeqCacheModifierData *) md;
|
||||
@ -158,8 +159,9 @@ static bool dependsOnTime(ModifierData *md)
|
||||
return true;
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
static void foreachIDLink(
|
||||
ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
{
|
||||
MeshSeqCacheModifierData *mcmd = (MeshSeqCacheModifierData *) md;
|
||||
|
||||
|
@ -88,10 +88,11 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
|
||||
DEG_add_object_relation(ctx->node, ctx->object, DEG_OB_COMP_TRANSFORM, "Mirror Modifier");
|
||||
}
|
||||
|
||||
static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd,
|
||||
Object *ob,
|
||||
DerivedMesh *dm,
|
||||
int axis)
|
||||
static DerivedMesh *doMirrorOnAxis(
|
||||
MirrorModifierData *mmd,
|
||||
Object *ob,
|
||||
DerivedMesh *dm,
|
||||
int axis)
|
||||
{
|
||||
const float tolerance_sq = mmd->tolerance * mmd->tolerance;
|
||||
const bool do_vtargetmap = (mmd->flag & MOD_MIR_NO_MERGE) == 0;
|
||||
@ -299,8 +300,9 @@ static DerivedMesh *doMirrorOnAxis(MirrorModifierData *mmd,
|
||||
return result;
|
||||
}
|
||||
|
||||
static DerivedMesh *mirrorModifier__doMirror(MirrorModifierData *mmd,
|
||||
Object *ob, DerivedMesh *dm)
|
||||
static DerivedMesh *mirrorModifier__doMirror(
|
||||
MirrorModifierData *mmd,
|
||||
Object *ob, DerivedMesh *dm)
|
||||
{
|
||||
DerivedMesh *result = dm;
|
||||
|
||||
@ -322,9 +324,10 @@ static DerivedMesh *mirrorModifier__doMirror(MirrorModifierData *mmd,
|
||||
return result;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *result;
|
||||
MirrorModifierData *mmd = (MirrorModifierData *) md;
|
||||
|
@ -58,8 +58,9 @@ static void initData(ModifierData *md)
|
||||
mmd->totlvl = 0;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob, DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
MultiresModifierData *mmd = (MultiresModifierData *)md;
|
||||
DerivedMesh *result;
|
||||
|
@ -404,9 +404,10 @@ static DerivedMesh *generate_ocean_geometry(OceanModifierData *omd)
|
||||
return result;
|
||||
}
|
||||
|
||||
static DerivedMesh *doOcean(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
int UNUSED(useRenderParams))
|
||||
static DerivedMesh *doOcean(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
int UNUSED(useRenderParams))
|
||||
{
|
||||
OceanModifierData *omd = (OceanModifierData *) md;
|
||||
|
||||
@ -544,9 +545,10 @@ static DerivedMesh *doOcean(ModifierData *md, Object *ob,
|
||||
return dm;
|
||||
}
|
||||
#else /* WITH_OCEANSIM */
|
||||
static DerivedMesh *doOcean(ModifierData *md, Object *UNUSED(ob),
|
||||
DerivedMesh *derivedData,
|
||||
int UNUSED(useRenderParams))
|
||||
static DerivedMesh *doOcean(
|
||||
ModifierData *md, Object *UNUSED(ob),
|
||||
DerivedMesh *derivedData,
|
||||
int UNUSED(useRenderParams))
|
||||
{
|
||||
/* unused */
|
||||
(void)md;
|
||||
@ -554,9 +556,10 @@ static DerivedMesh *doOcean(ModifierData *md, Object *UNUSED(ob),
|
||||
}
|
||||
#endif /* WITH_OCEANSIM */
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *result;
|
||||
|
||||
|
@ -146,8 +146,9 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
|
||||
}
|
||||
}
|
||||
|
||||
static void foreachObjectLink(ModifierData *md, Object *ob,
|
||||
ObjectWalkFunc walk, void *userData)
|
||||
static void foreachObjectLink(
|
||||
ModifierData *md, Object *ob,
|
||||
ObjectWalkFunc walk, void *userData)
|
||||
{
|
||||
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
|
||||
|
||||
@ -209,9 +210,10 @@ static void store_float_in_vcol(MLoopCol *vcol, float float_value)
|
||||
vcol->a = 1.0f;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm = derivedData, *result;
|
||||
ParticleInstanceModifierData *pimd = (ParticleInstanceModifierData *) md;
|
||||
|
@ -99,11 +99,12 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
}
|
||||
|
||||
/* saves the current emitter state for a particle system and calculates particles */
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int UNUSED(numVerts),
|
||||
ModifierApplyFlag flag)
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int UNUSED(numVerts),
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
ParticleSystemModifierData *psmd = (ParticleSystemModifierData *) md;
|
||||
|
@ -133,10 +133,11 @@ static void dualcon_add_quad(void *output_v, const int vert_indices[4])
|
||||
output->curface++;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md,
|
||||
Object *UNUSED(ob),
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md,
|
||||
Object *UNUSED(ob),
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
RemeshModifierData *rmd;
|
||||
DualConOutput *output;
|
||||
@ -194,9 +195,10 @@ static DerivedMesh *applyModifier(ModifierData *md,
|
||||
|
||||
#else /* !WITH_MOD_REMESH */
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *UNUSED(md), Object *UNUSED(ob),
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *UNUSED(md), Object *UNUSED(ob),
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
return derivedData;
|
||||
}
|
||||
|
@ -176,9 +176,10 @@ static void initData(ModifierData *md)
|
||||
ltmd->merge_dist = 0.01f;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag flag)
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
DerivedMesh *result;
|
||||
|
@ -44,11 +44,12 @@
|
||||
|
||||
#include "MOD_modifiertypes.h"
|
||||
|
||||
static void deformVerts(ModifierData *UNUSED(md), Object *ob,
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *UNUSED(md), Object *ob,
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
Key *key = BKE_key_from_object(ob);
|
||||
|
||||
@ -61,8 +62,9 @@ static void deformVerts(ModifierData *UNUSED(md), Object *ob,
|
||||
}
|
||||
}
|
||||
|
||||
static void deformMatrices(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], float (*defMats)[3][3], int numVerts)
|
||||
static void deformMatrices(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], float (*defMats)[3][3], int numVerts)
|
||||
{
|
||||
Key *key = BKE_key_from_object(ob);
|
||||
KeyBlock *kb = BKE_keyblock_from_object(ob);
|
||||
@ -83,11 +85,12 @@ static void deformMatrices(ModifierData *md, Object *ob, DerivedMesh *derivedDat
|
||||
deformVerts(md, ob, derivedData, vertexCos, numVerts, 0);
|
||||
}
|
||||
|
||||
static void deformVertsEM(ModifierData *md, Object *ob,
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts)
|
||||
static void deformVertsEM(
|
||||
ModifierData *md, Object *ob,
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts)
|
||||
{
|
||||
Key *key = BKE_key_from_object(ob);
|
||||
|
||||
@ -95,12 +98,13 @@ static void deformVertsEM(ModifierData *md, Object *ob,
|
||||
deformVerts(md, ob, derivedData, vertexCos, numVerts, 0);
|
||||
}
|
||||
|
||||
static void deformMatricesEM(ModifierData *UNUSED(md), Object *ob,
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3],
|
||||
float (*defMats)[3][3],
|
||||
int numVerts)
|
||||
static void deformMatricesEM(
|
||||
ModifierData *UNUSED(md), Object *ob,
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3],
|
||||
float (*defMats)[3][3],
|
||||
int numVerts)
|
||||
{
|
||||
Key *key = BKE_key_from_object(ob);
|
||||
KeyBlock *kb = BKE_keyblock_from_object(ob);
|
||||
|
@ -96,11 +96,12 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
||||
walk(userData, ob, &smd->auxTarget, IDWALK_CB_NOP);
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag flag)
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
CustomDataMask dataMask = requiredDataMask(ob, md);
|
||||
@ -117,8 +118,9 @@ static void deformVerts(ModifierData *md, Object *ob,
|
||||
dm->release(dm);
|
||||
}
|
||||
|
||||
static void deformVertsEM(ModifierData *md, Object *ob, struct BMEditMesh *editData, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
static void deformVertsEM(
|
||||
ModifierData *md, Object *ob, struct BMEditMesh *editData, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
CustomDataMask dataMask = requiredDataMask(ob, md);
|
||||
|
@ -183,8 +183,9 @@ static void simpleDeform_bend(const float factor, const int axis, const float dc
|
||||
|
||||
|
||||
/* simple deform modifier */
|
||||
static void SimpleDeformModifier_do(SimpleDeformModifierData *smd, struct Object *ob, struct DerivedMesh *dm,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
static void SimpleDeformModifier_do(
|
||||
SimpleDeformModifierData *smd, struct Object *ob, struct DerivedMesh *dm,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
const float base_limit[2] = {0.0f, 0.0f};
|
||||
|
||||
@ -385,11 +386,12 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
|
||||
}
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
CustomDataMask dataMask = requiredDataMask(ob, md);
|
||||
@ -405,11 +407,12 @@ static void deformVerts(ModifierData *md, Object *ob,
|
||||
dm->release(dm);
|
||||
}
|
||||
|
||||
static void deformVertsEM(ModifierData *md, Object *ob,
|
||||
struct BMEditMesh *editData,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts)
|
||||
static void deformVertsEM(
|
||||
ModifierData *md, Object *ob,
|
||||
struct BMEditMesh *editData,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts)
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
CustomDataMask dataMask = requiredDataMask(ob, md);
|
||||
|
@ -134,16 +134,18 @@ typedef struct {
|
||||
int mat_nr;
|
||||
} SkinOutput;
|
||||
|
||||
static void add_poly(SkinOutput *so,
|
||||
BMVert *v1,
|
||||
BMVert *v2,
|
||||
BMVert *v3,
|
||||
BMVert *v4);
|
||||
static void add_poly(
|
||||
SkinOutput *so,
|
||||
BMVert *v1,
|
||||
BMVert *v2,
|
||||
BMVert *v3,
|
||||
BMVert *v4);
|
||||
|
||||
/***************************** Convex Hull ****************************/
|
||||
|
||||
static bool is_quad_symmetric(BMVert *quad[4],
|
||||
const SkinModifierData *smd)
|
||||
static bool is_quad_symmetric(
|
||||
BMVert *quad[4],
|
||||
const SkinModifierData *smd)
|
||||
{
|
||||
const float threshold = 0.0001f;
|
||||
const float threshold_squared = threshold * threshold;
|
||||
@ -175,8 +177,9 @@ static bool is_quad_symmetric(BMVert *quad[4],
|
||||
}
|
||||
|
||||
/* Returns true if the quad crosses the plane of symmetry, false otherwise */
|
||||
static bool quad_crosses_symmetry_plane(BMVert *quad[4],
|
||||
const SkinModifierData *smd)
|
||||
static bool quad_crosses_symmetry_plane(
|
||||
BMVert *quad[4],
|
||||
const SkinModifierData *smd)
|
||||
{
|
||||
int axis;
|
||||
|
||||
@ -202,8 +205,9 @@ static bool quad_crosses_symmetry_plane(BMVert *quad[4],
|
||||
|
||||
/* Returns true if the frame is filled by precisely two faces (and
|
||||
* outputs those faces to fill_faces), otherwise returns false. */
|
||||
static bool skin_frame_find_contained_faces(const Frame *frame,
|
||||
BMFace *fill_faces[2])
|
||||
static bool skin_frame_find_contained_faces(
|
||||
const Frame *frame,
|
||||
BMFace *fill_faces[2])
|
||||
{
|
||||
BMEdge *diag;
|
||||
|
||||
@ -410,9 +414,10 @@ static void merge_frame_corners(Frame **frames, int totframe)
|
||||
}
|
||||
}
|
||||
|
||||
static Frame **collect_hull_frames(int v, SkinNode *frames,
|
||||
const MeshElemMap *emap, const MEdge *medge,
|
||||
int *tothullframe)
|
||||
static Frame **collect_hull_frames(
|
||||
int v, SkinNode *frames,
|
||||
const MeshElemMap *emap, const MEdge *medge,
|
||||
int *tothullframe)
|
||||
{
|
||||
SkinNode *f;
|
||||
Frame **hull_frames;
|
||||
@ -450,9 +455,10 @@ static void node_frames_init(SkinNode *nf, int totframe)
|
||||
nf->seam_edges[i] = -1;
|
||||
}
|
||||
|
||||
static void create_frame(Frame *frame, const float co[3],
|
||||
const float radius[2],
|
||||
float mat[3][3], float offset)
|
||||
static void create_frame(
|
||||
Frame *frame, const float co[3],
|
||||
const float radius[2],
|
||||
float mat[3][3], float offset)
|
||||
{
|
||||
float rx[3], ry[3], rz[3];
|
||||
int i;
|
||||
@ -482,9 +488,10 @@ static float half_v2(const float v[2])
|
||||
return (v[0] + v[1]) * 0.5f;
|
||||
}
|
||||
|
||||
static void end_node_frames(int v, SkinNode *skin_nodes, const MVert *mvert,
|
||||
const MVertSkin *nodes, const MeshElemMap *emap,
|
||||
EMat *emat)
|
||||
static void end_node_frames(
|
||||
int v, SkinNode *skin_nodes, const MVert *mvert,
|
||||
const MVertSkin *nodes, const MeshElemMap *emap,
|
||||
EMat *emat)
|
||||
{
|
||||
const float *rad = nodes[v].radius;
|
||||
float mat[3][3];
|
||||
@ -555,9 +562,10 @@ static int connection_node_mat(float mat[3][3], int v, const MeshElemMap *emap,
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void connection_node_frames(int v, SkinNode *skin_nodes, const MVert *mvert,
|
||||
const MVertSkin *nodes, const MeshElemMap *emap,
|
||||
EMat *emat)
|
||||
static void connection_node_frames(
|
||||
int v, SkinNode *skin_nodes, const MVert *mvert,
|
||||
const MVertSkin *nodes, const MeshElemMap *emap,
|
||||
EMat *emat)
|
||||
{
|
||||
const float *rad = nodes[v].radius;
|
||||
float mat[3][3];
|
||||
@ -593,9 +601,10 @@ static void connection_node_frames(int v, SkinNode *skin_nodes, const MVert *mve
|
||||
create_frame(&skin_nodes[v].frames[0], mvert[v].co, rad, mat, 0);
|
||||
}
|
||||
|
||||
static SkinNode *build_frames(const MVert *mvert, int totvert,
|
||||
const MVertSkin *nodes, const MeshElemMap *emap,
|
||||
EMat *emat)
|
||||
static SkinNode *build_frames(
|
||||
const MVert *mvert, int totvert,
|
||||
const MVertSkin *nodes, const MeshElemMap *emap,
|
||||
EMat *emat)
|
||||
{
|
||||
SkinNode *skin_nodes;
|
||||
int v;
|
||||
@ -652,9 +661,10 @@ typedef struct {
|
||||
int e;
|
||||
} EdgeStackElem;
|
||||
|
||||
static void build_emats_stack(BLI_Stack *stack, BLI_bitmap *visited_e, EMat *emat,
|
||||
const MeshElemMap *emap, const MEdge *medge,
|
||||
const MVertSkin *vs, const MVert *mvert)
|
||||
static void build_emats_stack(
|
||||
BLI_Stack *stack, BLI_bitmap *visited_e, EMat *emat,
|
||||
const MeshElemMap *emap, const MEdge *medge,
|
||||
const MVertSkin *vs, const MVert *mvert)
|
||||
{
|
||||
EdgeStackElem stack_elem;
|
||||
float axis[3], angle;
|
||||
@ -705,13 +715,14 @@ static void build_emats_stack(BLI_Stack *stack, BLI_bitmap *visited_e, EMat *ema
|
||||
}
|
||||
}
|
||||
|
||||
static EMat *build_edge_mats(const MVertSkin *vs,
|
||||
const MVert *mvert,
|
||||
int totvert,
|
||||
const MEdge *medge,
|
||||
const MeshElemMap *emap,
|
||||
int totedge,
|
||||
bool *has_valid_root)
|
||||
static EMat *build_edge_mats(
|
||||
const MVertSkin *vs,
|
||||
const MVert *mvert,
|
||||
int totvert,
|
||||
const MEdge *medge,
|
||||
const MeshElemMap *emap,
|
||||
int totedge,
|
||||
bool *has_valid_root)
|
||||
{
|
||||
BLI_Stack *stack;
|
||||
EMat *emat;
|
||||
@ -763,8 +774,9 @@ static EMat *build_edge_mats(const MVertSkin *vs,
|
||||
* nodes, at least two intermediate frames are required. (This avoids
|
||||
* having any special cases for dealing with sharing a frame between
|
||||
* two hulls.) */
|
||||
static int calc_edge_subdivisions(const MVert *mvert, const MVertSkin *nodes,
|
||||
const MEdge *e, const int *degree)
|
||||
static int calc_edge_subdivisions(
|
||||
const MVert *mvert, const MVertSkin *nodes,
|
||||
const MEdge *e, const int *degree)
|
||||
{
|
||||
/* prevent memory errors [#38003] */
|
||||
#define NUM_SUBDIVISIONS_MAX 128
|
||||
@ -955,11 +967,12 @@ static DerivedMesh *subdivide_base(DerivedMesh *orig)
|
||||
/******************************* Output *******************************/
|
||||
|
||||
/* Can be either quad or triangle */
|
||||
static void add_poly(SkinOutput *so,
|
||||
BMVert *v1,
|
||||
BMVert *v2,
|
||||
BMVert *v3,
|
||||
BMVert *v4)
|
||||
static void add_poly(
|
||||
SkinOutput *so,
|
||||
BMVert *v1,
|
||||
BMVert *v2,
|
||||
BMVert *v3,
|
||||
BMVert *v4)
|
||||
{
|
||||
BMVert *verts[4] = {v1, v2, v3, v4};
|
||||
BMFace *f;
|
||||
@ -1030,9 +1043,10 @@ static void connect_frames(
|
||||
}
|
||||
}
|
||||
|
||||
static void output_frames(BMesh *bm,
|
||||
SkinNode *sn,
|
||||
const MDeformVert *input_dvert)
|
||||
static void output_frames(
|
||||
BMesh *bm,
|
||||
SkinNode *sn,
|
||||
const MDeformVert *input_dvert)
|
||||
{
|
||||
Frame *f;
|
||||
int i, j;
|
||||
|
@ -101,9 +101,10 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
return dataMask;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
SmokeModifierData *smd = (SmokeModifierData *) md;
|
||||
|
||||
@ -159,8 +160,9 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
|
||||
}
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
static void foreachIDLink(
|
||||
ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
{
|
||||
SmokeModifierData *smd = (SmokeModifierData *) md;
|
||||
|
||||
|
@ -206,8 +206,9 @@ static void smoothModifier_do(
|
||||
MEM_freeN(uctmp);
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag))
|
||||
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);
|
||||
|
||||
|
@ -48,11 +48,12 @@
|
||||
|
||||
#include "MOD_modifiertypes.h"
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
sbObjectStep(md->scene, ob, (float)md->scene->r.cfra, vertexCos, numVerts);
|
||||
}
|
||||
|
@ -97,9 +97,10 @@ static bool isDisabled(ModifierData *md, int useRenderParams)
|
||||
return get_render_subsurf_level(&md->scene->r, levels, useRenderParams != 0) == 0;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag flag)
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
SubsurfModifierData *smd = (SubsurfModifierData *) md;
|
||||
SubsurfFlags subsurf_flags = 0;
|
||||
@ -156,10 +157,11 @@ static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
return result;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifierEM(ModifierData *md, Object *UNUSED(ob),
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag flag)
|
||||
static DerivedMesh *applyModifierEM(
|
||||
ModifierData *md, Object *UNUSED(ob),
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag flag)
|
||||
{
|
||||
SubsurfModifierData *smd = (SubsurfModifierData *) md;
|
||||
DerivedMesh *result;
|
||||
|
@ -82,11 +82,12 @@ static bool dependsOnTime(ModifierData *UNUSED(md))
|
||||
return true;
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int UNUSED(numVerts),
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int UNUSED(numVerts),
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
SurfaceModifierData *surmd = (SurfaceModifierData *) md;
|
||||
|
||||
|
@ -195,8 +195,9 @@ static void freeAdjacencyMap(SDefAdjacencyArray * const vert_edges, SDefAdjacenc
|
||||
MEM_freeN(vert_edges);
|
||||
}
|
||||
|
||||
static int buildAdjacencyMap(const MPoly *poly, const MEdge *edge, const MLoop * const mloop, const unsigned int numpoly, const unsigned int numedges,
|
||||
SDefAdjacencyArray * const vert_edges, SDefAdjacency *adj, SDefEdgePolys * const edge_polys)
|
||||
static int buildAdjacencyMap(
|
||||
const MPoly *poly, const MEdge *edge, const MLoop * const mloop, const unsigned int numpoly, const unsigned int numedges,
|
||||
SDefAdjacencyArray * const vert_edges, SDefAdjacency *adj, SDefEdgePolys * const edge_polys)
|
||||
{
|
||||
const MLoop *loop;
|
||||
|
||||
@ -915,8 +916,9 @@ static void bindVert(
|
||||
freeBindData(bwdata);
|
||||
}
|
||||
|
||||
static bool surfacedeformBind(SurfaceDeformModifierData *smd, float (*vertexCos)[3],
|
||||
unsigned int numverts, unsigned int tnumpoly, unsigned int tnumverts, DerivedMesh *tdm)
|
||||
static bool surfacedeformBind(
|
||||
SurfaceDeformModifierData *smd, float (*vertexCos)[3],
|
||||
unsigned int numverts, unsigned int tnumpoly, unsigned int tnumverts, DerivedMesh *tdm)
|
||||
{
|
||||
BVHTreeFromMesh treeData = {NULL};
|
||||
const MVert *mvert = tdm->getVertArray(tdm);
|
||||
@ -1186,18 +1188,20 @@ static void surfacedeformModifier_do(ModifierData *md, float (*vertexCos)[3], un
|
||||
}
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3], int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3], int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
surfacedeformModifier_do(md, vertexCos, numVerts, ob);
|
||||
}
|
||||
|
||||
static void deformVertsEM(ModifierData *md, Object *ob,
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
static void deformVertsEM(
|
||||
ModifierData *md, Object *ob,
|
||||
struct BMEditMesh *UNUSED(editData),
|
||||
DerivedMesh *UNUSED(derivedData),
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
surfacedeformModifier_do(md, vertexCos, numVerts, ob);
|
||||
}
|
||||
|
@ -74,10 +74,11 @@ static void initData(ModifierData *md)
|
||||
tmd->ngon_method = MOD_TRIANGULATE_NGON_BEAUTY;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md,
|
||||
Object *UNUSED(ob),
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md,
|
||||
Object *UNUSED(ob),
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
TriangulateModifierData *tmd = (TriangulateModifierData *)md;
|
||||
DerivedMesh *result;
|
||||
|
@ -65,10 +65,11 @@ void modifier_init_texture(const Scene *scene, Tex *tex)
|
||||
}
|
||||
}
|
||||
|
||||
void get_texture_coords(MappingInfoModifierData *dmd, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
float (*co)[3], float (*texco)[3],
|
||||
int numVerts)
|
||||
void get_texture_coords(
|
||||
MappingInfoModifierData *dmd, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
float (*co)[3], float (*texco)[3],
|
||||
int numVerts)
|
||||
{
|
||||
int i;
|
||||
int texmapping = dmd->texmapping;
|
||||
@ -170,8 +171,9 @@ DerivedMesh *get_cddm(Object *ob, struct BMEditMesh *em, DerivedMesh *dm, float
|
||||
}
|
||||
|
||||
/* returns a derived mesh if dm == NULL, for deforming modifiers that need it */
|
||||
DerivedMesh *get_dm(Object *ob, struct BMEditMesh *em, DerivedMesh *dm,
|
||||
float (*vertexCos)[3], bool use_normals, bool use_orco)
|
||||
DerivedMesh *get_dm(
|
||||
Object *ob, struct BMEditMesh *em, DerivedMesh *dm,
|
||||
float (*vertexCos)[3], bool use_normals, bool use_orco)
|
||||
{
|
||||
if (dm) {
|
||||
/* pass */
|
||||
|
@ -41,15 +41,19 @@ struct Scene;
|
||||
struct Tex;
|
||||
|
||||
void modifier_init_texture(const struct Scene *scene, struct Tex *texture);
|
||||
void get_texture_coords(struct MappingInfoModifierData *dmd, struct Object *ob, struct DerivedMesh *dm,
|
||||
float (*co)[3], float (*texco)[3], int numVerts);
|
||||
void get_texture_coords(
|
||||
struct MappingInfoModifierData *dmd, struct Object *ob, struct DerivedMesh *dm,
|
||||
float (*co)[3], float (*texco)[3], int numVerts);
|
||||
void modifier_vgroup_cache(struct ModifierData *md, float (*vertexCos)[3]);
|
||||
struct DerivedMesh *get_cddm(struct Object *ob, struct BMEditMesh *em, struct DerivedMesh *dm,
|
||||
float (*vertexCos)[3], bool use_normals);
|
||||
struct DerivedMesh *get_dm(struct Object *ob, struct BMEditMesh *em, struct DerivedMesh *dm,
|
||||
float (*vertexCos)[3], bool use_normals, bool use_orco);
|
||||
struct DerivedMesh *get_cddm(
|
||||
struct Object *ob, struct BMEditMesh *em, struct DerivedMesh *dm,
|
||||
float (*vertexCos)[3], bool use_normals);
|
||||
struct DerivedMesh *get_dm(
|
||||
struct Object *ob, struct BMEditMesh *em, struct DerivedMesh *dm,
|
||||
float (*vertexCos)[3], bool use_normals, bool use_orco);
|
||||
struct DerivedMesh *get_dm_for_modifier(struct Object *ob, ModifierApplyFlag flag);
|
||||
void modifier_get_vgroup(struct Object *ob, struct DerivedMesh *dm,
|
||||
const char *name, struct MDeformVert **dvert, int *defgrp_index);
|
||||
void modifier_get_vgroup(
|
||||
struct Object *ob, struct DerivedMesh *dm,
|
||||
const char *name, struct MDeformVert **dvert, int *defgrp_index);
|
||||
|
||||
#endif /* __MOD_UTIL_H__ */
|
||||
|
@ -77,8 +77,9 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *UNUSED(
|
||||
return dataMask;
|
||||
}
|
||||
|
||||
static void foreachObjectLink(ModifierData *md, Object *ob,
|
||||
ObjectWalkFunc walk, void *userData)
|
||||
static void foreachObjectLink(
|
||||
ModifierData *md, Object *ob,
|
||||
ObjectWalkFunc walk, void *userData)
|
||||
{
|
||||
UVProjectModifierData *umd = (UVProjectModifierData *) md;
|
||||
int i;
|
||||
@ -87,8 +88,9 @@ static void foreachObjectLink(ModifierData *md, Object *ob,
|
||||
walk(userData, ob, &umd->projectors[i], IDWALK_CB_NOP);
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
static void foreachIDLink(
|
||||
ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
{
|
||||
UVProjectModifierData *umd = (UVProjectModifierData *) md;
|
||||
|
||||
@ -130,8 +132,9 @@ typedef struct Projector {
|
||||
void *uci; /* optional uv-project info (panorama projection) */
|
||||
} Projector;
|
||||
|
||||
static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
|
||||
Object *ob, DerivedMesh *dm)
|
||||
static DerivedMesh *uvprojectModifier_do(
|
||||
UVProjectModifierData *umd,
|
||||
Object *ob, DerivedMesh *dm)
|
||||
{
|
||||
float (*coords)[3], (*co)[3];
|
||||
MLoopUV *mloop_uv;
|
||||
@ -335,9 +338,10 @@ static DerivedMesh *uvprojectModifier_do(UVProjectModifierData *umd,
|
||||
return dm;
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *result;
|
||||
UVProjectModifierData *umd = (UVProjectModifierData *) md;
|
||||
|
@ -45,8 +45,9 @@
|
||||
#include "MOD_util.h"
|
||||
|
||||
|
||||
static void uv_warp_from_mat4_pair(float uv_dst[2], const float uv_src[2], float warp_mat[4][4],
|
||||
int axis_u, int axis_v)
|
||||
static void uv_warp_from_mat4_pair(
|
||||
float uv_dst[2], const float uv_src[2], float warp_mat[4][4],
|
||||
int axis_u, int axis_v)
|
||||
{
|
||||
float tuv[3] = {0.0f};
|
||||
|
||||
@ -139,9 +140,10 @@ static void uv_warp_compute(
|
||||
}
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *dm,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
UVWarpModifierData *umd = (UVWarpModifierData *) md;
|
||||
int numPolys, numLoops;
|
||||
@ -225,8 +227,9 @@ static void foreachObjectLink(ModifierData *md, Object *ob, ObjectWalkFunc walk,
|
||||
walk(userData, ob, &umd->object_src, IDWALK_CB_NOP);
|
||||
}
|
||||
|
||||
static void uv_warp_deps_object_bone(DagForest *forest, DagNode *obNode,
|
||||
Object *obj, const char *bonename)
|
||||
static void uv_warp_deps_object_bone(
|
||||
DagForest *forest, DagNode *obNode,
|
||||
Object *obj, const char *bonename)
|
||||
{
|
||||
if (obj) {
|
||||
DagNode *curNode = dag_get_node(forest, obj);
|
||||
@ -246,9 +249,10 @@ static void updateDepgraph(ModifierData *md, const ModifierUpdateDepsgraphContex
|
||||
uv_warp_deps_object_bone(ctx->forest, ctx->obNode, umd->object_dst, umd->bone_dst);
|
||||
}
|
||||
|
||||
static void uv_warp_deps_object_bone_new(struct DepsNodeHandle *node,
|
||||
Object *object,
|
||||
const char *bonename)
|
||||
static void uv_warp_deps_object_bone_new(
|
||||
struct DepsNodeHandle *node,
|
||||
Object *object,
|
||||
const char *bonename)
|
||||
{
|
||||
if (object != NULL) {
|
||||
if (bonename[0])
|
||||
|
@ -165,8 +165,9 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
|
||||
}
|
||||
}
|
||||
|
||||
static void warpModifier_do(WarpModifierData *wmd, Object *ob,
|
||||
DerivedMesh *dm, float (*vertexCos)[3], int numVerts)
|
||||
static void warpModifier_do(
|
||||
WarpModifierData *wmd, Object *ob,
|
||||
DerivedMesh *dm, float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
float obinv[4][4];
|
||||
float mat_from[4][4];
|
||||
@ -325,8 +326,9 @@ static int warp_needs_dm(WarpModifierData *wmd)
|
||||
return wmd->texture || wmd->defgrp_name[0];
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3], int numVerts, ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm = NULL;
|
||||
int use_dm = warp_needs_dm((WarpModifierData *)md);
|
||||
@ -342,8 +344,9 @@ static void deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
}
|
||||
}
|
||||
|
||||
static void deformVertsEM(ModifierData *md, Object *ob, struct BMEditMesh *em,
|
||||
DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
|
||||
static void deformVertsEM(
|
||||
ModifierData *md, Object *ob, struct BMEditMesh *em,
|
||||
DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
int use_dm = warp_needs_dm((WarpModifierData *)md);
|
||||
|
@ -93,8 +93,9 @@ static void foreachObjectLink(
|
||||
walk(userData, ob, &wmd->map_object, IDWALK_CB_NOP);
|
||||
}
|
||||
|
||||
static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
static void foreachIDLink(
|
||||
ModifierData *md, Object *ob,
|
||||
IDWalkFunc walk, void *userData)
|
||||
{
|
||||
WaveModifierData *wmd = (WaveModifierData *) md;
|
||||
|
||||
@ -103,8 +104,9 @@ static void foreachIDLink(ModifierData *md, Object *ob,
|
||||
foreachObjectLink(md, ob, (ObjectWalkFunc)walk, userData);
|
||||
}
|
||||
|
||||
static void foreachTexLink(ModifierData *md, Object *ob,
|
||||
TexWalkFunc walk, void *userData)
|
||||
static void foreachTexLink(
|
||||
ModifierData *md, Object *ob,
|
||||
TexWalkFunc walk, void *userData)
|
||||
{
|
||||
walk(userData, ob, md, "texture");
|
||||
}
|
||||
@ -156,9 +158,10 @@ static CustomDataMask requiredDataMask(Object *UNUSED(ob), ModifierData *md)
|
||||
return dataMask;
|
||||
}
|
||||
|
||||
static void waveModifier_do(WaveModifierData *md,
|
||||
Scene *scene, Object *ob, DerivedMesh *dm,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
static void waveModifier_do(
|
||||
WaveModifierData *md,
|
||||
Scene *scene, Object *ob, DerivedMesh *dm,
|
||||
float (*vertexCos)[3], int numVerts)
|
||||
{
|
||||
WaveModifierData *wmd = (WaveModifierData *) md;
|
||||
MVert *mvert = NULL;
|
||||
@ -309,11 +312,12 @@ static void waveModifier_do(WaveModifierData *md,
|
||||
if (wmd->texture) MEM_freeN(tex_co);
|
||||
}
|
||||
|
||||
static void deformVerts(ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static void deformVerts(
|
||||
ModifierData *md, Object *ob,
|
||||
DerivedMesh *derivedData,
|
||||
float (*vertexCos)[3],
|
||||
int numVerts,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
DerivedMesh *dm = derivedData;
|
||||
WaveModifierData *wmd = (WaveModifierData *)md;
|
||||
|
@ -114,10 +114,11 @@ void weightvg_do_map(int num, float *new_w, short falloff_type, CurveMapping *cm
|
||||
* vertex index (in case the weight tables do not cover the whole vertices...).
|
||||
* XXX The standard "factor" value is assumed in [0.0, 1.0] range. Else, weird results might appear.
|
||||
*/
|
||||
void weightvg_do_mask(int num, const int *indices, float *org_w, const float *new_w,
|
||||
Object *ob, DerivedMesh *dm, float fact, const char defgrp_name[MAX_VGROUP_NAME],
|
||||
Scene *scene, Tex *texture, int tex_use_channel, int tex_mapping,
|
||||
Object *tex_map_object, const char *tex_uvlayer_name)
|
||||
void weightvg_do_mask(
|
||||
int num, const int *indices, float *org_w, const float *new_w,
|
||||
Object *ob, DerivedMesh *dm, float fact, const char defgrp_name[MAX_VGROUP_NAME],
|
||||
Scene *scene, Tex *texture, int tex_use_channel, int tex_mapping,
|
||||
Object *tex_map_object, const char *tex_uvlayer_name)
|
||||
{
|
||||
int ref_didx;
|
||||
int i;
|
||||
@ -238,9 +239,10 @@ void weightvg_do_mask(int num, const int *indices, float *org_w, const float *ne
|
||||
* If indices is not NULL, it must be an array of same length as weights, mapping to the real
|
||||
* vertex index (in case the weight array does not cover the whole vertices...).
|
||||
*/
|
||||
void weightvg_update_vg(MDeformVert *dvert, int defgrp_idx, MDeformWeight **dws, int num,
|
||||
const int *indices, const float *weights, const bool do_add,
|
||||
const float add_thresh, const bool do_rem, const float rem_thresh)
|
||||
void weightvg_update_vg(
|
||||
MDeformVert *dvert, int defgrp_idx, MDeformWeight **dws, int num,
|
||||
const int *indices, const float *weights, const bool do_add,
|
||||
const float add_thresh, const bool do_rem, const float rem_thresh)
|
||||
{
|
||||
int i;
|
||||
|
||||
|
@ -70,17 +70,19 @@ void weightvg_do_map(int num, float *new_w, short mode, struct CurveMapping *cma
|
||||
* vertex index (in case the weight tables do not cover the whole vertices...).
|
||||
* XXX The standard "factor" value is assumed in [0.0, 1.0] range. Else, weird results might appear.
|
||||
*/
|
||||
void weightvg_do_mask(int num, const int *indices, float *org_w, const float *new_w, Object *ob,
|
||||
DerivedMesh *dm, float fact, const char defgrp_name[MAX_VGROUP_NAME],
|
||||
struct Scene *scene, Tex *texture, int tex_use_channel, int tex_mapping,
|
||||
Object *tex_map_object, const char *tex_uvlayer_name);
|
||||
void weightvg_do_mask(
|
||||
int num, const int *indices, float *org_w, const float *new_w, Object *ob,
|
||||
DerivedMesh *dm, float fact, const char defgrp_name[MAX_VGROUP_NAME],
|
||||
struct Scene *scene, Tex *texture, int tex_use_channel, int tex_mapping,
|
||||
Object *tex_map_object, const char *tex_uvlayer_name);
|
||||
|
||||
/* Applies weights to given vgroup (defgroup), and optionally add/remove vertices from the group.
|
||||
* If indices is not NULL, it must be a table of same length as weights, mapping to the real
|
||||
* vertex index (in case the weight table does not cover the whole vertices...).
|
||||
*/
|
||||
void weightvg_update_vg(MDeformVert *dvert, int defgrp_idx, MDeformWeight **dws, int num,
|
||||
const int *indices, const float *weights, const bool do_add,
|
||||
const float add_thresh, const bool do_rem, const float rem_thresh);
|
||||
void weightvg_update_vg(
|
||||
MDeformVert *dvert, int defgrp_idx, MDeformWeight **dws, int num,
|
||||
const int *indices, const float *weights, const bool do_add,
|
||||
const float add_thresh, const bool do_rem, const float rem_thresh);
|
||||
|
||||
#endif /* __MOD_WEIGHTVG_UTIL_H__ */
|
||||
|
@ -172,8 +172,9 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
|
||||
return (wmd->defgrp_name[0] == '\0');
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
WeightVGEditModifierData *wmd = (WeightVGEditModifierData *) md;
|
||||
DerivedMesh *dm = derivedData;
|
||||
|
@ -209,8 +209,9 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
|
||||
return (wmd->defgrp_name_a[0] == '\0');
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
WeightVGMixModifierData *wmd = (WeightVGMixModifierData *) md;
|
||||
DerivedMesh *dm = derivedData;
|
||||
|
@ -136,9 +136,10 @@ static void vert2geom_task_cb_ex(
|
||||
/**
|
||||
* Find nearest vertex and/or edge and/or face, for each vertex (adapted from shrinkwrap.c).
|
||||
*/
|
||||
static void get_vert2geom_distance(int numVerts, float (*v_cos)[3],
|
||||
float *dist_v, float *dist_e, float *dist_f,
|
||||
DerivedMesh *target, const SpaceTransform *loc2trgt)
|
||||
static void get_vert2geom_distance(
|
||||
int numVerts, float (*v_cos)[3],
|
||||
float *dist_v, float *dist_e, float *dist_f,
|
||||
DerivedMesh *target, const SpaceTransform *loc2trgt)
|
||||
{
|
||||
Vert2GeomData data = {0};
|
||||
Vert2GeomDataChunk data_chunk = {{{0}}};
|
||||
@ -204,8 +205,9 @@ static void get_vert2geom_distance(int numVerts, float (*v_cos)[3],
|
||||
* Returns the real distance between a vertex and another reference object.
|
||||
* Note that it works in final world space (i.e. with constraints etc. applied).
|
||||
*/
|
||||
static void get_vert2ob_distance(int numVerts, float (*v_cos)[3], float *dist,
|
||||
Object *ob, Object *obr)
|
||||
static void get_vert2ob_distance(
|
||||
int numVerts, float (*v_cos)[3], float *dist,
|
||||
Object *ob, Object *obr)
|
||||
{
|
||||
/* Vertex and ref object coordinates. */
|
||||
float v_wco[3];
|
||||
@ -382,8 +384,9 @@ static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams))
|
||||
return (wmd->proximity_ob_target == NULL);
|
||||
}
|
||||
|
||||
static DerivedMesh *applyModifier(ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
static DerivedMesh *applyModifier(
|
||||
ModifierData *md, Object *ob, DerivedMesh *derivedData,
|
||||
ModifierApplyFlag UNUSED(flag))
|
||||
{
|
||||
WeightVGProximityModifierData *wmd = (WeightVGProximityModifierData *) md;
|
||||
DerivedMesh *dm = derivedData;
|
||||
|
Loading…
Reference in New Issue
Block a user