Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorTon Roosendaal <ton@blender.org>2004-11-04 23:00:57 +0300
committerTon Roosendaal <ton@blender.org>2004-11-04 23:00:57 +0300
commit82f8a02926752628170671bc3aad96599868c7c4 (patch)
tree03fef70f5720f6ebb6a2a04178d10f54b16dae58 /source
parent0ad6944283ba9ebeb203422404d3a09df4003761 (diff)
- Added proper undopush for 'apply object'
- Added proper edgeflag test for knife - Fixed error in 'make face' for cases I again didn't foresee (ordering of vertices can be any, need to try 3 cases before rejecting)
Diffstat (limited to 'source')
-rw-r--r--source/blender/src/editmesh_add.c7
-rw-r--r--source/blender/src/editmesh_loop.c2
-rw-r--r--source/blender/src/editobject.c2
3 files changed, 10 insertions, 1 deletions
diff --git a/source/blender/src/editmesh_add.c b/source/blender/src/editmesh_add.c
index a38debd3a88..0301b5aabd2 100644
--- a/source/blender/src/editmesh_add.c
+++ b/source/blender/src/editmesh_add.c
@@ -399,9 +399,16 @@ void addedgeface_mesh(void)
/* if 4 edges exist, we just create the face, convex or not */
efa= addface_from_edges();
if(efa==NULL) {
+ /* the order of vertices can be anything, three cases to check */
if( convex(neweve[0]->co, neweve[1]->co, neweve[2]->co, neweve[3]->co) ) {
efa= addfacelist(neweve[0], neweve[1], neweve[2], neweve[3], NULL, NULL);
}
+ else if( convex(neweve[0]->co, neweve[2]->co, neweve[3]->co, neweve[1]->co) ) {
+ efa= addfacelist(neweve[0], neweve[2], neweve[3], neweve[1], NULL, NULL);
+ }
+ else if( convex(neweve[0]->co, neweve[2]->co, neweve[1]->co, neweve[3]->co) ) {
+ efa= addfacelist(neweve[0], neweve[2], neweve[1], neweve[3], NULL, NULL);
+ }
else error("The selected vertices form a concave quad");
}
}
diff --git a/source/blender/src/editmesh_loop.c b/source/blender/src/editmesh_loop.c
index c7f74d10a84..f15dc9e5515 100644
--- a/source/blender/src/editmesh_loop.c
+++ b/source/blender/src/editmesh_loop.c
@@ -577,7 +577,7 @@ void KnifeSubdivide(char mode)
if (curve && len && mode){
eed= em->edges.first;
while(eed) {
- if((eed->v1->f & 1) && (eed->v2->f & 1)){
+ if( eed->f & SELECT ){
isect=seg_intersect(eed, curve, len);
if (isect) eed->f2= 1;
else eed->f2=0;
diff --git a/source/blender/src/editobject.c b/source/blender/src/editobject.c
index ac09483f079..2b5aaf9a2c3 100644
--- a/source/blender/src/editobject.c
+++ b/source/blender/src/editobject.c
@@ -2911,6 +2911,7 @@ void apply_object()
/* texspace and normals */
BASACT= base;
enter_editmode();
+ BIF_undo_push("Applied object"); // editmode undo itself
exit_editmode(1); // freedata, but no undo
BASACT= basact;
@@ -2978,6 +2979,7 @@ void apply_object()
/* texspace and normals */
BASACT= base;
enter_editmode();
+ BIF_undo_push("Applied object"); // editmode undo itself
exit_editmode(1); // freedata, but no undo
BASACT= basact;
}