Revision: 14213
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=14213
Author:   campbellbarton
Date:     2008-03-22 21:54:09 +0100 (Sat, 22 Mar 2008)

Log Message:
-----------
lasso select for nodes

Modified Paths:
--------------
    trunk/blender/source/blender/src/editnode.c
    trunk/blender/source/blender/src/editview.c

Modified: trunk/blender/source/blender/src/editnode.c
===================================================================
--- trunk/blender/source/blender/src/editnode.c 2008-03-22 14:47:42 UTC (rev 
14212)
+++ trunk/blender/source/blender/src/editnode.c 2008-03-22 20:54:09 UTC (rev 
14213)
@@ -2299,10 +2299,15 @@
                                        node_mouse_select(snode, event);
                        }
                        else {
-                               if(node_add_link(snode)==0)
-                                       if(node_mouse_groupheader(snode)==0)
-                                               if(node_mouse_select(snode, 
event)==0)
-                                                       
node_border_link_delete(snode);
+                               
+                               if(G.qual &  LR_CTRLKEY) {
+                                       gesture();
+                               } else {
+                                       if(node_add_link(snode)==0)
+                                               
if(node_mouse_groupheader(snode)==0)
+                                                       
if(node_mouse_select(snode, event)==0)
+                                                               
node_border_link_delete(snode);
+                               }
                        }
                        break;
                        

Modified: trunk/blender/source/blender/src/editview.c
===================================================================
--- trunk/blender/source/blender/src/editview.c 2008-03-22 14:47:42 UTC (rev 
14212)
+++ trunk/blender/source/blender/src/editview.c 2008-03-22 20:54:09 UTC (rev 
14213)
@@ -60,6 +60,7 @@
 #include "DNA_view3d_types.h"
 #include "DNA_userdef_types.h"
 #include "DNA_ipo_types.h" /* for fly mode recording */
+#include "DNA_node_types.h" /* for fly mode recording */
 
 #include "BLI_blenlib.h"
 #include "BLI_arithb.h"
@@ -107,6 +108,7 @@
 #include "BSE_edit.h"
 #include "BSE_view.h"          /* give_cursor() */
 #include "BSE_editipo.h"
+#include "BSE_drawipo.h"
 #include "BSE_drawview.h"
 
 #include "editmesh.h"  /* borderselect uses it... */
@@ -637,31 +639,64 @@
        object_tface_flags_changed(OBACT, 0);
 }
 
+static void do_lasso_select_node(short mcords[][2], short moves, short select)
+{
+       SpaceNode *snode = curarea->spacedata.first;
+       
+       bNode *node;
+       rcti rect;
+       short node_cent[2];
+       float node_centf[2];
+       
+       lasso_select_boundbox(&rect, mcords, moves);
+       
+       /* store selection in temp test flag */
+       for(node= snode->edittree->nodes.first; node; node= node->next) {
+               
+               node_centf[0] = (node->totr.xmin+node->totr.xmax)/2;
+               node_centf[1] = (node->totr.ymin+node->totr.ymax)/2;
+               
+               ipoco_to_areaco_noclip(G.v2d, node_centf, node_cent);
+               if (BLI_in_rcti(&rect, node_cent[0], node_cent[1]) && 
lasso_inside(mcords, moves, node_cent[0], node_cent[1])) {
+                       if (select) {
+                               node->flag |= SELECT;
+                       } else {
+                               node->flag &= ~SELECT;
+                       }
+               }
+       }
+       allqueue(REDRAWNODE, 1);
+       BIF_undo_push("Lasso select nodes");
+}
+
 static void do_lasso_select(short mcords[][2], short moves, short select)
 {
-       if(G.obedit==NULL) {
-               if(FACESEL_PAINT_TEST)
-                       do_lasso_select_facemode(mcords, moves, select);
-               else if(G.f & (G_VERTEXPAINT|G_TEXTUREPAINT|G_WEIGHTPAINT))
-                       ;
-               else if(G.f & G_PARTICLEEDIT)
-                       PE_do_lasso_select(mcords, moves, select);
-               else  
-                       do_lasso_select_objects(mcords, moves, select);
+       if(curarea->spacetype==SPACE_NODE) {
+               do_lasso_select_node(mcords, moves, select);
+       } else {
+               if(G.obedit==NULL) {
+                       if(FACESEL_PAINT_TEST)
+                               do_lasso_select_facemode(mcords, moves, select);
+                       else if(G.f & 
(G_VERTEXPAINT|G_TEXTUREPAINT|G_WEIGHTPAINT))
+                               ;
+                       else if(G.f & G_PARTICLEEDIT)
+                               PE_do_lasso_select(mcords, moves, select);
+                       else  
+                               do_lasso_select_objects(mcords, moves, select);
+               }
+               else if(G.obedit->type==OB_MESH) {
+                       if(curarea->spacetype==SPACE_VIEW3D) {
+                               do_lasso_select_mesh(mcords, moves, select);
+                       } else if (EM_texFaceCheck()){
+                               do_lasso_select_mesh_uv(mcords, moves, select);
+                       }
+               } else if(G.obedit->type==OB_CURVE || G.obedit->type==OB_SURF) 
+                       do_lasso_select_curve(mcords, moves, select);
+               else if(G.obedit->type==OB_LATTICE) 
+                       do_lasso_select_lattice(mcords, moves, select);
+               else if(G.obedit->type==OB_ARMATURE)
+                       do_lasso_select_armature(mcords, moves, select);
        }
-       else if(G.obedit->type==OB_MESH) {
-               if(curarea->spacetype==SPACE_VIEW3D) {
-                       do_lasso_select_mesh(mcords, moves, select);
-               } else if (EM_texFaceCheck()){
-                       do_lasso_select_mesh_uv(mcords, moves, select);
-               }
-       } else if(G.obedit->type==OB_CURVE || G.obedit->type==OB_SURF) 
-               do_lasso_select_curve(mcords, moves, select);
-       else if(G.obedit->type==OB_LATTICE) 
-               do_lasso_select_lattice(mcords, moves, select);
-       else if(G.obedit->type==OB_ARMATURE)
-               do_lasso_select_armature(mcords, moves, select);
-       
        BIF_undo_push("Lasso select");
        
        if (EM_texFaceCheck())
@@ -827,6 +862,8 @@
                        if(G.obedit) {
                                lasso= 1;
                        }
+               } else if (curarea->spacetype==SPACE_NODE) {
+                       lasso= 1;
                }
        }
        


_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to