diff options
author | Campbell Barton <ideasman42@gmail.com> | 2008-05-26 13:50:46 +0400 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2008-05-26 13:50:46 +0400 |
commit | 0a90a52442071b8c346b8efade465eff714c37d8 (patch) | |
tree | 79e22fbb71f133d982fa40cac71d0556c4cd4196 /source/blender/src/buttons_editing.c | |
parent | b7c6da39aedecb59b01ba8f833a8dc61afa89903 (diff) |
* The displist would be uninitialized when nurbs bezieru/v was set and the order wasnt 3 or 4. add a function that checks nurbs can produce a valid line. check_valid_nurb_u/v
* when check_valid_nurb_u/v fails, no curve is allocated or drawn.
* knotsu/v could be NULL but some functions didn't check for this, make sure this is checked for everywhere.
* The interface didnt change check the order when the bezier u/v flag was set, added functions clamp_nurb_order_u/v that takes into accound the number of points and the bezier u/v flag.
Diffstat (limited to 'source/blender/src/buttons_editing.c')
-rw-r--r-- | source/blender/src/buttons_editing.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/source/blender/src/buttons_editing.c b/source/blender/src/buttons_editing.c index 8a37f713164..6e57736845e 100644 --- a/source/blender/src/buttons_editing.c +++ b/source/blender/src/buttons_editing.c @@ -3106,11 +3106,13 @@ void do_curvebuts(unsigned short event) if(event<B_UNIFV) { nu->flagu &= 1; nu->flagu += ((event-B_UNIFU)<<1); + clamp_nurb_order_u(nu); makeknots(nu, 1, nu->flagu>>1); } else if(nu->pntsv>1) { nu->flagv &= 1; nu->flagv += ((event-B_UNIFV)<<1); + clamp_nurb_order_v(nu); makeknots(nu, 2, nu->flagv>>1); } } @@ -3148,13 +3150,11 @@ void do_curvebuts(unsigned short event) if(G.obedit) { nu= get_actNurb(); if(nu && (nu->type & 7)==CU_NURBS ) { - if(nu->orderu>nu->pntsu) { - nu->orderu= nu->pntsu; + if(clamp_nurb_order_u(nu)) { scrarea_queue_winredraw(curarea); } makeknots(nu, 1, nu->flagu>>1); - if(nu->orderv>nu->pntsv) { - nu->orderv= nu->pntsv; + if(clamp_nurb_order_v(nu)) { scrarea_queue_winredraw(curarea); } makeknots(nu, 2, nu->flagv>>1); |