[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12354] trunk/blender/source/blender/src: More constraints bugfixes:
Joshua Leung
aligorith at gmail.com
Tue Oct 23 12:16:46 CEST 2007
Revision: 12354
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12354
Author: aligorith
Date: 2007-10-23 12:16:46 +0200 (Tue, 23 Oct 2007)
Log Message:
-----------
More constraints bugfixes:
* Fixed crash that occurs when using an unknown constraint type or a Null constraint - missing NULL check
* ClampTo constraint now draws ok again
* Null constraints now get drawn in the stack again
Modified Paths:
--------------
trunk/blender/source/blender/src/buttons_object.c
trunk/blender/source/blender/src/drawobject.c
trunk/blender/source/blender/src/editconstraint.c
Modified: trunk/blender/source/blender/src/buttons_object.c
===================================================================
--- trunk/blender/source/blender/src/buttons_object.c 2007-10-23 08:23:57 UTC (rev 12353)
+++ trunk/blender/source/blender/src/buttons_object.c 2007-10-23 10:16:46 UTC (rev 12354)
@@ -482,12 +482,14 @@
cti= constraint_get_typeinfo(con);
if (cti == NULL) {
- printf("Argh! No valid constraint type-info... aborting constraint drawing. \n");
- return;
+ /* exception for 'Null' constraint - it doesn't have constraint typeinfo! */
+ if (con->type == CONSTRAINT_TYPE_NULL)
+ strcpy(typestr, "Null");
+ else
+ strcpy(typestr, "Unknown");
}
- else {
+ else
strcpy(typestr, cti->name);
- }
/* unless button has own callback, it adds this callback to button */
uiBlockSetFunc(block, constraint_active_func, ob, con);
@@ -1398,10 +1400,10 @@
uiBlockEndAlign(block);
/* Extra Options Controlling Behaviour */
- uiBlockBeginAlign(block);
- uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Options:", *xco, *yco-86, 90, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
- uiDefButBitI(block, TOG, CLAMPTO_CYCLIC, B_CONSTRAINT_TEST, "Cyclic", *xco+((width/2)), *yco-86,60,19, &data->flag2, 0, 0, 0, 0, "Treat curve as cyclic curve (no clamping to curve bounding box)");
- uiBlockEndAlign(block);
+ //uiBlockBeginAlign(block);
+ uiDefBut(block, LABEL, B_CONSTRAINT_TEST, "Options:", *xco, *yco-88, 90, 18, NULL, 0.0, 0.0, 0.0, 0.0, "");
+ uiDefButBitI(block, TOG, CLAMPTO_CYCLIC, B_CONSTRAINT_TEST, "Cyclic", *xco+((width/2)), *yco-88,60,19, &data->flag2, 0, 0, 0, 0, "Treat curve as cyclic curve (no clamping to curve bounding box)");
+ //uiBlockEndAlign(block);
}
break;
case CONSTRAINT_TYPE_TRANSFORM:
@@ -1639,7 +1641,7 @@
{
con = add_new_constraint(CONSTRAINT_TYPE_NULL);
add_constraint_to_active(ob, con);
-
+
BIF_undo_push("Add constraint");
}
break;
Modified: trunk/blender/source/blender/src/drawobject.c
===================================================================
--- trunk/blender/source/blender/src/drawobject.c 2007-10-23 08:23:57 UTC (rev 12353)
+++ trunk/blender/source/blender/src/drawobject.c 2007-10-23 10:16:46 UTC (rev 12354)
@@ -4317,7 +4317,7 @@
ListBase targets = {NULL, NULL};
bConstraintTarget *ct;
- if ((curcon->flag & CONSTRAINT_EXPAND) && (cti->get_constraint_targets)) {
+ if ((curcon->flag & CONSTRAINT_EXPAND) && (cti) && (cti->get_constraint_targets)) {
cti->get_constraint_targets(curcon, &targets);
for (ct= targets.first; ct; ct= ct->next) {
Modified: trunk/blender/source/blender/src/editconstraint.c
===================================================================
--- trunk/blender/source/blender/src/editconstraint.c 2007-10-23 08:23:57 UTC (rev 12353)
+++ trunk/blender/source/blender/src/editconstraint.c 2007-10-23 10:16:46 UTC (rev 12354)
@@ -223,7 +223,7 @@
con->type = type;
con->flag |= CONSTRAINT_EXPAND;
con->enforce = 1.0F;
- strcpy (con->name, "Const");
+ strcpy(con->name, "Const");
/* Load the data for it */
cti = constraint_get_typeinfo(con);
@@ -248,7 +248,7 @@
BLI_addtail(list, con);
con->flag |= CONSTRAINT_ACTIVE;
- for(con= con->prev; con; con= con->prev)
+ for (con= con->prev; con; con= con->prev)
con->flag &= ~CONSTRAINT_ACTIVE;
}
}
@@ -256,7 +256,7 @@
/* checks validity of object pointers, and NULLs,
* if Bone doesnt exist it sets the CONSTRAINT_DISABLE flag
*/
-static void test_constraints (Object *owner, const char* substring)
+static void test_constraints (Object *owner, const char substring[])
{
bConstraint *curcon;
@@ -328,7 +328,7 @@
{
bActionConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
@@ -346,7 +346,7 @@
{
bLocateLikeConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
@@ -364,7 +364,7 @@
{
bMinMaxConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
@@ -382,7 +382,7 @@
{
bRotateLikeConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
@@ -400,7 +400,7 @@
{
bSizeLikeConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
@@ -417,7 +417,7 @@
case CONSTRAINT_TYPE_KINEMATIC:
{
bKinematicConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
@@ -446,11 +446,11 @@
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
- if (data->reserved2==data->reserved1){
+ if (data->reserved2==data->reserved1) {
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
- if (data->reserved2+3==data->reserved1){
+ if (data->reserved2+3==data->reserved1) {
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
@@ -460,7 +460,7 @@
{
bLockTrackConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
@@ -473,11 +473,11 @@
break;
}
- if (data->lockflag==data->trackflag){
+ if (data->lockflag==data->trackflag) {
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
- if (data->lockflag+3==data->trackflag){
+ if (data->lockflag+3==data->trackflag) {
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
@@ -487,7 +487,7 @@
{
bStretchToConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
@@ -505,21 +505,21 @@
{
bFollowPathConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
- if (data->tar->type != OB_CURVE){
+ if (data->tar->type != OB_CURVE) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
- if (data->upflag==data->trackflag){
+ if (data->upflag==data->trackflag) {
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
- if (data->upflag+3==data->trackflag){
+ if (data->upflag+3==data->trackflag) {
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
@@ -529,13 +529,13 @@
{
bClampToConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
}
- if (data->tar->type != OB_CURVE){
+ if (data->tar->type != OB_CURVE) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
@@ -552,7 +552,7 @@
{
bTransformConstraint *data = curcon->data;
- if (!exist_object(data->tar)){
+ if (!exist_object(data->tar)) {
data->tar = NULL;
curcon->flag |= CONSTRAINT_DISABLE;
break;
More information about the Bf-blender-cvs
mailing list