[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