[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [25230] trunk/blender/source/blender: Fix for [#20249] duplicating a mesh in edit mode with a lattice modifier
Matt Ebb
matt at mke3.net
Wed Dec 9 02:53:04 CET 2009
Revision: 25230
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=25230
Author: broken
Date: 2009-12-09 02:53:04 +0100 (Wed, 09 Dec 2009)
Log Message:
-----------
Fix for [#20249] duplicating a mesh in edit mode with a lattice modifier
Removed lattice and curve modifiers from being correctable for crazy space - it didn't work and was giving weird results.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_modifier.h
trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
trunk/blender/source/blender/blenkernel/intern/modifier.c
trunk/blender/source/blender/editors/transform/transform_conversions.c
Modified: trunk/blender/source/blender/blenkernel/BKE_modifier.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_modifier.h 2009-12-09 00:45:50 UTC (rev 25229)
+++ trunk/blender/source/blender/blenkernel/BKE_modifier.h 2009-12-09 01:53:04 UTC (rev 25230)
@@ -280,7 +280,7 @@
int modifier_dependsOnTime(struct ModifierData *md);
int modifier_supportsMapping(struct ModifierData *md);
int modifier_couldBeCage(struct ModifierData *md);
-int modifier_isDeformer(struct ModifierData *md);
+int modifier_isCorrectableDeformed(struct ModifierData *md);
int modifier_sameTopology(ModifierData *md);
int modifier_isEnabled(struct ModifierData *md, int required_mode);
void modifier_setError(struct ModifierData *md, char *format, ...);
@@ -303,7 +303,7 @@
struct Object *modifiers_isDeformedByArmature(struct Object *ob);
struct Object *modifiers_isDeformedByLattice(struct Object *ob);
int modifiers_usesArmature(struct Object *ob, struct bArmature *arm);
-int modifiers_isDeformed(struct Scene *scene, struct Object *ob);
+int modifiers_isCorrectableDeformed(struct Scene *scene, struct Object *ob);
void modifier_freeTemporaryData(struct ModifierData *md);
int modifiers_indexInObject(struct Object *ob, struct ModifierData *md);
Modified: trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c 2009-12-09 00:45:50 UTC (rev 25229)
+++ trunk/blender/source/blender/blenkernel/intern/DerivedMesh.c 2009-12-09 01:53:04 UTC (rev 25230)
@@ -2513,7 +2513,7 @@
}
for(; md && i <= cageIndex; md = md->next, i++)
- if(editmesh_modifier_is_enabled(md, dm) && modifier_isDeformer(md))
+ if(editmesh_modifier_is_enabled(md, dm) && modifier_isCorrectableDeformed(md))
numleft++;
if(dm)
Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c 2009-12-09 00:45:50 UTC (rev 25229)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c 2009-12-09 01:53:04 UTC (rev 25230)
@@ -9151,15 +9151,15 @@
}
/* Takes an object and returns its first selected lattice, else just its
-* armature
-* This should work for multiple armatures per object
+* lattice
+* This should work for multiple lattics per object
*/
Object *modifiers_isDeformedByLattice(Object *ob)
{
ModifierData *md = modifiers_getVirtualModifierList(ob);
LatticeModifierData *lmd= NULL;
- /* return the first selected armature, this lets us use multiple armatures
+ /* return the first selected lattice, this lets us use multiple lattices
*/
for (; md; md=md->next) {
if (md->type==eModifierType_Lattice) {
@@ -9192,28 +9192,24 @@
return 0;
}
-int modifier_isDeformer(ModifierData *md)
+int modifier_isCorrectableDeformed(ModifierData *md)
{
if (md->type==eModifierType_Armature)
return 1;
- if (md->type==eModifierType_Curve)
- return 1;
- if (md->type==eModifierType_Lattice)
- return 1;
if (md->type==eModifierType_ShapeKey)
return 1;
return 0;
}
-int modifiers_isDeformed(Scene *scene, Object *ob)
+int modifiers_isCorrectableDeformed(Scene *scene, Object *ob)
{
ModifierData *md = modifiers_getVirtualModifierList(ob);
for (; md; md=md->next) {
if(ob->mode==OB_MODE_EDIT && (md->mode & eModifierMode_Editmode)==0);
else
- if(modifier_isDeformer(md))
+ if(modifier_isCorrectableDeformed(md))
return 1;
}
return 0;
Modified: trunk/blender/source/blender/editors/transform/transform_conversions.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_conversions.c 2009-12-09 00:45:50 UTC (rev 25229)
+++ trunk/blender/source/blender/editors/transform/transform_conversions.c 2009-12-09 01:53:04 UTC (rev 25230)
@@ -2212,7 +2212,7 @@
/* detect CrazySpace [tm] */
if(propmode==0) {
if(modifiers_getCageIndex(t->obedit, NULL, 1)>=0) {
- if(modifiers_isDeformed(t->scene, t->obedit)) {
+ if(modifiers_isCorrectableDeformed(t->scene, t->obedit)) {
/* check if we can use deform matrices for modifier from the
start up to stack, they are more accurate than quats */
totleft= editmesh_get_first_deform_matrices(t->obedit, em, &defmats, &defcos);
More information about the Bf-blender-cvs
mailing list