RNA: added a "factor" subtype next to "percentage", and only display
authorBrecht Van Lommel <brechtvanlommel@pandora.be>
Mon, 21 Sep 2009 21:19:58 +0000 (21:19 +0000)
committerBrecht Van Lommel <brechtvanlommel@pandora.be>
Mon, 21 Sep 2009 21:19:58 +0000 (21:19 +0000)
% sign for percentage assuming it is between 0-100, while factor is
for values 0-1.

Move collision setting absorption from modifier to collision settings,
was inconsistent to have it there as the only one, and made it have
range 0.0-1.0 instead of 0-100.

25 files changed:
release/ui/buttons_object_constraint.py
release/ui/buttons_physics_field.py
source/blender/blenkernel/BKE_collision.h
source/blender/blenkernel/intern/collision.c
source/blender/blenkernel/intern/effect.c
source/blender/editors/curve/editcurve.c
source/blender/editors/interface/interface_utils.c
source/blender/editors/mesh/editmesh_mods.c
source/blender/editors/transform/transform_ops.c
source/blender/editors/uvedit/uvedit_unwrap_ops.c
source/blender/makesdna/DNA_modifier_types.h
source/blender/makesdna/DNA_object_force.h
source/blender/makesrna/RNA_define.h
source/blender/makesrna/RNA_types.h
source/blender/makesrna/intern/makesrna.c
source/blender/makesrna/intern/rna_camera.c
source/blender/makesrna/intern/rna_constraint.c
source/blender/makesrna/intern/rna_define.c
source/blender/makesrna/intern/rna_material.c
source/blender/makesrna/intern/rna_modifier.c
source/blender/makesrna/intern/rna_nodetree.c
source/blender/makesrna/intern/rna_object_force.c
source/blender/makesrna/intern/rna_rna.c
source/blender/makesrna/intern/rna_scene.c
source/blender/makesrna/intern/rna_userdef.c

index 1d2f9a5cb496231669094dc30e1c9c6f051aa15c..8671f9e25a8cdc1281d46d9071d6e053ca3bf92e 100644 (file)
@@ -130,7 +130,7 @@ class ConstraintButtonsPanel(bpy.types.Panel):
                col = split.column()
                col.itemR(con, "use_fixed_position")
                if con.use_fixed_position:
-                       col.itemR(con, "offset_percentage", text="Offset")
+                       col.itemR(con, "offset_factor", text="Offset")
                else:
                        col.itemR(con, "offset")
                
index 252b3bdb08a65087bfe4ec9bac9874243a5e7b6f..f6b50844fc8cc1a4ad5ca96b61cecf0836ada31c 100644 (file)
@@ -212,7 +212,7 @@ class PHYSICS_PT_collision(PhysicButtonsPanel):
                        sub.itemR(settings, "inner_thickness", text="Inner", slider=True)
                
                        layout.itemL(text="Force Fields:")
-                       layout.itemR(md, "absorption", text="Absorption")
+                       layout.itemR(settings, "absorption", text="Absorption")
                
                        col = split.column()
                        col.itemL(text="")
index e4eed084a3d609f5d280c958953f42f4e95ba6b3..e0df75f41b9421edaf129dc33fef5a74f2d843f5 100644 (file)
@@ -139,7 +139,7 @@ void interpolateOnTriangle ( float to[3], float v1[3], float v2[3], float v3[3],
 /////////////////////////////////////////////////
 // used in effect.c
 /////////////////////////////////////////////////
-CollisionModifierData **get_collisionobjects(struct Scene *scene, Object *self, int *numcollobj);
+Object **get_collisionobjects(struct Scene *scene, Object *self, int *numcollobj);
 
 /////////////////////////////////////////////////
 
index 8ef1c28537080f9fb3e20fc88872949227fee7af..aa4aae2422c3570c8181838632052c739fe1282a 100644 (file)
@@ -1296,15 +1296,15 @@ static int cloth_collision_moving ( ClothModifierData *clmd, CollisionModifierDa
 
 // return all collision objects in scene
 // collision object will exclude self 
-CollisionModifierData **get_collisionobjects(Scene *scene, Object *self, int *numcollobj)
+Object **get_collisionobjects(Scene *scene, Object *self, int *numcollobj)
 {
        Base *base=NULL;
-       CollisionModifierData **objs = NULL;
+       Object **objs = NULL;
        Object *coll_ob = NULL;
        CollisionModifierData *collmd = NULL;
        int numobj = 0, maxobj = 100;
        
-       objs = MEM_callocN(sizeof(CollisionModifierData *)*maxobj, "CollisionObjectsArray");
+       objs = MEM_callocN(sizeof(Object *)*maxobj, "CollisionObjectsArray");
        // check all collision objects
        for ( base = scene->base.first; base; base = base->next )
        {
@@ -1330,16 +1330,16 @@ CollisionModifierData **get_collisionobjects(Scene *scene, Object *self, int *nu
                        {
                                // realloc
                                int oldmax = maxobj;
-                               CollisionModifierData **tmp;
+                               Object **tmp;
                                maxobj *= 2;
-                               tmp = MEM_callocN(sizeof(CollisionModifierData *)*maxobj, "CollisionObjectsArray");
-                               memcpy(tmp, objs, sizeof(CollisionModifierData *)*oldmax);
+                               tmp = MEM_callocN(sizeof(Object *)*maxobj, "CollisionObjectsArray");
+                               memcpy(tmp, objs, sizeof(Object *)*oldmax);
                                MEM_freeN(objs);
                                objs = tmp;
                                
                        }
                        
-                       objs[numobj] = collmd;
+                       objs[numobj] = coll_ob;
                        numobj++;
                }
                else
@@ -1374,15 +1374,15 @@ CollisionModifierData **get_collisionobjects(Scene *scene, Object *self, int *nu
                                        {
                                                // realloc
                                                int oldmax = maxobj;
-                                               CollisionModifierData **tmp;
+                                               Object **tmp;
                                                maxobj *= 2;
-                                               tmp = MEM_callocN(sizeof(CollisionModifierData *)*maxobj, "CollisionObjectsArray");
-                                               memcpy(tmp, objs, sizeof(CollisionModifierData *)*oldmax);
+                                               tmp = MEM_callocN(sizeof(Object *)*maxobj, "CollisionObjectsArray");
+                                               memcpy(tmp, objs, sizeof(Object *)*oldmax);
                                                MEM_freeN(objs);
                                                objs = tmp;
                                        }
                                        
-                                       objs[numobj] = collmd;
+                                       objs[numobj] = coll_ob;
                                        numobj++;
                                }
                        }
@@ -1459,7 +1459,7 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl
        int rounds = 0; // result counts applied collisions; ic is for debug output;
        ClothVertex *verts = NULL;
        int ret = 0, ret2 = 0;
-       CollisionModifierData **collobjs = NULL;
+       Object **collobjs = NULL;
        int numcollobj = 0;
 
        if ( ( clmd->sim_parms->flags & CLOTH_SIMSETTINGS_FLAG_COLLOBJ ) || ! ( ( ( Cloth * ) clmd->clothObject )->bvhtree ) )
@@ -1498,7 +1498,8 @@ int cloth_bvh_objcollision (Object *ob, ClothModifierData * clmd, float step, fl
                // check all collision objects
                for(i = 0; i < numcollobj; i++)
                {
-                       CollisionModifierData *collmd = collobjs[i];
+                       Object *collob= collobjs[i];
+                       CollisionModifierData *collmd = (CollisionModifierData*)modifiers_findByType(collob, eModifierType_Collision);
                        BVHTreeOverlap *overlap = NULL;
                        int result = 0;
                        
index e3c4f12184ed1d7bd6f46fe8daa9fbd55344f140..acf906e3163aaadb588d1d426fe2bbb9112062fc 100644 (file)
@@ -258,10 +258,10 @@ static void eff_tri_ray_hit(void *userdata, int index, const BVHTreeRay *ray, BV
 // get visibility of a wind ray
 static float eff_calc_visibility(Scene *scene, Object *ob, float *co, float *dir)
 {
-       CollisionModifierData **collobjs = NULL;
+       Object **collobjs = NULL;
        int numcollobj = 0, i;
        float norm[3], len = 0.0;
-       float visibility = 1.0;
+       float visibility = 1.0, absorption = 0.0;
        
        collobjs = get_collisionobjects(scene, ob, &numcollobj);
        
@@ -275,7 +275,8 @@ static float eff_calc_visibility(Scene *scene, Object *ob, float *co, float *dir
        // check all collision objects
        for(i = 0; i < numcollobj; i++)
        {
-               CollisionModifierData *collmd = collobjs[i];
+               Object *collob= collobjs[i];
+               CollisionModifierData *collmd = (CollisionModifierData*)modifiers_findByType(collob, eModifierType_Collision);
                
                if(collmd->bvhtree)
                {
@@ -287,8 +288,10 @@ static float eff_calc_visibility(Scene *scene, Object *ob, float *co, float *dir
                        // check if the way is blocked
                        if(BLI_bvhtree_ray_cast(collmd->bvhtree, co, norm, 0.0f, &hit, eff_tri_ray_hit, NULL)>=0)
                        {
+                               absorption= (collob->pd)? collob->pd->absorption: 0.0f;
+
                                // visibility is only between 0 and 1, calculated from 1-absorption
-                               visibility *= MAX2(0.0, MIN2(1.0, (1.0-((float)collmd->absorption)*0.01)));
+                               visibility *= CLAMPIS(1.0f-absorption, 0.0f, 1.0f);
                                
                                if(visibility <= 0.0f)
                                        break;
index 8dabe24de91f760ab124c874aa5b17d5c75ae584..a18815d04a6e9f28b3ffd5d3d96625e03aa5280f 100644 (file)
@@ -1078,7 +1078,7 @@ void CURVE_OT_spline_weight_set(wmOperatorType *ot)
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
 
        /* properties */
-       RNA_def_float_percentage(ot->srna, "weight", 1.0f, 0.0f, 1.0f, "Weight", "", 0.0f, 1.0f);
+       RNA_def_float_factor(ot->srna, "weight", 1.0f, 0.0f, 1.0f, "Weight", "", 0.0f, 1.0f);
 }
 
 /******************* set radius operator ******************/
index 00dec9a06c2e1cbd52dfad2dac8cca1b43b97ae7..1d56ed4fb6aba3f175db39212f75b82388a4d8af 100644 (file)
@@ -73,7 +73,7 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind
                                if(RNA_property_subtype(prop) == PROP_COLOR)
                                        but= uiDefButR(block, COL, 0, name, x1, y1, x2, y2, ptr, propname, 0, 0, 0, -1, -1, NULL);
                        }
-                       else if(RNA_property_subtype(prop) == PROP_PERCENTAGE)
+                       else if(RNA_property_subtype(prop) == PROP_PERCENTAGE || RNA_property_subtype(prop) == PROP_FACTOR)
                                but= uiDefButR(block, NUMSLI, 0, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
                        else
                                but= uiDefButR(block, NUM, 0, name, x1, y1, x2, y2, ptr, propname, index, 0, 0, -1, -1, NULL);
index 3135863d57130b343787fb6fcacc32e8677bdb26..93f8bdb66692b69de952905812f9ba538a943993 100644 (file)
@@ -3553,7 +3553,7 @@ void MESH_OT_select_random(wmOperatorType *ot)
        ot->flag= OPTYPE_REGISTER|OPTYPE_UNDO;
        
        /* props */
-       RNA_def_float_percentage(ot->srna, "percent", 0.5f, 0.0f, 1.0f, "Percent", "Percentage of vertices to select randomly.", 0.0001f, 1.0f);
+       RNA_def_float_percentage(ot->srna, "percent", 50.0f, 0.0f, 100.0f, "Percent", "Percentage of vertices to select randomly.", 0.0001f, 1.0f);
 }
 
 void EM_select_by_material(EditMesh *em, int index) 
index f9597b81114befe4ec436a48e7c9aec63b897e3e..4bf0e44de7fa14231a0f5a957c2bd747173a9385 100644 (file)
@@ -523,7 +523,7 @@ void TFM_OT_tosphere(struct wmOperatorType *ot)
        ot->cancel  = transform_cancel;
        ot->poll   = ED_operator_areaactive;
 
-       RNA_def_float_percentage(ot->srna, "value", 0, 0, 1, "Percentage", "", 0, 1);
+       RNA_def_float_factor(ot->srna, "value", 0, 0, 1, "Factor", "", 0, 1);
 
        Properties_Proportional(ot);
 
index b848bd4fb097f4e0cf9c44b05d42e5118340aad5..c7258e616fa2fceb0adbc5474e5247d79abe675d 100644 (file)
@@ -423,7 +423,7 @@ void UV_OT_minimize_stretch(wmOperatorType *ot)
 
        /* properties */
        RNA_def_boolean(ot->srna, "fill_holes", 1, "Fill Holes", "Virtual fill holes in mesh before unwrapping, to better avoid overlaps and preserve symmetry.");
-       RNA_def_float_percentage(ot->srna, "blend", 0.0f, 0.0f, 1.0f, "Blend", "Blend factor between stretch minimized and original.", 0.0f, 1.0f);
+       RNA_def_float_factor(ot->srna, "blend", 0.0f, 0.0f, 1.0f, "Blend", "Blend factor between stretch minimized and original.", 0.0f, 1.0f);
        RNA_def_int(ot->srna, "iterations", 0, 0, INT_MAX, "Iterations", "Number of iterations to run, 0 is unlimited when run interactively.", 0, 100);
 }
 
index 54433fd4254508c30a7d80ff666f9b2fec9c1e22..bcb85b5f87eb739ba4291c17ffb6b8018324083c 100644 (file)
@@ -438,9 +438,7 @@ typedef struct CollisionModifierData {
        
        unsigned int numverts;
        unsigned int numfaces;
-       short absorption; /* used for forces, in % */
-       short pad;
-       float time;             /* cfra time of modifier */
+       float time, pad;                /* cfra time of modifier */
        struct BVHTree *bvhtree; /* bounding volume hierarchy for this cloth object */
 } CollisionModifierData;
 
index 986a75f1a96058ce174eaad63c1b185f1cd71e9d..468ad35de852e69196d387327e2f37a90ff78fa4 100644 (file)
@@ -62,6 +62,8 @@ typedef struct PartDeflect {
        float pdef_sbift;       /* inner face thickness for softbody deflection */
        float pdef_sboft;       /* outer face thickness for softbody deflection */
 
+       float absorption, pad;  /* used for forces */
+
        /* variables for guide curve */
        float clump_fac, clump_pow;
        float kink_freq, kink_shape, kink_amp, free_end;
index 595562503aa4c92bcb930ecf058974f3d716a42b..37b175fbf12679002784fcf42d04865c1906bfb2 100644 (file)
@@ -102,6 +102,8 @@ PropertyRNA *RNA_def_float_dynamic_array(StructOrFunctionRNA *cont, const char *
        */
 PropertyRNA *RNA_def_float_percentage(StructOrFunctionRNA *cont, const char *identifier, float default_value, float hardmin, float hardmax,
        const char *ui_name, const char *ui_description, float softmin, float softmax);
+PropertyRNA *RNA_def_float_factor(StructOrFunctionRNA *cont, const char *identifier, float default_value, float hardmin, float hardmax,
+       const char *ui_name, const char *ui_description, float softmin, float softmax);
 
 PropertyRNA *RNA_def_pointer(StructOrFunctionRNA *cont, const char *identifier, const char *type,
        const char *ui_name, const char *ui_description);
index 353c859cf278137b627fc1c79ee99db4048e578a..5fff2af29ff48f1baaa2396402e09a1ef4ca791d 100644 (file)
@@ -94,9 +94,10 @@ typedef enum PropertySubType {
        /* numbers */
        PROP_UNSIGNED = 13,
        PROP_PERCENTAGE = 14,
-       PROP_ANGLE = 15|PROP_UNIT_ROTATION,
-       PROP_TIME = 16|PROP_UNIT_TIME,
-       PROP_DISTANCE = 17|PROP_UNIT_LENGTH,
+       PROP_FACTOR = 15,
+       PROP_ANGLE = 16|PROP_UNIT_ROTATION,
+       PROP_TIME = 17|PROP_UNIT_TIME,
+       PROP_DISTANCE = 18|PROP_UNIT_LENGTH,
 
        /* number arrays */
        PROP_COLOR = 20,
index c734cdfec87d8893ae660bd1bcbbe1c8ce347326..3e61000511321188f640da908ca3f934ee09ef83 100644 (file)
@@ -1406,6 +1406,7 @@ static const char *rna_property_subtypename(PropertyType type)
                case PROP_DIRPATH: return "PROP_DIRPATH";
                case PROP_UNSIGNED: return "PROP_UNSIGNED";
                case PROP_PERCENTAGE: return "PROP_PERCENTAGE";
+               case PROP_FACTOR: return "PROP_FACTOR";
                case PROP_ANGLE: return "PROP_ANGLE";
                case PROP_TIME: return "PROP_TIME";
                case PROP_DISTANCE: return "PROP_DISTANCE";
index 9c33b0afb0096a0fe2528ba54f94e0918986841e..eaf647e02a2c716bceee3f78b98d37f7bae60299 100644 (file)
@@ -62,7 +62,7 @@ void RNA_def_camera(BlenderRNA *brna)
        
        /* Number values */
 
-       prop= RNA_def_property(srna, "passepartout_alpha", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "passepartout_alpha", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "passepartalpha");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Passepartout Alpha", "Opacity (alpha) of the darkened overlay in Camera view.");
index 1bbac8da02f1caea7bb2e377b585fd12b4981e56..86aa2a1d13553c17028bc4bb390eddd173344302 100644 (file)
@@ -591,7 +591,7 @@ static void rna_def_constraint_locate_like(BlenderRNA *brna)
        srna= RNA_def_struct(brna, "CopyLocationConstraint", "Constraint");
        RNA_def_struct_ui_text(srna, "Copy Location Constraint", "Copies the location of the target.");
 
-       prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "head_tail", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, "bConstraint", "headtail");
        RNA_def_property_ui_text(prop, "Head/Tail", "Target along length of bone: Head=0, Tail=1.");
        RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
@@ -893,10 +893,10 @@ static void rna_def_constraint_follow_path(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Offset", "Offset from the position corresponding to the time frame.");
        RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
        
-       prop= RNA_def_property(srna, "offset_percentage", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "offset_factor", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "offset"); // XXX we might be better with another var or some hackery?
        RNA_def_property_range(prop, 0.0f, 1.0f);
-       RNA_def_property_ui_text(prop, "Offset Percentage", "Percentage value defining target position along length of bone.");
+       RNA_def_property_ui_text(prop, "Offset Factor", "Percentage value defining target position along length of bone.");
        RNA_def_property_update(prop, NC_OBJECT|ND_CONSTRAINT, "rna_Constraint_update");
 
        prop= RNA_def_property(srna, "forward", PROP_ENUM, PROP_NONE);
@@ -1617,7 +1617,7 @@ void RNA_def_constraint(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Proxy Local", "Constraint was added in this proxy instance (i.e. did not belong to source Armature).");
        
        /* values */
-       prop= RNA_def_property(srna, "influence", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "influence", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "enforce");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Influence", "Amount of influence constraint will have on the final solution.");
index 45517546c16b00fb07a55ab3c46d713ce369ffb2..cc86da18a0bbd0667ab380ab5d4e50066b08b761 100644 (file)
@@ -890,7 +890,7 @@ PropertyRNA *RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier
                                fprop->softmin= 0.0f;
                                fprop->softmax= 1.0f;
                        }
-                       else if(subtype == PROP_PERCENTAGE) {
+                       else if(subtype == PROP_FACTOR) {
                                fprop->softmin= fprop->hardmin= 0.0f;
                                fprop->softmax= fprop->hardmax= 1.0f;
                        }
@@ -1530,7 +1530,7 @@ void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const
                        iprop->softmax= 10000;
                }
 
-               if(prop->subtype == PROP_UNSIGNED || prop->subtype == PROP_PERCENTAGE)
+               if(prop->subtype == PROP_UNSIGNED || prop->subtype == PROP_PERCENTAGE || prop->subtype == PROP_FACTOR)
                        iprop->hardmin= iprop->softmin= 0;
        }
 }
@@ -2261,6 +2261,21 @@ PropertyRNA *RNA_def_float_percentage(StructOrFunctionRNA *cont_, const char *id
        return prop;
 }
 
+PropertyRNA *RNA_def_float_factor(StructOrFunctionRNA *cont_, const char *identifier, float default_value,
+       float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
+{
+       ContainerRNA *cont= cont_;
+       PropertyRNA *prop;
+       
+       prop= RNA_def_property(cont, identifier, PROP_FLOAT, PROP_FACTOR);
+       RNA_def_property_float_default(prop, default_value);
+       if(hardmin != hardmax) RNA_def_property_range(prop, hardmin, hardmax);
+       RNA_def_property_ui_text(prop, ui_name, ui_description);
+       RNA_def_property_ui_range(prop, softmin, softmax, 1, 3);
+
+       return prop;
+}
+
 PropertyRNA *RNA_def_pointer(StructOrFunctionRNA *cont_, const char *identifier, const char *type,
        const char *ui_name, const char *ui_description)
 {
index 18c0dc42e175c17da54c4891f4ab510e27f7b84e..23aeacb97f2b7d21cf2462e568e0629392d41027 100644 (file)
@@ -645,12 +645,12 @@ static void rna_def_material_colors(StructRNA *srna)
        RNA_def_property_ui_text(prop, "Mirror Color", "Mirror color of the material.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "alpha", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "alpha", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Alpha", "Alpha transparency of the material.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING_DRAW, NULL);
 
-       prop= RNA_def_property(srna, "specular_alpha", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "specular_alpha", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "spectra");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Specular Alpha", "Alpha transparency for specular areas.");
@@ -725,7 +725,7 @@ static void rna_def_material_diffuse(StructRNA *srna)
        RNA_def_property_ui_text(prop, "Diffuse Shader Model", "");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "diffuse_intensity", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "diffuse_intensity", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "ref");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Diffuse Intensity", "Amount of diffuse reflection.");
@@ -742,7 +742,7 @@ static void rna_def_material_diffuse(StructRNA *srna)
        RNA_def_property_ui_text(prop, "Diffuse Toon Size", "Size of diffuse toon area.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
 
-       prop= RNA_def_property(srna, "diffuse_toon_smooth", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "diffuse_toon_smooth", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "param[1]");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Diffuse Toon Smooth", "Smoothness of diffuse toon area.");
@@ -786,7 +786,7 @@ static void rna_def_material_raymirror(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Enabled", "Enable raytraced reflections.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
                
-       prop= RNA_def_property(srna, "reflect_factor", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "reflect_factor", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "ray_mirror");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Reflectivity", "Sets the amount mirror reflection for raytrace.");
@@ -798,19 +798,19 @@ static void rna_def_material_raymirror(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Fresnel", "Power of Fresnel for mirror reflection.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "fresnel_factor", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "fresnel_factor", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "fresnel_mir_i");
        RNA_def_property_range(prop, 0.0f, 5.0f);
        RNA_def_property_ui_text(prop, "Fresnel Factor", "Blending factor for Fresnel.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "gloss_factor", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "gloss_factor", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "gloss_mir");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Gloss Amount", "The shininess of the reflection. Values < 1.0 give diffuse, blurry reflections.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "gloss_anisotropic", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "gloss_anisotropic", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "aniso_gloss_mir");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Gloss Anisotropy", "The shape of the reflection, from 0.0 (circular) to 1.0 (fully stretched along the tangent.");
@@ -822,7 +822,7 @@ static void rna_def_material_raymirror(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Gloss Samples", "Number of cone samples averaged for blurry reflections.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "gloss_threshold", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "gloss_threshold", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "adapt_thresh_mir");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Gloss Threshold", "Threshold for adaptive sampling. If a sample contributes less than this amount (as a percentage), sampling is stopped.");
@@ -869,13 +869,13 @@ static void rna_def_material_raytra(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Fresnel", "Power of Fresnel for transparency (Ray or ZTransp).");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "fresnel_factor", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "fresnel_factor", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "fresnel_tra_i");
        RNA_def_property_range(prop, 1.0f, 5.0f);
        RNA_def_property_ui_text(prop, "Fresnel Factor", "Blending factor for Fresnel.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "gloss_factor", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "gloss_factor", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "gloss_tra");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Gloss Amount", "The clarity of the refraction. Values < 1.0 give diffuse, blurry refractions.");
@@ -887,7 +887,7 @@ static void rna_def_material_raytra(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Gloss Samples", "Number of cone samples averaged for blurry refractions.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "gloss_threshold", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "gloss_threshold", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "adapt_thresh_tra");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Gloss Threshold", "Threshold for adaptive sampling. If a sample contributes less than this amount (as a percentage), sampling is stopped.");
@@ -899,7 +899,7 @@ static void rna_def_material_raytra(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Depth", "Maximum allowed number of light inter-refractions.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "filter", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "filter", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "filter");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Filter", "Amount to blend in the material's diffuse color in raytraced transparency (simulating absorption).");
@@ -1011,7 +1011,7 @@ static void rna_def_material_volume(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Depth Cutoff", "Stop ray marching early if transmission drops below this luminance - higher values give speedups in dense volumes at the expense of accuracy.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "density", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "density", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "density");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Density", "The base density of the volume");
@@ -1093,7 +1093,7 @@ static void rna_def_material_halo(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Hardness", "Sets the hardness of the halo.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "add", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "add", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "add");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Add", "Sets the strength of the add effect.");
@@ -1239,13 +1239,13 @@ static void rna_def_material_sss(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "IOR", "Index of refraction (higher values are denser).");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
 
-       prop= RNA_def_property(srna, "color_factor", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "color_factor", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "sss_colfac");
        RNA_def_property_ui_range(prop, 0, 1, 10, 3);
        RNA_def_property_ui_text(prop, "Color Factor", "Blend factor for SSS colors.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
 
-       prop= RNA_def_property(srna, "texture_factor", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "texture_factor", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "sss_texfac");
        RNA_def_property_ui_range(prop, 0, 1, 10, 3);
        RNA_def_property_ui_text(prop, "Texture Factor", "Texture scatting blend factor.");
@@ -1287,7 +1287,7 @@ static void rna_def_material_specularity(StructRNA *srna)
        RNA_def_property_ui_text(prop, "Specular Shader Model", "");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "specular_intensity", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "specular_intensity", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "spec");
        RNA_def_property_range(prop, 0, 1);
        RNA_def_property_ui_text(prop, "Specular Intensity", "");
@@ -1316,7 +1316,7 @@ static void rna_def_material_specularity(StructRNA *srna)
        RNA_def_property_ui_text(prop, "Specular Toon Size", "Size of specular toon area.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
 
-       prop= RNA_def_property(srna, "specular_toon_smooth", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "specular_toon_smooth", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "param[3]");
        RNA_def_property_range(prop, 0.0f, 1.0f);
        RNA_def_property_ui_text(prop, "Specular Toon Smooth", "Ssmoothness of specular toon area.");
@@ -1474,7 +1474,7 @@ void RNA_def_material(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Transparency Method", "Method to use for rendering transparency.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
        
-       prop= RNA_def_property(srna, "ambient", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "ambient", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "amb");
        RNA_def_property_range(prop, 0, 1);
        RNA_def_property_ui_text(prop, "Ambient", "Amount of global ambient color the material receives.");
@@ -1486,7 +1486,7 @@ void RNA_def_material(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Emit", "Amount of light to emit.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
 
-       prop= RNA_def_property(srna, "translucency", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "translucency", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_range(prop, 0, 1);
        RNA_def_property_ui_text(prop, "Translucency", "Amount of diffuse shading on the back side.");
        RNA_def_property_update(prop, NC_MATERIAL|ND_SHADING, NULL);
@@ -1511,7 +1511,7 @@ void RNA_def_material(BlenderRNA *brna)
        RNA_def_property_range(prop, 0, 10);
        RNA_def_property_ui_text(prop, "Shadow Buffer Bias", "Factor to multiply shadow buffer bias with (0 is ignore.)");
 
-       prop= RNA_def_property(srna, "shadow_casting_alpha", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "shadow_casting_alpha", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "shad_alpha");
        RNA_def_property_range(prop, 0.001, 1);
        RNA_def_property_ui_text(prop, "Shadow Casting Alpha", "Shadow casting alpha, only in use for Irregular Shadowbuffer.");
index ffc2d78a6ce29e5964474df98c937aae6c00d4df..480abff19cb6e834ca03f95509c3fc49cce17b32 100644 (file)
@@ -1619,12 +1619,6 @@ static void rna_def_modifier_collision(BlenderRNA *brna)
        RNA_def_property_struct_type(prop, "CollisionSettings");
        RNA_def_property_pointer_funcs(prop, "rna_CollisionModifier_settings_get", NULL, NULL);
        RNA_def_property_ui_text(prop, "Settings", "");
-       
-       prop= RNA_def_property(srna, "absorption", PROP_INT, PROP_PERCENTAGE);
-       RNA_def_property_int_sdna(prop, NULL, "absorption");
-       RNA_def_property_ui_range(prop, 0, 100, 1, 2);
-       RNA_def_property_ui_text(prop, "Absorption %", "How much of effector force gets lost during collision with this object (in percent).");
-       RNA_def_property_update(prop, 0, "rna_Modifier_update");
 }
 
 static void rna_def_modifier_bevel(BlenderRNA *brna)
index d80ebe2da05c1ae923746420bdc0689616096dbe..ebd032bb0b18a50fdf3f28689e06e0947dd88359 100644 (file)
@@ -1118,7 +1118,7 @@ static void def_cmp_splitviewer(StructRNA *srna)
        RNA_def_property_ui_text(prop, "Axis", "");
        RNA_def_property_update(prop, 0, "rna_Node_update");
 
-       prop = RNA_def_property(srna, "factor", PROP_INT, PROP_PERCENTAGE);
+       prop = RNA_def_property(srna, "factor", PROP_INT, PROP_FACTOR);
        RNA_def_property_int_sdna(prop, NULL, "custom1");
        RNA_def_property_range(prop, 0, 100);
        RNA_def_property_ui_text(prop, "Factor", "");
@@ -1140,7 +1140,7 @@ static void def_cmp_map_uv(StructRNA *srna)
 {
        PropertyRNA *prop;
 
-       prop = RNA_def_property(srna, "alpha", PROP_INT, PROP_PERCENTAGE);
+       prop = RNA_def_property(srna, "alpha", PROP_INT, PROP_FACTOR);
        RNA_def_property_int_sdna(prop, NULL, "custom1");
        RNA_def_property_range(prop, 0, 100);
        RNA_def_property_ui_text(prop, "Alpha", "");
index 3dfbfcccacff9240126df86836a21e763e140654..1f0d01ce784b4a247bd05bf8a598fabd2438087c 100644 (file)
@@ -617,6 +617,12 @@ static void rna_def_collision(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Collision from Stack", "Pick collision object from modifier stack (softbody only)");
        RNA_def_property_update(prop, 0, "rna_CollisionSettings_update");
        */
+
+       prop= RNA_def_property(srna, "absorption", PROP_FLOAT, PROP_FACTOR);
+       RNA_def_property_range(prop, 0.0f, 1.0f);
+       RNA_def_property_ui_range(prop, 0.0f, 1.0f, 1, 2);
+       RNA_def_property_ui_text(prop, "Absorption", "How much of effector force gets lost during collision with this object (in percent).");
+       RNA_def_property_update(prop, 0, "rna_CollisionSettings_update");
 }
 
 static void rna_def_field(BlenderRNA *brna)
index 37a1c9fb18690284e877de9e7c2acc6a30936eb0..8dd751cd26a32a6de3b193bb808f3b758b1e64be 100644 (file)
@@ -842,6 +842,7 @@ static void rna_def_property(BlenderRNA *brna)
                {PROP_DIRPATH, "DIRECTORY_PATH", 0, "Directory Path", ""},
                {PROP_UNSIGNED, "UNSIGNED", 0, "Unsigned Number", ""},
                {PROP_PERCENTAGE, "PERCENTAGE", 0, "Percentage", ""},
+               {PROP_FACTOR, "FACTOR", 0, "Factor", ""},
                {PROP_ANGLE, "ANGLE", 0, "Angle", ""},
                {PROP_TIME, "TIME", 0, "Time", ""},
                {PROP_DISTANCE, "DISTANCE", 0, "Distance", ""},
index 5def517f8b2ea8c7a4b6fb0c8b09b5c5812e25b9..cac639a64edb4fe505bc9f075c97450dfb1e7da5 100644 (file)
@@ -523,7 +523,7 @@ static void rna_def_tool_settings(BlenderRNA  *brna)
        RNA_def_property_enum_items(prop, mesh_select_mode_items);
        RNA_def_property_ui_text(prop, "Mesh Selection Mode", "Mesh selection and display mode.");
 
-       prop= RNA_def_property(srna, "vertex_group_weight", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "vertex_group_weight", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_float_sdna(prop, NULL, "vgroup_weight");
        RNA_def_property_ui_text(prop, "Vertex Group Weight", "Weight to assign in vertex groups.");
 }
index b9c5739e7ebb31443e535f9201839c77d4c6c41a..e9fcb299c5337d3c24af6aa3928509d456db0b3e 100644 (file)
@@ -316,7 +316,7 @@ static void rna_def_userdef_theme_ui_wcol_state(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Driven Selected", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 
-       prop= RNA_def_property(srna, "blend", PROP_FLOAT, PROP_PERCENTAGE);
+       prop= RNA_def_property(srna, "blend", PROP_FLOAT, PROP_FACTOR);
        RNA_def_property_ui_text(prop, "Blend", "");
        RNA_def_property_update(prop, 0, "rna_userdef_update");
 }