[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [10979] trunk/blender/source/blender: == Constraints - Code Cleanup ==

Joshua Leung aligorith at gmail.com
Wed Jun 20 09:11:31 CEST 2007


Revision: 10979
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=10979
Author:   aligorith
Date:     2007-06-20 09:11:31 +0200 (Wed, 20 Jun 2007)

Log Message:
-----------
== Constraints - Code Cleanup ==

Simplified the code in two functions where checking for targets/subtargets could really have been done using Constraint API methods (constraint_has_target, get_constraint_target).

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/constraint.c
    trunk/blender/source/blender/src/editconstraint.c

Modified: trunk/blender/source/blender/blenkernel/intern/constraint.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/constraint.c	2007-06-20 05:23:31 UTC (rev 10978)
+++ trunk/blender/source/blender/blenkernel/intern/constraint.c	2007-06-20 07:11:31 UTC (rev 10979)
@@ -128,111 +128,13 @@
 	bConstraint *con;
 	
 	for (con = list->first; con; con=con->next) {
-		switch (con->type) {
-			case CONSTRAINT_TYPE_PYTHON:
-			{
-				bPythonConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_KINEMATIC:
-			{
-				bKinematicConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_TRACKTO:
-			{
-				bTrackToConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_MINMAX:
-			{
-				bMinMaxConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_LOCKTRACK:
-			{
-				bLockTrackConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_ACTION:
-			{
-				bActionConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_LOCLIKE:
-			{
-				bLocateLikeConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_ROTLIKE:
-			{
-				bRotateLikeConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-	 		case CONSTRAINT_TYPE_SIZELIKE:
- 			{
- 				bSizeLikeConstraint *data;
- 				data = con->data;
- 
- 				ID_NEW(data->tar);
- 			}
- 				break;
-			case CONSTRAINT_TYPE_FOLLOWPATH:
-			{
-				bFollowPathConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_STRETCHTO:
-			{
-				bStretchToConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_RIGIDBODYJOINT:
-			{
-				bRigidBodyJointConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
-			case CONSTRAINT_TYPE_CLAMPTO:
-			{	
-				bClampToConstraint *data;
-				data = con->data;
-				
-				ID_NEW(data->tar);
-			}
-				break;
+		/* check if constraint has a target that needs relinking */
+		if (constraint_has_target(con)) {
+			Object *tar;
+			char *subtarget;
+			
+			tar = get_constraint_target(con, &subtarget);
+			ID_NEW(tar);
 		}
 	}
 }

Modified: trunk/blender/source/blender/src/editconstraint.c
===================================================================
--- trunk/blender/source/blender/src/editconstraint.c	2007-06-20 05:23:31 UTC (rev 10978)
+++ trunk/blender/source/blender/src/editconstraint.c	2007-06-20 07:11:31 UTC (rev 10979)
@@ -250,86 +250,13 @@
 	 * If the target for this constraint is target, return a pointer 
 	 * to the name for this constraints subtarget ... NULL otherwise
 	 */
-	switch (con->type) {
-		case CONSTRAINT_TYPE_PYTHON:
-		{
-			bPythonConstraint *data = con->data;
-			if (data->flag & PYCON_USETARGETS) {
-				if (data->tar==target) return data->subtarget;
-			}
-		}
-		break;
-		case CONSTRAINT_TYPE_ACTION:
-		{
-			bActionConstraint *data = con->data;
-			if (data->tar==target) return data->subtarget;
-		}
-		break;
-		case CONSTRAINT_TYPE_LOCLIKE:
-		{
-			bLocateLikeConstraint *data = con->data;
-			if (data->tar==target) return data->subtarget;
-		}
-		break;
-		case CONSTRAINT_TYPE_ROTLIKE:
-		{
-			bRotateLikeConstraint *data = con->data;
-			if (data->tar==target) return data->subtarget;
-		}
-		break;
-		case CONSTRAINT_TYPE_SIZELIKE:
-		{
-			bSizeLikeConstraint *data = con->data;
-			if (data->tar==target) return data->subtarget;
-		}
-		break;
-		case CONSTRAINT_TYPE_KINEMATIC:
-		{
-			bKinematicConstraint *data = con->data;
-			if (data->tar==target) return data->subtarget;
-		}
-		break;
-		case CONSTRAINT_TYPE_TRACKTO:
-		{
-			bTrackToConstraint *data = con->data;
-			if (data->tar==target) return data->subtarget;
-		}
-		break;
-		case CONSTRAINT_TYPE_MINMAX:
-		{
-			bMinMaxConstraint *data = con->data;
-			if (data->tar==target) return data->subtarget;
-		}
-		break;
-		case CONSTRAINT_TYPE_LOCKTRACK:
-		{
-			bLockTrackConstraint *data = con->data;
-			if (data->tar==target) return data->subtarget;
-		}
-		break;
-		case CONSTRAINT_TYPE_STRETCHTO:
-		{
-			bStretchToConstraint *data = con->data;
-			if (data->tar==target) return data->subtarget;
-		}
-		break;
-		case CONSTRAINT_TYPE_FOLLOWPATH: 
-			/* wonder if this is relevent, since this constraint 
-			 * cannot have a subtarget - theeth 
-			 */
-		{
-			/*
-			 * bFollowPathConstraint *data = con->data;
-			 */
-			return NULL;
-		}
-		break;
-		case CONSTRAINT_TYPE_CLAMPTO:
-		{
-			/* cannot have subtarget. if followpath is removed from here, remove this too... */
-			return NULL; 
-		}
-		break;
+	 
+	if (constraint_has_target(con)) {
+		Object *tar;
+		char *subtarget;
+		
+		tar = get_constraint_target(con, &subtarget);
+		return subtarget;
 	}
 	
 	return NULL;  





More information about the Bf-blender-cvs mailing list