[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18631] branches/blender2.5/blender/source /blender/blenkernel/intern/ipo.c: Animato: Added conversions for Camera data and Texture IPO's
Joshua Leung
aligorith at gmail.com
Fri Jan 23 04:41:22 CET 2009
Revision: 18631
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18631
Author: aligorith
Date: 2009-01-23 04:41:05 +0100 (Fri, 23 Jan 2009)
Log Message:
-----------
Animato: Added conversions for Camera data and Texture IPO's
Most of the settings have been converted, however, there are a few which are not easy to convert.
* For textures:
- tex->noisedepth - undefined in RNA?
- tex->noisetype - undefined in RNA?
- tex->stype - undefined in RNA?
- tex->noise_basis2 - is noted in RNA as undefined...
* For Cameras:
- "CAM_LENS" define was used for either 'ortho_scale', or 'lens' depending on camera type. This is currently difficult to ascertain using current code... I'll revisit this later
- cam->YF_aperature - undefined in RNA
- cam->YF_dofdist - undefined in RNA
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c
Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c 2009-01-23 03:07:07 UTC (rev 18630)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/ipo.c 2009-01-23 03:41:05 UTC (rev 18631)
@@ -264,6 +264,125 @@
return buf;
}
+/* Texture types */
+static char *texture_adrcodes_to_paths (int adrcode, int *array_index)
+{
+ /* set array index like this in-case nothing sets it correctly */
+ *array_index= 0;
+
+ /* result depends on adrcode */
+ switch (adrcode) {
+ case TE_NSIZE:
+ return "noise_size";
+ case TE_TURB:
+ return "turbulence";
+
+ case TE_NDEPTH: // XXX texture RNA undefined
+ //poin= &(tex->noisedepth); *type= IPO_SHORT; break;
+ break;
+ case TE_NTYPE: // XXX texture RNA undefined
+ //poin= &(tex->noisetype); *type= IPO_SHORT; break;
+ break;
+
+ case TE_N_BAS1:
+ return "noise_basis";
+ case TE_N_BAS2:
+ return "noise_basis"; // XXX this is not yet defined in RNA...
+
+ /* voronoi */
+ case TE_VNW1:
+ *array_index= 0; return "feature_weights";
+ case TE_VNW2:
+ *array_index= 1; return "feature_weights";
+ case TE_VNW3:
+ *array_index= 2; return "feature_weights";
+ case TE_VNW4:
+ *array_index= 3; return "feature_weights";
+ case TE_VNMEXP:
+ return "minkovsky_exponent";
+ case TE_VN_DISTM:
+ return "distance_metric";
+ case TE_VN_COLT:
+ return "color_type";
+
+ /* distorted noise / voronoi */
+ case TE_ISCA:
+ return "noise_intensity";
+
+ /* distorted noise */
+ case TE_DISTA:
+ return "distortion_amount";
+
+ /* musgrave */
+ case TE_MG_TYP: // XXX texture RNA undefined
+ // poin= &(tex->stype); *type= IPO_SHORT; break;
+ break;
+ case TE_MGH:
+ return "highest_dimension";
+ case TE_MG_LAC:
+ return "lacunarity";
+ case TE_MG_OCT:
+ return "octaves";
+ case TE_MG_OFF:
+ return "offset";
+ case TE_MG_GAIN:
+ return "gain";
+
+ case TE_COL_R:
+ *array_index= 0; return "rgb_factor";
+ case TE_COL_G:
+ *array_index= 1; return "rgb_factor";
+ case TE_COL_B:
+ *array_index= 2; return "rgb_factor";
+
+ case TE_BRIGHT:
+ return "brightness";
+ case TE_CONTRA:
+ return "constrast";
+ }
+
+ return NULL;
+}
+
+/* Camera Types */
+static char *camera_adrcodes_to_paths (int adrcode, int *array_index)
+{
+ /* set array index like this in-case nothing sets it correctly */
+ *array_index= 0;
+
+ /* result depends on adrcode */
+ switch (adrcode) {
+ case CAM_LENS:
+#if 0 // XXX this cannot be resolved easily... perhaps we assume camera is perspective (works for most cases...
+ if (ca->type == CAM_ORTHO)
+ return "ortho_scale";
+ else
+ return "lens";
+#endif // XXX this cannot be resolved easily
+ break;
+
+ case CAM_STA:
+ return "clip_start";
+ case CAM_END:
+ return "clip_end";
+
+#if 0 // XXX these are not defined in RNA
+ case CAM_YF_APERT:
+ poin= &(ca->YF_aperture); break;
+ case CAM_YF_FDIST:
+ poin= &(ca->YF_dofdist); break;
+#endif // XXX these are not defined in RNA
+
+ case CAM_SHIFT_X:
+ return "shift_x";
+ case CAM_SHIFT_Y:
+ return "shift_y";
+ }
+
+ /* unrecognised adrcode, or not-yet-handled ones! */
+ return NULL;
+}
+
/* ------- */
/* Allocate memory for RNA-path for some property given a blocktype, adrcode, and 'root' parts of path
@@ -295,6 +414,14 @@
propname= shapekey_adrcodes_to_paths(adrcode, &dummy_index);
break;
+ case ID_TE: /* textures */
+ propname= texture_adrcodes_to_paths(adrcode, &dummy_index);
+ break;
+
+ case ID_CA:
+ propname= camera_adrcodes_to_paths(adrcode, &dummy_index);
+ break;
+
/* XXX problematic blocktypes */
case ID_CU:
propname= "speed"; // XXX this was a 'dummy curve' that didn't really correspond to any real var...
@@ -835,70 +962,6 @@
/* --------------------- Get Pointer API ----------------------------- */
-/* get texture channel */
-static void *give_tex_poin (Tex *tex, int adrcode, int *type )
-{
- void *poin= NULL;
-
- switch (adrcode) {
- case TE_NSIZE:
- poin= &(tex->noisesize); break;
- case TE_TURB:
- poin= &(tex->turbul); break;
- case TE_NDEPTH:
- poin= &(tex->noisedepth); *type= IPO_SHORT; break;
- case TE_NTYPE:
- poin= &(tex->noisetype); *type= IPO_SHORT; break;
- case TE_VNW1:
- poin= &(tex->vn_w1); break;
- case TE_VNW2:
- poin= &(tex->vn_w2); break;
- case TE_VNW3:
- poin= &(tex->vn_w3); break;
- case TE_VNW4:
- poin= &(tex->vn_w4); break;
- case TE_VNMEXP:
- poin= &(tex->vn_mexp); break;
- case TE_ISCA:
- poin= &(tex->ns_outscale); break;
- case TE_DISTA:
- poin= &(tex->dist_amount); break;
- case TE_VN_COLT:
- poin= &(tex->vn_coltype); *type= IPO_SHORT; break;
- case TE_VN_DISTM:
- poin= &(tex->vn_distm); *type= IPO_SHORT; break;
- case TE_MG_TYP:
- poin= &(tex->stype); *type= IPO_SHORT; break;
- case TE_MGH:
- poin= &(tex->mg_H); break;
- case TE_MG_LAC:
- poin= &(tex->mg_lacunarity); break;
- case TE_MG_OCT:
- poin= &(tex->mg_octaves); break;
- case TE_MG_OFF:
- poin= &(tex->mg_offset); break;
- case TE_MG_GAIN:
- poin= &(tex->mg_gain); break;
- case TE_N_BAS1:
- poin= &(tex->noisebasis); *type= IPO_SHORT; break;
- case TE_N_BAS2:
- poin= &(tex->noisebasis2); *type= IPO_SHORT; break;
- case TE_COL_R:
- poin= &(tex->rfac); break;
- case TE_COL_G:
- poin= &(tex->gfac); break;
- case TE_COL_B:
- poin= &(tex->bfac); break;
- case TE_BRIGHT:
- poin= &(tex->bright); break;
- case TE_CONTRA:
- poin= &(tex->contrast); break;
- }
-
- /* return pointer */
- return poin;
-}
-
/* get texture-slot/mapping channel */
void *give_mtex_poin (MTex *mtex, int adrcode)
{
@@ -1048,14 +1111,6 @@
}
}
break;
- case ID_TE: /* texture channels ----------------------------- */
- {
- Tex *tex= (Tex *)id;
-
- if (tex)
- poin= give_tex_poin(tex, icu->adrcode, type);
- }
- break;
case ID_WO: /* world channels ----------------------------- */
{
World *wo= (World *)id;
@@ -1176,34 +1231,6 @@
}
}
break;
- case ID_CA: /* camera channels ----------------------------- */
- {
- Camera *ca= (Camera *)id;
-
- switch (icu->adrcode) {
- case CAM_LENS:
- if (ca->type == CAM_ORTHO)
- poin= &(ca->ortho_scale);
- else
- poin= &(ca->lens);
- break;
- case CAM_STA:
- poin= &(ca->clipsta); break;
- case CAM_END:
- poin= &(ca->clipend); break;
-
- case CAM_YF_APERT:
- poin= &(ca->YF_aperture); break;
- case CAM_YF_FDIST:
- poin= &(ca->YF_dofdist); break;
-
- case CAM_SHIFT_X:
- poin= &(ca->shiftx); break;
- case CAM_SHIFT_Y:
- poin= &(ca->shifty); break;
- }
- }
- break;
case ID_SO: /* sound channels ----------------------------- */
{
bSound *snd= (bSound *)id;
More information about the Bf-blender-cvs
mailing list