diff options
author | Daniel Genrich <daniel.genrich@gmx.net> | 2009-05-31 21:20:57 +0400 |
---|---|---|
committer | Daniel Genrich <daniel.genrich@gmx.net> | 2009-05-31 21:20:57 +0400 |
commit | 934e3ddf0db87a489b66a4066cf2223e8fd3cbde (patch) | |
tree | 539752993a30821124ae7863fe777f75ddd27163 /source/blender | |
parent | c4efd3a1af2b286a00e970583a44abef4d92acd1 (diff) |
Deform modifiers can now use useRenderParams and isFinalCalc in modifier stack as non-deforming and constructing modifiers can already - please check for problems or if i missed something
Diffstat (limited to 'source/blender')
-rw-r--r-- | source/blender/blenkernel/BKE_modifier.h | 3 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/DerivedMesh.c | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/displist.c | 6 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/lattice.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/modifier.c | 36 | ||||
-rw-r--r-- | source/blender/editors/object/object_modifier.c | 2 |
6 files changed, 28 insertions, 27 deletions
diff --git a/source/blender/blenkernel/BKE_modifier.h b/source/blender/blenkernel/BKE_modifier.h index c37b200d38b..e91039e31f4 100644 --- a/source/blender/blenkernel/BKE_modifier.h +++ b/source/blender/blenkernel/BKE_modifier.h @@ -124,7 +124,8 @@ typedef struct ModifierTypeInfo { */ void (*deformVerts)(struct ModifierData *md, struct Object *ob, struct DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts); + float (*vertexCos)[3], int numVerts, + int useRenderParams, int isFinalCalc); /* Like deformVerts but called during editmode (for supporting modifiers) */ diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c index fd92360f6c2..25ca0b0f1b1 100644 --- a/source/blender/blenkernel/intern/DerivedMesh.c +++ b/source/blender/blenkernel/intern/DerivedMesh.c @@ -1403,7 +1403,7 @@ DerivedMesh *mesh_create_derived_for_modifier(Scene *scene, Object *ob, Modifier int numVerts; float (*deformedVerts)[3] = mesh_getVertexCos(me, &numVerts); - mti->deformVerts(md, ob, NULL, deformedVerts, numVerts); + mti->deformVerts(md, ob, NULL, deformedVerts, numVerts, 0, 0); dm = getMeshDerivedMesh(me, ob, deformedVerts); MEM_freeN(deformedVerts); @@ -1628,7 +1628,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos if(!deformedVerts) deformedVerts = mesh_getVertexCos(me, &numVerts); - mti->deformVerts(md, ob, NULL, deformedVerts, numVerts); + mti->deformVerts(md, ob, NULL, deformedVerts, numVerts, useRenderParams, useDeform); } else { break; } @@ -1709,7 +1709,7 @@ static void mesh_calc_modifiers(Scene *scene, Object *ob, float (*inputVertexCos } } - mti->deformVerts(md, ob, dm, deformedVerts, numVerts); + mti->deformVerts(md, ob, dm, deformedVerts, numVerts, useRenderParams, useDeform); } else { DerivedMesh *ndm; diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 645f468d250..8779ed5404b 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -1256,7 +1256,7 @@ static void curve_calc_modifiers_pre(Scene *scene, Object *ob, int forRender, fl originalVerts = MEM_dupallocN(deformedVerts); } - mti->deformVerts(md, ob, NULL, deformedVerts, numVerts); + mti->deformVerts(md, ob, NULL, deformedVerts, numVerts, forRender, editmode); if (md==preTesselatePoint) break; @@ -1317,7 +1317,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba fp+= offs; } - mti->deformVerts(md, ob, NULL, (float(*)[3]) allverts, totvert); + mti->deformVerts(md, ob, NULL, (float(*)[3]) allverts, totvert, forRender, editmode); fp= allverts; for (dl=dispbase->first; dl; dl=dl->next) { @@ -1329,7 +1329,7 @@ static void curve_calc_modifiers_post(Scene *scene, Object *ob, ListBase *dispba } else { for (dl=dispbase->first; dl; dl=dl->next) { - mti->deformVerts(md, ob, NULL, (float(*)[3]) dl->verts, (dl->type==DL_INDEX3)?dl->nr:dl->parts*dl->nr); + mti->deformVerts(md, ob, NULL, (float(*)[3]) dl->verts, (dl->type==DL_INDEX3)?dl->nr:dl->parts*dl->nr, forRender, editmode); } } } diff --git a/source/blender/blenkernel/intern/lattice.c b/source/blender/blenkernel/intern/lattice.c index 6e5f7c82aed..5cf52d09314 100644 --- a/source/blender/blenkernel/intern/lattice.c +++ b/source/blender/blenkernel/intern/lattice.c @@ -924,7 +924,7 @@ void lattice_calc_modifiers(Scene *scene, Object *ob) if (mti->type!=eModifierTypeType_OnlyDeform) continue; if (!vertexCos) vertexCos = lattice_getVertexCos(ob, &numVerts); - mti->deformVerts(md, ob, NULL, vertexCos, numVerts); + mti->deformVerts(md, ob, NULL, vertexCos, numVerts, 0, 0); } /* always displist to make this work like derivedmesh */ diff --git a/source/blender/blenkernel/intern/modifier.c b/source/blender/blenkernel/intern/modifier.c index d02b660d992..5610db355e1 100644 --- a/source/blender/blenkernel/intern/modifier.c +++ b/source/blender/blenkernel/intern/modifier.c @@ -187,7 +187,7 @@ static void curveModifier_updateDepgraph( static void curveModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { CurveModifierData *cmd = (CurveModifierData*) md; @@ -203,7 +203,7 @@ static void curveModifier_deformVertsEM( if(!derivedData) dm = CDDM_from_editmesh(editData, ob->data); - curveModifier_deformVerts(md, ob, dm, vertexCos, numVerts); + curveModifier_deformVerts(md, ob, dm, vertexCos, numVerts, 0, 0); if(!derivedData) dm->release(dm); } @@ -276,7 +276,7 @@ static void modifier_vgroup_cache(ModifierData *md, float (*vertexCos)[3]) static void latticeModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { LatticeModifierData *lmd = (LatticeModifierData*) md; @@ -295,7 +295,7 @@ static void latticeModifier_deformVertsEM( if(!derivedData) dm = CDDM_from_editmesh(editData, ob->data); - latticeModifier_deformVerts(md, ob, dm, vertexCos, numVerts); + latticeModifier_deformVerts(md, ob, dm, vertexCos, numVerts, 0, 0); if(!derivedData) dm->release(dm); } @@ -3686,7 +3686,7 @@ static void displaceModifier_do( static void displaceModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { DerivedMesh *dm; @@ -4371,7 +4371,7 @@ static void smoothModifier_do( static void smoothModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { DerivedMesh *dm; @@ -4951,7 +4951,7 @@ static void castModifier_cuboid_do( static void castModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { DerivedMesh *dm = derivedData; CastModifierData *cmd = (CastModifierData *)md; @@ -5354,7 +5354,7 @@ static void waveModifier_do(WaveModifierData *md, static void waveModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { DerivedMesh *dm; WaveModifierData *wmd = (WaveModifierData *)md; @@ -5459,7 +5459,7 @@ static void armatureModifier_updateDepgraph( static void armatureModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { ArmatureModifierData *amd = (ArmatureModifierData*) md; @@ -5580,7 +5580,7 @@ static void hookModifier_updateDepgraph(ModifierData *md, DagForest *forest, Sce static void hookModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { HookModifierData *hmd = (HookModifierData*) md; float vec[3], mat[4][4]; @@ -5701,7 +5701,7 @@ static void hookModifier_deformVertsEM( if(!derivedData) dm = CDDM_from_editmesh(editData, ob->data); - hookModifier_deformVerts(md, ob, derivedData, vertexCos, numVerts); + hookModifier_deformVerts(md, ob, derivedData, vertexCos, numVerts, 0, 0); if(!derivedData) dm->release(dm); } @@ -5710,7 +5710,7 @@ static void hookModifier_deformVertsEM( static void softbodyModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { sbObjectStep(md->scene, ob, (float)md->scene->r.cfra, vertexCos, numVerts); } @@ -5898,7 +5898,7 @@ static int collisionModifier_dependsOnTime(ModifierData *md) static void collisionModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { CollisionModifierData *collmd = (CollisionModifierData*) md; DerivedMesh *dm = NULL; @@ -6060,7 +6060,7 @@ static int surfaceModifier_dependsOnTime(ModifierData *md) static void surfaceModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { SurfaceModifierData *surmd = (SurfaceModifierData*) md; unsigned int numverts = 0, i = 0; @@ -6268,7 +6268,7 @@ static int is_last_displist(Object *ob) /* saves the current emitter state for a particle system and calculates particles */ static void particleSystemModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { DerivedMesh *dm = derivedData; ParticleSystemModifierData *psmd= (ParticleSystemModifierData*) md; @@ -7789,7 +7789,7 @@ static void meshdeformModifier_do( static void meshdeformModifier_deformVerts( ModifierData *md, Object *ob, DerivedMesh *derivedData, - float (*vertexCos)[3], int numVerts) + float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { DerivedMesh *dm; @@ -7937,7 +7937,7 @@ static void shrinkwrapModifier_foreachObjectLink(ModifierData *md, Object *ob, O walk(userData, ob, &smd->auxTarget); } -static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) +static void shrinkwrapModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { DerivedMesh *dm = NULL; CustomDataMask dataMask = shrinkwrapModifier_requiredDataMask(md); @@ -8051,7 +8051,7 @@ static void simpledeformModifier_updateDepgraph(ModifierData *md, DagForest *for dag_add_relation(forest, dag_get_node(forest, smd->origin), obNode, DAG_RL_OB_DATA, "SimpleDeform Modifier"); } -static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts) +static void simpledeformModifier_deformVerts(ModifierData *md, Object *ob, DerivedMesh *derivedData, float (*vertexCos)[3], int numVerts, int useRenderParams, int isFinalCalc) { DerivedMesh *dm = NULL; CustomDataMask dataMask = simpledeformModifier_requiredDataMask(md); diff --git a/source/blender/editors/object/object_modifier.c b/source/blender/editors/object/object_modifier.c index 2bbc68ac039..2e2c16ee6d6 100644 --- a/source/blender/editors/object/object_modifier.c +++ b/source/blender/editors/object/object_modifier.c @@ -284,7 +284,7 @@ int ED_object_modifier_apply(ReportList *reports, Scene *scene, Object *ob, Modi } vertexCos = curve_getVertexCos(cu, &cu->nurb, &numVerts); - mti->deformVerts(md, ob, NULL, vertexCos, numVerts); + mti->deformVerts(md, ob, NULL, vertexCos, numVerts, 0, 0); curve_applyVertexCos(cu, &cu->nurb, vertexCos); converted = 1; |