synched with trunk at revision 36569
[blender.git] / source / blender / makesrna / intern / rna_object.c
index d1c1844..0b04f9f 100644 (file)
@@ -1,4 +1,4 @@
-/**
+/*
  * $Id$
  *
  * ***** BEGIN GPL LICENSE BLOCK *****
  * ***** END GPL LICENSE BLOCK *****
  */
 
+/** \file blender/makesrna/intern/rna_object.c
+ *  \ingroup RNA
+ */
+
+
 #include <stdio.h>
 #include <stdlib.h>
 
@@ -96,7 +101,7 @@ EnumPropertyItem metaelem_type_items[] = {
 #define OBTYPE_CU_CURVE {OB_CURVE, "CURVE", 0, "Curve", ""}
 #define OBTYPE_CU_SURF {OB_SURF, "SURFACE", 0, "Surface", ""}
 #define OBTYPE_CU_FONT {OB_FONT, "FONT", 0, "Font", ""}
-    
+
 EnumPropertyItem object_type_items[] = {
        {OB_MESH, "MESH", 0, "Mesh", ""},
        OBTYPE_CU_CURVE,
@@ -1060,6 +1065,9 @@ static PointerRNA rna_Object_collision_get(PointerRNA *ptr)
 {
        Object *ob= (Object*)ptr->id.data;
 
+       if(ob->type != OB_MESH)
+               return PointerRNA_NULL;
+
        /* weak */
        if(!ob->pd)
                ob->pd= object_add_collision_fields(0);
@@ -1094,8 +1102,9 @@ static void rna_Object_constraints_remove(Object *object, ReportList *reports, b
        }
 
        remove_constraint(&object->constraints, con);
+       ED_object_constraint_update(object);
        ED_object_constraint_set_active(object, NULL);
-       WM_main_add_notifier(NC_OBJECT|ND_CONSTRAINT, object);
+       WM_main_add_notifier(NC_OBJECT|ND_CONSTRAINT|NA_REMOVED, object);
 }
 
 static ModifierData *rna_Object_modifier_new(Object *object, bContext *C, ReportList *reports, const char *name, int type)
@@ -1306,7 +1315,7 @@ static void rna_def_object_game_settings(BlenderRNA *brna)
        PropertyRNA *prop;
 
        static EnumPropertyItem body_type_items[] = {
-               {OB_BODY_TYPE_NO_COLLISION, "NO_COLLISION", 0, "No Collision", "Disable colision for this object"},
+               {OB_BODY_TYPE_NO_COLLISION, "NO_COLLISION", 0, "No Collision", "Disable collision for this object"},
                {OB_BODY_TYPE_STATIC, "STATIC", 0, "Static", "Stationary object"},
                {OB_BODY_TYPE_DYNAMIC, "DYNAMIC", 0, "Dynamic", "Linear physics"},
                {OB_BODY_TYPE_RIGID, "RIGID_BODY", 0, "Rigid Body", "Linear and angular physics"},
@@ -1437,9 +1446,9 @@ static void rna_def_object_game_settings(BlenderRNA *brna)
        RNA_def_property_ui_text(prop, "Lock Z Rotation Axis", "Disable simulation of angular  motion along the Z axis");       
        
 
-       prop= RNA_def_property(srna, "use_material_physics", PROP_BOOLEAN, PROP_NONE);
+       prop= RNA_def_property(srna, "use_material_physics_fh", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "gameflag", OB_DO_FH);
-       RNA_def_property_ui_text(prop, "Use Material Physics", "Use physics settings in materials");
+       RNA_def_property_ui_text(prop, "Use Material Force Field", "React to force field physics settings in materials");
 
        prop= RNA_def_property(srna, "use_rotate_from_normal", PROP_BOOLEAN, PROP_NONE);
        RNA_def_property_boolean_sdna(prop, NULL, "gameflag", OB_ROT_FH);
@@ -1834,13 +1843,13 @@ static void rna_def_object(BlenderRNA *brna)
        prop= RNA_def_property(srna, "track_axis", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "trackflag");
        RNA_def_property_enum_items(prop, track_items);
-       RNA_def_property_ui_text(prop, "Track Axis", "Axis that points in 'forward' direction");
+       RNA_def_property_ui_text(prop, "Track Axis", "Axis that points in 'forward' direction (applies to DupliFrame when parent 'Follow' is enabled)");
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
 
        prop= RNA_def_property(srna, "up_axis", PROP_ENUM, PROP_NONE);
        RNA_def_property_enum_sdna(prop, NULL, "upflag");
        RNA_def_property_enum_items(prop, up_items);
-       RNA_def_property_ui_text(prop, "Up Axis", "Axis that points in the upward direction");
+       RNA_def_property_ui_text(prop, "Up Axis", "Axis that points in the upward direction (applies to DupliFrame when parent 'Follow' is enabled)");
        RNA_def_property_update(prop, NC_OBJECT|ND_DRAW, "rna_Object_internal_update");
        
        /* proxy */
@@ -1854,7 +1863,7 @@ static void rna_def_object(BlenderRNA *brna)
        prop= RNA_def_property(srna, "material_slots", PROP_COLLECTION, PROP_NONE);
        RNA_def_property_collection_sdna(prop, NULL, "mat", "totcol");
        RNA_def_property_struct_type(prop, "MaterialSlot");
-       RNA_def_property_collection_funcs(prop, NULL, NULL, NULL, "rna_iterator_array_get", 0, 0, 0); /* don't dereference pointer! */
+       RNA_def_property_collection_funcs(prop, NULL, NULL, NULL, "rna_iterator_array_get", NULL, NULL, NULL); /* don't dereference pointer! */
        RNA_def_property_ui_text(prop, "Material Slots", "Material slots in the object");
 
        prop= RNA_def_property(srna, "active_material", PROP_POINTER, PROP_NONE);
@@ -2270,6 +2279,7 @@ static void rna_def_object(BlenderRNA *brna)
        /* pose */
        prop= RNA_def_property(srna, "pose_library", PROP_POINTER, PROP_NONE);
        RNA_def_property_pointer_sdna(prop, NULL, "poselib");
+       RNA_def_property_flag(prop, PROP_EDITABLE);
        RNA_def_property_struct_type(prop, "Action");
        RNA_def_property_ui_text(prop, "Pose Library", "Action used as a pose library for armatures");