Revision: 21200
          
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21200
Author:   ben2610
Date:     2009-06-27 19:14:14 +0200 (Sat, 27 Jun 2009)

Log Message:
-----------
svn merge -r 21181:21196 
https://svn.blender.org/svnroot/bf-blender/branches/blender2.5/blender

Modified Paths:
--------------
    branches/itasc/release/ui/buttons_object_constraint.py
    branches/itasc/release/ui/buttons_particle.py
    branches/itasc/release/ui/buttons_physic_cloth.py
    branches/itasc/source/blender/blenkernel/BKE_cloth.h
    branches/itasc/source/blender/blenkernel/BKE_particle.h
    branches/itasc/source/blender/blenkernel/BKE_pointcache.h
    branches/itasc/source/blender/blenkernel/intern/cloth.c
    branches/itasc/source/blender/blenkernel/intern/depsgraph.c
    branches/itasc/source/blender/blenkernel/intern/implicit.c
    branches/itasc/source/blender/blenkernel/intern/modifier.c
    branches/itasc/source/blender/blenkernel/intern/particle.c
    branches/itasc/source/blender/blenkernel/intern/particle_system.c
    branches/itasc/source/blender/blenkernel/intern/pointcache.c
    branches/itasc/source/blender/blenloader/intern/readfile.c
    branches/itasc/source/blender/blenloader/intern/writefile.c
    branches/itasc/source/blender/editors/interface/interface.c
    branches/itasc/source/blender/editors/interface/interface_panel.c
    branches/itasc/source/blender/editors/mesh/editmesh_add.c
    branches/itasc/source/blender/editors/object/object_edit.c
    branches/itasc/source/blender/editors/physics/ed_pointcache.c
    branches/itasc/source/blender/editors/space_buttons/buttons_header.c
    branches/itasc/source/blender/editors/space_buttons/buttons_intern.h
    branches/itasc/source/blender/editors/space_buttons/buttons_ops.c
    branches/itasc/source/blender/editors/space_buttons/space_buttons.c
    branches/itasc/source/blender/editors/space_view3d/view3d_toolbar.c
    branches/itasc/source/blender/editors/transform/transform_conversions.c
    branches/itasc/source/blender/makesdna/DNA_object_force.h
    branches/itasc/source/blender/makesrna/intern/rna_cloth.c
    branches/itasc/source/blender/makesrna/intern/rna_object.c
    branches/itasc/source/blender/makesrna/intern/rna_object_force.c
    branches/itasc/source/blender/makesrna/intern/rna_particle.c
    branches/itasc/source/blender/render/intern/source/pipeline.c
    branches/itasc/source/blender/windowmanager/intern/wm_event_system.c
    branches/itasc/source/blender/windowmanager/intern/wm_files.c

Modified: branches/itasc/release/ui/buttons_object_constraint.py
===================================================================
--- branches/itasc/release/ui/buttons_object_constraint.py      2009-06-27 
17:10:19 UTC (rev 21199)
+++ branches/itasc/release/ui/buttons_object_constraint.py      2009-06-27 
17:14:14 UTC (rev 21200)
@@ -529,20 +529,20 @@
 class BONE_PT_constraints(ConstraintButtonsPanel):
        __idname__ = "BONE_PT_constraints"
        __label__ = "Bone Constraints"
-       __context__ = "constraint"
+       __context__ = "bone"
 
        def poll(self, context):
                ob = context.object
-               return (ob and ob.type == "ARMATURE")
+               return (ob and ob.type == "ARMATURE" and context.bone)
                
        def draw(self, context):
                ob = context.object
-               pchan = ob.pose.pose_channels[0] # XXX
+               pchan = ob.pose.pose_channels[context.bone.name]
                layout = self.layout
 
-               #row = layout.row()
-               #row.item_menu_enumO("BONE_OT_constraint_add", "type")
-               #row.itemL();
+               row = layout.row()
+               row.item_menu_enumO("OBJECT_OT_constraint_add", "type")
+               row.itemL();
 
                for con in pchan.constraints:
                        self.draw_constraint(con)

Modified: branches/itasc/release/ui/buttons_particle.py
===================================================================
--- branches/itasc/release/ui/buttons_particle.py       2009-06-27 17:10:19 UTC 
(rev 21199)
+++ branches/itasc/release/ui/buttons_particle.py       2009-06-27 17:14:14 UTC 
(rev 21200)
@@ -7,6 +7,7 @@
 def particle_panel_poll(context):
        psys = context.particle_system
        if psys==None:  return False
+       if psys.settings==None:  return False
        return psys.settings.type in ('EMITTER', 'REACTOR', 'HAIR')
 
 class ParticleButtonsPanel(bpy.types.Panel):
@@ -29,42 +30,51 @@
                ob = context.object
                psys = context.particle_system
 
-               split = layout.split(percentage=0.65)
+               if ob:
+                       row = layout.row()
 
-               if psys:
-                       split.template_ID(psys, "settings")
+                       row.template_list(ob, "particle_systems", 
"active_particle_system_index")
 
+                       col = row.column(align=True)
+                       col.itemO("OBJECT_OT_particle_system_slot_add", 
icon="ICON_ZOOMIN", text="")
+                       col.itemO("OBJECT_OT_particle_system_slot_remove", 
icon="ICON_ZOOMOUT", text="")
+
                if psys:
+                       split = layout.split(percentage=0.65)
+                       
+                       split.template_ID(psys, "settings", 
new="PARTICLE_OT_new")
+                       
                        #row = layout.row()
                        #row.itemL(text="Viewport")
                        #row.itemL(text="Render")
                        
                        part = psys.settings
-                       ptype = psys.settings.type
                        
-                       if ptype not in ('EMITTER', 'REACTOR', 'HAIR'):
-                               layout.itemL(text="No settings for fluid 
particles")
-                               return
+                       if part:
+                               ptype = psys.settings.type
+                               if ptype not in ('EMITTER', 'REACTOR', 'HAIR'):
+                                       layout.itemL(text="No settings for 
fluid particles")
+                                       return
+                                       
+                               split = layout.split(percentage=0.65)
                                
-                       split = layout.split(percentage=0.65)
-                       
-                       split.enabled = particle_panel_enabled(psys)
-                       split.itemR(part, "type")
-                       split.itemR(psys, "seed")
-                       
-                       split = layout.split(percentage=0.65)
-                       if part.type=='HAIR':
-                               if psys.editable==True:
-                                       split.itemO("PARTICLE_OT_editable_set", 
text="Free Edit")
-                               else:
-                                       split.itemO("PARTICLE_OT_editable_set", 
text="Make Editable")
-                               row = split.row()
-                               row.enabled = particle_panel_enabled(psys)
-                               row.itemR(part, "hair_step")
-                       elif part.type=='REACTOR':
                                split.enabled = particle_panel_enabled(psys)
-                               split.itemR(psys, "reactor_target_object")
-                               split.itemR(psys, 
"reactor_target_particle_system", text="Particle System")
+                               split.itemR(part, "type")
+                               split.itemR(psys, "seed")
+                               
+                               split = layout.split(percentage=0.65)
+                               if part.type=='HAIR':
+                                       if psys.editable==True:
+                                               
split.itemO("PARTICLE_OT_editable_set", text="Free Edit")
+                                       else:
+                                               
split.itemO("PARTICLE_OT_editable_set", text="Make Editable")
+                                       row = split.row()
+                                       row.enabled = 
particle_panel_enabled(psys)
+                                       row.itemR(part, "hair_step")
+                               elif part.type=='REACTOR':
+                                       split.enabled = 
particle_panel_enabled(psys)
+                                       split.itemR(psys, 
"reactor_target_object")
+                                       split.itemR(psys, 
"reactor_target_particle_system", text="Particle System")
                
 class PARTICLE_PT_emission(ParticleButtonsPanel):
        __idname__= "PARTICLE_PT_emission"
@@ -120,6 +130,7 @@
        def poll(self, context):
                psys = context.particle_system
                if psys==None:  return False
+               if psys.settings==None:  return False
                return psys.settings.type in ('EMITTER', 'REACTOR')
 
        def draw(self, context):
@@ -130,11 +141,7 @@
                cache = psys.point_cache
                
                row = layout.row()
-               row.itemR(cache, "name", text="")
-               if cache.outdated:
-                       row.itemL(text="Cache is outdated.")
-               else:
-                       row.itemL(text="")
+               row.itemR(cache, "name")
                
                row = layout.row()
                
@@ -142,19 +149,30 @@
                        row.itemO("PTCACHE_OT_free_bake_particle_system", 
text="Free Bake")
                else:
                        row.item_booleanO("PTCACHE_OT_cache_particle_system", 
"bake", True, text="Bake")
-                       
+               
+               subrow = row.row()
+               subrow.enabled = (cache.frames_skipped or cache.outdated) and 
particle_panel_enabled(psys)
+               subrow.itemO("PTCACHE_OT_cache_particle_system", 
text="Calculate to Current Frame")
+               
                row = layout.row()
                row.enabled = particle_panel_enabled(psys)
                row.itemO("PTCACHE_OT_bake_from_particles_cache", text="Current 
Cache to Bake")
-               if cache.autocache == 0:
-                       row.itemO("PTCACHE_OT_cache_particle_system", 
text="Cache to Current Frame")
+               row.itemR(cache, "step");
        
                row = layout.row()
                row.enabled = particle_panel_enabled(psys)
-               #row.itemR(cache, "autocache")
+               row.itemR(cache, "quick_cache")
                row.itemR(cache, "disk_cache")
-               row.itemL(text=cache.info)
                
+               layout.itemL(text=cache.info)
+               
+               layout.itemS()
+               
+               row = layout.row()
+               row.item_booleanO("PTCACHE_OT_bake_all", "bake", True, 
text="Bake All Dynamics")
+               row.itemO("PTCACHE_OT_free_bake_all", text="Free All Bakes")
+               layout.itemO("PTCACHE_OT_bake_all", text="Update All Dynamics 
to current frame")
+               
                # for particles these are figured out automatically
                #row.itemR(cache, "start_frame")
                #row.itemR(cache, "end_frame")
@@ -280,7 +298,10 @@
        __label__ = "Render"
        
        def poll(self, context):
-               return (context.particle_system != None)
+               psys = context.particle_system
+               if psys==None: return False
+               if psys.settings==None: return False
+               return True;
                
        def draw(self, context):
                layout = self.layout
@@ -414,7 +435,10 @@
        __default_closed__ = True
        
        def poll(self, context):
-               return (context.particle_system != None)
+               psys = context.particle_system
+               if psys==None: return False
+               if psys.settings==None: return False
+               return True;
        
        def draw(self, context):
                layout = self.layout

Modified: branches/itasc/release/ui/buttons_physic_cloth.py
===================================================================
--- branches/itasc/release/ui/buttons_physic_cloth.py   2009-06-27 17:10:19 UTC 
(rev 21199)
+++ branches/itasc/release/ui/buttons_physic_cloth.py   2009-06-27 17:14:14 UTC 
(rev 21200)
@@ -43,7 +43,54 @@
                        col.itemR(cloth, "goal_spring", text="Stiffness")
                        col.itemR(cloth, "goal_friction", text="Friction")
                """
+
+class PHYSICS_PT_cloth_cache(PhysicButtonsPanel):
+       __idname__= "PHYSICS_PT_cloth_cache"
+       __label__ = "Cache"
+       __default_closed__ = True
+
+       def draw(self, context):
+               layout = self.layout
+
+               cache = context.cloth.point_cache
+               
+               row = layout.row()
+               row.itemR(cache, "name")
+               
+               row = layout.row()
+               row.itemR(cache, "start_frame")
+               row.itemR(cache, "end_frame")
+               
+               row = layout.row()
+               
+               if cache.baked == True:
+                       row.itemO("PTCACHE_OT_free_bake_cloth", text="Free 
Bake")
+               else:
+                       row.item_booleanO("PTCACHE_OT_cache_cloth", "bake", 
True, text="Bake")
+               
+               subrow = row.row()
+               subrow.enabled = cache.frames_skipped or cache.outdated
+               subrow.itemO("PTCACHE_OT_cache_cloth", text="Calculate to 
Current Frame")
+                       
+               row = layout.row()
+               #row.enabled = particle_panel_enabled(psys)
+               row.itemO("PTCACHE_OT_bake_from_cloth_cache", text="Current 
Cache to Bake")
+               row.itemR(cache, "step");
        
+               row = layout.row()
+               #row.enabled = particle_panel_enabled(psys)
+               row.itemR(cache, "quick_cache")
+               row.itemR(cache, "disk_cache")
+               
+               layout.itemL(text=cache.info)
+               
+               layout.itemS()
+               
+               row = layout.row()
+               row.itemO("PTCACHE_OT_bake_all", "bake", True, text="Bake All 
Dynamics")
+               row.itemO("PTCACHE_OT_free_bake_all", text="Free All Bakes")
+               layout.itemO("PTCACHE_OT_bake_all", text="Update All Dynamics 
to current frame")
+               
 class Physic_PT_cloth_collision(PhysicButtonsPanel):
        __idname__ = "Physic_PT_clothcollision"
        __label__ = "Cloth Collision"
@@ -102,5 +149,6 @@
                sub.itemR(cloth, "bending_stiffness_max", text="Max")
                
 bpy.types.register(Physic_PT_cloth)
+bpy.types.register(PHYSICS_PT_cloth_cache)
 bpy.types.register(Physic_PT_cloth_collision)
 bpy.types.register(Physic_PT_cloth_stiffness)

Modified: branches/itasc/source/blender/blenkernel/BKE_cloth.h
===================================================================
--- branches/itasc/source/blender/blenkernel/BKE_cloth.h        2009-06-27 
17:10:19 UTC (rev 21199)
+++ branches/itasc/source/blender/blenkernel/BKE_cloth.h        2009-06-27 
17:14:14 UTC (rev 21200)
@@ -46,6 +46,7 @@
 #include "DNA_meshdata_types.h"
 #include "DNA_modifier_types.h"
 #include "DNA_object_types.h"
+#include "DNA_scene_types.h"
 
 #include "BKE_collision.h"
 
@@ -245,8 +246,8 @@
 void bvhselftree_update_from_cloth ( ClothModifierData *clmd, int moving );
 
 // needed for editmesh.c
-void cloth_write_cache ( Object *ob, ClothModifierData *clmd, float framenr );
-int cloth_read_cache ( Object *ob, ClothModifierData *clmd, float framenr );
+void cloth_write_cache( Object *ob, ClothModifierData *clmd, int framenr );
+int cloth_read_cache( Scene *scene, Object *ob, ClothModifierData *clmd, float 
framenr, int *old_framenr );
 
 // needed for button_object.c
 void cloth_clear_cache ( Object *ob, ClothModifierData *clmd, float framenr );

Modified: branches/itasc/source/blender/blenkernel/BKE_particle.h
===================================================================
--- branches/itasc/source/blender/blenkernel/BKE_particle.h     2009-06-27 
17:10:19 UTC (rev 21199)
+++ branches/itasc/source/blender/blenkernel/BKE_particle.h     2009-06-27 
17:14:14 UTC (rev 21200)
@@ -217,6 +217,7 @@
 
 struct ParticleSystem *psys_get_current(struct Object *ob);
 short psys_get_current_num(struct Object *ob);
+void psys_set_current_num(Object *ob, int index);
 struct Object *psys_find_object(struct Scene *scene, struct ParticleSystem 
*psys);

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to