Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephen Swaney <sswaney@centurytel.net>2005-05-20 16:16:54 +0400
committerStephen Swaney <sswaney@centurytel.net>2005-05-20 16:16:54 +0400
commitf8ae055f4b0f62e55866cf89e8ea40d0a95141c3 (patch)
treedc3ee531b0bf6c54c93dfe8914d5a7616dc7f6db /source/blender/python/api2_2x/Ipo.c
parent83792faa3f6db282b9c0ce3bd965db2058aced32 (diff)
corrections and missing ipo channels for Camera, World, Material
and Lamp. Contributions from Ken Hughes.
Diffstat (limited to 'source/blender/python/api2_2x/Ipo.c')
-rw-r--r--source/blender/python/api2_2x/Ipo.c344
1 files changed, 109 insertions, 235 deletions
diff --git a/source/blender/python/api2_2x/Ipo.c b/source/blender/python/api2_2x/Ipo.c
index 9bcb5fd0073..3150ae43e75 100644
--- a/source/blender/python/api2_2x/Ipo.c
+++ b/source/blender/python/api2_2x/Ipo.c
@@ -25,7 +25,8 @@
*
* This is a new part of Blender.
*
- * Contributor(s): Jacques Guignot, Nathan Letwory
+ * Contributor(s): Jacques Guignot RIP 2005, Nathan Letwory,
+ * Stephen Swaney, Ken Hughes
*
* ***** END GPL/BL DUAL LICENSE BLOCK *****
*/
@@ -449,236 +450,101 @@ static PyObject *Ipo_getNcurves( BPy_Ipo * self )
return ( PyInt_FromLong( i ) );
}
-/*
- fixme: all these name validation routines need attention.
- I just hacked in lots of 'return 1;'s as a temp fix.
- stiv 6-jan-2004
+
+/*
+ Lamp Name to Channel
*/
static int Ipo_laIcuName( char *s, int *param )
{
- int ok = 0;
- if( !strcmp( s, "Energy" ) ) {
- *param = LA_ENERGY;
- return 1;
- }
- if( !strcmp( s, "R" ) ) {
- *param = LA_COL_R;
- return 1;
- }
- if( !strcmp( s, "G" ) ) {
- *param = LA_COL_G;
- return 1;
- }
- if( !strcmp( s, "B" ) ) {
- *param = LA_COL_B;
- return 1;
- }
- if( !strcmp( s, "Dist" ) ) {
- *param = LA_DIST;
- return 1;
- }
- if( !strcmp( s, "SpoSi" ) ) {
- *param = LA_SPOTSI;
- return 1;
- }
- if( !strcmp( s, "SpoBl" ) ) {
- *param = LA_SPOTBL;
- return 1;
- }
- if( !strcmp( s, "Quad1" ) ) {
- *param = LA_QUAD1;
- return 1;
- }
- if( !strcmp( s, "Quad2" ) ) {
- *param = LA_QUAD2;
- return 1;
- }
- if( !strcmp( s, "HaInt" ) ) {
- *param = LA_HALOINT;
- return 1;
+ extern int la_ar[];
+
+ int not_ok = 0;
+ int i;
+ char *lamp_names[LA_TOTIPO] =
+ { "Energ", "R", "G", "B", "Dist", "SpoSi",
+ "SpoBl", "Quad1", "Quad2", "HaInt",
+ /* lamp texture names */
+ "OfsX", "OfsY", "OfsZ", "SizeX", "SizeY",
+ "SizeZ", "texR", "texG", "texB", "DefVar",
+ "Col"
+ };
+
+ for( i = 0; i < LA_TOTIPO; i++ ) {
+ if( !strcmp( s, lamp_names[i] ) ) { /* found it! */
+ *param = la_ar[i];
+ return 1;
+ }
}
- return ok;
+
+ return not_ok;
}
+
+/*
+ World Ipo Name to Channel
+*/
+
static int Ipo_woIcuName( char *s, int *param )
{
- int ok = 0;
- if( !strcmp( s, "HorR" ) ) {
- *param = WO_HOR_R;
- return 1;
- }
- if( !strcmp( s, "HorG" ) ) {
- *param = WO_HOR_G;
- return 1;
- }
- if( !strcmp( s, "HorB" ) ) {
- *param = WO_HOR_B;
- return 1;
- }
- if( !strcmp( s, "ZenR" ) ) {
- *param = WO_ZEN_R;
- return 1;
- }
- if( !strcmp( s, "ZenG" ) ) {
- *param = WO_ZEN_G;
- return 1;
- }
- if( !strcmp( s, "ZenB" ) ) {
- *param = WO_ZEN_B;
- return 1;
- }
- if( !strcmp( s, "Expos" ) ) {
- *param = WO_EXPOS;
- return 1;
- }
- if( !strcmp( s, "Misi" ) ) {
- *param = WO_MISI;
- return 1;
- }
- if( !strcmp( s, "MisDi" ) ) {
- *param = WO_MISTDI;
- return 1;
- }
- if( !strcmp( s, "MisHi" ) ) {
- *param = WO_MISTHI;
- return 1;
- }
- if( !strcmp( s, "StarR" ) ) {
- *param = WO_STAR_R;
- return 1;
- }
- if( !strcmp( s, "StarB" ) ) {
- *param = WO_STAR_B;
- return 1;
- }
- if( !strcmp( s, "StarG" ) ) {
- *param = WO_STAR_G;
- return 1;
- }
- if( !strcmp( s, "ClSta" ) ) {
- *param = WO_MISTSTA;
- return 1;
- }
- if( !strcmp( s, "StarDi" ) ) {
- *param = WO_STARDIST;
- return 1;
- }
- if( !strcmp( s, "StarSi" ) ) {
- *param = WO_STARSIZE;
- return 1;
+ extern int wo_ar[]; /* channel values from ipo.c */
+ int not_ok = 0;
+ int i;
+ char *world_names[WO_TOTIPO] = { "HorR", "HorG", "HorB",
+ "ZenR", "ZenG", "ZenB",
+ "Expos",
+ "Misi", "MisDi", "MisSta", "MisHi",
+ "StarR", "StarB", "StarG",
+ "StarDi", "StarSi",
+ /* world textures names */
+ "OfsX", "OfsY", "OfsZ",
+ "SizeX", "SizeY", "SizeZ",
+ "texR", "texG", "texB",
+ "DefVar", "Col", "Nor", "Var",
+ };
+
+ for( i = 0; i < WO_TOTIPO; i++ ) {
+ if( !strcmp( s, world_names[i] ) ) { /* found it! */
+ *param = wo_ar[i];
+ return 1;
+ }
}
- return ok;
+
+ return not_ok;
}
static int Ipo_maIcuName( char *s, int *param )
{
- int ok = 0;
- if( !strcmp( s, "R" ) ) {
- *param = MA_COL_R;
- return 1;
- }
- if( !strcmp( s, "G" ) ) {
- *param = MA_COL_G;
- return 1;
- }
- if( !strcmp( s, "B" ) ) {
- *param = MA_COL_B;
- return 1;
- }
- if( !strcmp( s, "SpecR" ) ) {
- *param = MA_SPEC_R;
- return 1;
- }
- if( !strcmp( s, "SpecG" ) ) {
- *param = MA_SPEC_G;
- return 1;
- }
- if( !strcmp( s, "SpecB" ) ) {
- *param = MA_SPEC_B;
- return 1;
- }
- if( !strcmp( s, "MirR" ) ) {
- *param = MA_MIR_R;
- return 1;
- }
- if( !strcmp( s, "MirG" ) ) {
- *param = MA_MIR_G;
- return 1;
- }
- if( !strcmp( s, "MirB" ) ) {
- *param = MA_MIR_B;
- return 1;
- }
- if( !strcmp( s, "Ref" ) ) {
- *param = MA_REF;
- return 1;
- }
- if( !strcmp( s, "Alpha" ) ) {
- *param = MA_ALPHA;
- return 1;
- }
- if( !strcmp( s, "Emit" ) ) {
- *param = MA_EMIT;
- return 1;
- }
- if( !strcmp( s, "Amb" ) ) {
- *param = MA_AMB;
- return 1;
- }
- if( !strcmp( s, "Spec" ) ) {
- *param = MA_SPEC;
- return 1;
- }
- if( !strcmp( s, "Hard" ) ) {
- *param = MA_HARD;
- return 1;
- }
- if( !strcmp( s, "SpTra" ) ) {
- *param = MA_SPTR;
- return 1;
- }
- if( !strcmp( s, "Ior" ) ) {
- *param = MA_IOR;
- return 1;
- }
- if( !strcmp( s, "Mode" ) ) {
- *param = MA_MODE;
- return 1;
- }
- if( !strcmp( s, "HaSize" ) ) {
- *param = MA_HASIZE;
- return 1;
- }
- if( !strcmp( s, "Translu" ) ) {
- *param = MA_TRANSLU;
- return 1;
- }
- if( !strcmp( s, "RayMir" ) ) {
- *param = MA_RAYM;
- return 1;
- }
- if( !strcmp( s, "FresMir" ) ) {
- *param = MA_FRESMIR;
- return 1;
- }
- if( !strcmp( s, "FresMirI" ) ) {
- *param = MA_FRESMIRI;
- return 1;
- }
- if( !strcmp( s, "FresTra" ) ) {
- *param = MA_FRESTRA;
- return 1;
- }
- if( !strcmp( s, "FresTraI" ) ) {
- *param = MA_FRESTRAI;
- return 1;
- }
- if( !strcmp( s, "TraGlow" ) ) {
- *param = MA_ADD;
- return 1;
+ extern int ma_ar[];
+
+ int not_ok = 0;
+ int i;
+
+ char *material_names[MA_TOTIPO] = { "R", "G", "B",
+ "SpecR", "SpecG", "SpecB",
+ "MirR", "MirG", "MirB", "Ref", "Alpha",
+ "Emit", "Amb", "Spec",
+ "Hard", "SpTra", "Ior", "Mode",
+ "HaSize", "Translu",
+ "RayMir", "FresMir", "FresMirI",
+ "FresTra", "FresTraI",
+ "TraGlow",
+ "OfsX", "OfsY", "OfsZ",
+ "SizeX", "SizeY", "SizeZ",
+ "texR", "texG", "texB",
+ "DefVar", "Col", "Nor", "Var",
+ "Disp"
+ };
+
+
+ for( i = 0; i < MA_TOTIPO; i++ ) {
+ if( !strcmp( s, material_names[i] ) ) { /* found it! */
+ *param = ma_ar[i];
+ return 1;
+ }
}
- return ok;
+
+ return not_ok;
}
static int Ipo_keIcuName( char *s, int *param )
@@ -781,22 +647,30 @@ static int Ipo_acIcuName( char *s, int *param )
return ok;
}
+
+/*
+ Camera name to channel
+*/
+
static int Ipo_caIcuName( char *s, int *param )
{
- int ok = 0;
- if( !strcmp( s, "Lens" ) ) {
- *param = CAM_LENS;
- return 1;
- }
- if( !strcmp( s, "ClSta" ) ) {
- *param = CAM_STA;
- return 1;
- }
- if( !strcmp( s, "ClEnd" ) ) {
- *param = CAM_END;
- return 1;
+ /* for Camera ipos CAM_TOTNAM == CAM_TOTIPO
+ and cam_ic_names[] holds the complete set of names, so we use that.
+ */
+ extern int cam_ar[];
+ extern char *cam_ic_names[];
+
+ int not_ok = 0;
+ int i;
+
+ for( i = 0; i < CAM_TOTIPO; i++ ) {
+ if( !strcmp( s, cam_ic_names[i] ) ) { /* found it! */
+ *param = cam_ar[i];
+ return 1;
+ }
}
- return ok;
+
+ return not_ok;
}
static int Ipo_texIcuName( char *s, int *param )
@@ -1141,16 +1015,16 @@ static PyObject *Ipo_delCurve( BPy_Ipo * self, PyObject * args )
if( !PyArg_ParseTuple( args, "s", &strname ) )
return ( EXPP_ReturnPyObjError
- ( PyExc_TypeError,
- "string argument" ) );
+ ( PyExc_TypeError, "string argument" ) );
for( icu = self->ipo->curve.first; icu; icu = icu->next ) {
char *str1 = getIpoCurveName( icu );
if( !strcmp( str1, strname ) ) {
- BLI_remlink( &(self->ipo->curve), icu);
- if(icu->bezt) MEM_freeN(icu->bezt);
- MEM_freeN(icu);
- del_ipoCurve ( icu );
+ BLI_remlink( &( self->ipo->curve ), icu );
+ if( icu->bezt )
+ MEM_freeN( icu->bezt );
+ MEM_freeN( icu );
+ del_ipoCurve( icu );
Py_INCREF( Py_None );
return Py_None;
}