[Bf-blender-cvs] [fe6e5123c0a] temp-fracture-modifier-2.8: Merge branch 'fracture_modifier' into fracture_modifier-2.8

Martin Felke noreply at git.blender.org
Fri Aug 10 14:00:20 CEST 2018


Commit: fe6e5123c0a7de70f63493afc3289ddcdc62fd57
Author: Martin Felke
Date:   Mon Aug 6 21:37:11 2018 +0200
Branches: temp-fracture-modifier-2.8
https://developer.blender.org/rBfe6e5123c0a7de70f63493afc3289ddcdc62fd57

Merge branch 'fracture_modifier' into fracture_modifier-2.8

===================================================================



===================================================================

diff --cc CMakeLists.txt
index 708e5192c19,6d055fe4f0a..803d1e18d7e
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -230,7 -235,15 +230,8 @@@ option(WITH_FFTW3         "Enable FFTW
  option(WITH_BULLET        "Enable Bullet (Physics Engine)" ON)
  option(WITH_SYSTEM_BULLET "Use the systems bullet library (currently unsupported due to missing features in upstream!)" )
  mark_as_advanced(WITH_SYSTEM_BULLET)
 -option(WITH_GAMEENGINE    "Enable Game Engine" ${_init_GAMEENGINE})
 -if(APPLE)
 -	set(WITH_GAMEENGINE_DECKLINK OFF)
 -else()
 -	option(WITH_GAMEENGINE_DECKLINK "Support BlackMagicDesign DeckLink cards in the Game Engine" ON)
 -endif()
 -option(WITH_PLAYER        "Build Player" OFF)
  option(WITH_OPENCOLORIO   "Enable OpenColorIO color management" ${_init_OPENCOLORIO})
+ option(WITH_VORO    "Enable Voronoi Fracture based on Voro++" ON)
  
  # Compositor
  option(WITH_COMPOSITOR         "Enable the tile based nodal compositor" ON)
diff --cc intern/cycles/render/image.cpp
index 2865b0e5e97,595eb46319a..932c8fb2912
--- a/intern/cycles/render/image.cpp
+++ b/intern/cycles/render/image.cpp
@@@ -536,13 -537,12 +536,17 @@@ bool ImageManager::file_load_image(Imag
  		pixels = &pixels_storage[0];
  	}
  	else {
 -		pixels = (StorageType*)tex_img.resize(width, height, depth);
 +		thread_scoped_lock device_lock(device_mutex);
 +		pixels = (StorageType*)tex_img.alloc(width, height, depth);
 +	}
 +	if(pixels == NULL) {
 +		/* Could be that we've run out of memory. */
 +		return false;
  	}
+ 	if(pixels == NULL) {
+ 		/* Could be that we've run out of memory. */
+ 		return false;
+ 	}
  	bool cmyk = false;
  	const size_t num_pixels = ((size_t)width) * height * depth;
  	if(in) {
diff --cc intern/rigidbody/RBI_api.h
index eec94bcea50,a73faf4d87c..8727c375e93
--- a/intern/rigidbody/RBI_api.h
+++ b/intern/rigidbody/RBI_api.h
@@@ -268,8 -300,8 +300,9 @@@ rbConstraint *RB_constraint_new_slider(
  rbConstraint *RB_constraint_new_piston(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2);
  rbConstraint *RB_constraint_new_6dof(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2);
  rbConstraint *RB_constraint_new_6dof_spring(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2);
 +rbConstraint *RB_constraint_new_6dof_spring2(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2);
  rbConstraint *RB_constraint_new_motor(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2);
+ rbConstraint *RB_constraint_new_compound(rbRigidBody *rb1, rbRigidBody *rb2);
  
  /* ............ */
  
diff --cc intern/rigidbody/rb_bullet_api.cpp
index 6a50c5c93ee,a0f22a23b01..8d150ea22fb
--- a/intern/rigidbody/rb_bullet_api.cpp
+++ b/intern/rigidbody/rb_bullet_api.cpp
@@@ -955,24 -1968,17 +1968,31 @@@ rbConstraint *RB_constraint_new_6dof_sp
  	make_constraint_transforms(transform1, transform2, body1, body2, pivot, orn);
  	
  	btTypedConstraint *con = new btGeneric6DofSpringConstraint(*body1, *body2, transform1, transform2, true);
- 	
- 	return (rbConstraint *)con;
+ 
+ 	rbConstraint *rbc = new rbConstraint();
+ 	rbc->con = con;
+ 	con->setUserConstraintPtr(rbc);
+ 
+ 	btVector3 vec(pivot[0], pivot[1], pivot[2]);
+ 	rbc->pivot.setOrigin(vec);
+ 
+ 	return rbc;
  }
  
 +rbConstraint *RB_constraint_new_6dof_spring2(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2)
 +{
 +	btRigidBody *body1 = rb1->body;
 +	btRigidBody *body2 = rb2->body;
 +	btTransform transform1;
 +	btTransform transform2;
 +
 +	make_constraint_transforms(transform1, transform2, body1, body2, pivot, orn);
 +
 +	btTypedConstraint *con = new btGeneric6DofSpring2Constraint(*body1, *body2, transform1, transform2);
 +
 +	return (rbConstraint *)con;
 +}
 +
  rbConstraint *RB_constraint_new_motor(float pivot[3], float orn[4], rbRigidBody *rb1, rbRigidBody *rb2)
  {
  	btRigidBody *body1 = rb1->body;
diff --cc release/scripts/addons
index 371960484a3,2609a1018e4..9ca218bf425
--- a/release/scripts/addons
+++ b/release/scripts/addons
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit 371960484a38fc64e0a2635170a41a0d8ab2f6bd
 -Subproject commit 2609a1018e469dde627cfe2147ef993ee9c90f8f
++Subproject commit 9ca218bf4252869dda11b44029cdebfcbff9aad1
diff --cc release/scripts/addons_contrib
index 47470215783,a8515cfdfe9..15b25a42783
--- a/release/scripts/addons_contrib
+++ b/release/scripts/addons_contrib
@@@ -1,1 -1,1 +1,1 @@@
- Subproject commit 474702157831f1a58bb50f5240ab8b1b02b6ba37
 -Subproject commit a8515cfdfe9a98127b592f36fcbe51b7e23b969a
++Subproject commit 15b25a42783d1e516b5298d70b582fae2559ae17
diff --cc release/scripts/modules/bpy/path.py
index 6af78bbb4c0,0bfb14e4e0d..facbc61266c
--- a/release/scripts/modules/bpy/path.py
+++ b/release/scripts/modules/bpy/path.py
@@@ -225,17 -221,16 +225,26 @@@ def display_name(name)
      name = _clean_utf8(name)
      return name
  
+ def display_name_to_filepath(name):
+     """
+     Performs the reverse of display_name using literal versions of characters
+     which aren't supported in a filepath.
+     """
+     for disp_value, file_value in _display_name_literals.items():
+         name = name.replace(disp_value, file_value)
+     return name
+ 
  
 +def display_name_to_filepath(name):
 +    """
 +    Performs the reverse of display_name using literal versions of characters
 +    which aren't supported in a filepath.
 +    """
 +    for disp_value, file_value in _display_name_literals.items():
 +        name = name.replace(disp_value, file_value)
 +    return name
 +
 +
  def display_name_from_filepath(name):
      """
      Returns the path stripped of directory and extension,
diff --cc release/scripts/startup/bl_operators/rigidbody.py
index 6b76fb96b62,213e6a37670..1e71aae9e92
--- a/release/scripts/startup/bl_operators/rigidbody.py
+++ b/release/scripts/startup/bl_operators/rigidbody.py
@@@ -124,10 -132,13 +132,11 @@@ class BakeToKeyframes(Operator)
          frames_step = range(self.frame_start, self.frame_end + 1, self.step)
          frames_full = range(self.frame_start, self.frame_end + 1)
  
+         constraints = []
          # filter objects selection
          for obj in context.selected_objects:
 -            if (not obj.rigid_body or obj.rigid_body.type != 'ACTIVE' or self.has_fracture_modifier(obj, True)):
 -                obj.select = False
 -            if (obj.rigid_body_constraint):
 -               constraints.append(obj)
 +            if not obj.rigid_body or obj.rigid_body.type != 'ACTIVE':
 +                obj.select_set(action='DESELECT')
  
          objects = context.selected_objects
  
diff --cc release/scripts/startup/bl_ui/properties_data_modifier.py
index 7eeb45cc52e,4467d44ee0f..da618a10132
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@@ -168,11 -161,17 +168,15 @@@ class DATA_PT_modifiers(ModifierButtons
          col.label(text="Object:")
          col.prop(md, "object", text="")
  
 -        split = layout.split()
 -        split.column().label(text="Solver:")
 -        split.column().prop(md, "solver", text="")
 +        layout.prop(md, "double_threshold")
  
 -        if solver == 'BMESH':
 -            layout.prop(md, "double_threshold")
 +        if bpy.app.debug:
 +            layout.prop(md, "debug_options")
  
+             if bpy.app.debug:
+                 layout.prop(md, "debug_options")
+ 
+ 
      def BUILD(self, layout, ob, md):
          split = layout.split()
  
diff --cc release/scripts/startup/bl_ui/properties_physics_rigidbody.py
index d121b6a389d,127436d5d56..7e4982c0b0e
--- a/release/scripts/startup/bl_ui/properties_physics_rigidbody.py
+++ b/release/scripts/startup/bl_ui/properties_physics_rigidbody.py
@@@ -72,22 -72,20 +72,22 @@@ class PHYSICS_PT_rigid_body_collisions(
  
          ob = context.object
          rbo = ob.rigid_body
 +        layout.use_property_split = True
  
 -        row = layout.row()
 -        row.prop(rbo, "is_ghost")
 -        row.prop(rbo, "propagate_trigger")
 -        row = layout.row()
 -        row.prop(rbo, "constraint_dissolve")
 -        row.prop(rbo, "dynamic_trigger")
 -        row = layout.row()
 -        row.prop(rbo, "plastic_dissolve")
 -        row.prop(rbo, "stop_trigger")
 +        layout.prop(rbo, "collision_shape", text="Shape")
  
 -class PHYSICS_PT_rigid_body_collisions(PHYSICS_PT_rigidbody_panel, Panel):
 -    bl_label = "Rigid Body Collisions"
 -    COMPAT_ENGINES = {'BLENDER_RENDER'}
 +        if rbo.collision_shape in {'MESH', 'CONVEX_HULL'}:
 +            layout.prop(rbo, "mesh_source", text="Source")
 +
-         if rbo.collision_shape == 'MESH' and rbo.mesh_source == 'DEFORM':
++        if rbo.collision_shape == 'MESH' and rbo.mesh_source in {'DEFORM', 'FINAL', 'FINAL_SOLID'}:
 +            layout.prop(rbo, "use_deform", text="Deforming")
 +
 +
 +class PHYSICS_PT_rigid_body_collisions_surface(PHYSICS_PT_rigidbody_panel, Panel):
 +    bl_label = "Surface Response"
 +    bl_parent_id = 'PHYSICS_PT_rigid_body_collisions'
 +    bl_options = {'DEFAULT_CLOSED'}
 +    COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'}
  
      @classmethod
      def poll(cls, context):
@@@ -100,62 -98,35 +100,64 @@@
  
          ob = context.object
          rbo = ob.rigid_body
 +        layout.use_property_split = True
  
 -        layout.prop(rbo, "collision_shape", text="Shape")
 +        col = layout.column()
 +        col.prop(rbo, "friction")
 +        col.prop(rbo, "restitution", text="Bounciness")
  
 -        if rbo.collision_shape in {'MESH', 'CONVEX_HULL'}:
 -            layout.prop(rbo, "mesh_source", text="Source")
  
 -        if rbo.collision_shape == 'MESH' and rbo.mesh_source in {'DEFORM', 'FINAL', 'FINAL_SOLID'}:
 -            layout.prop(rbo, "use_deform", text="Deforming")
 +class PHYSICS_PT_rigid_body_collisions_sensitivity(PHYSICS_PT_rigidbody_panel, Panel):
 +    bl_label = "Sensitivity"
 +    bl_parent_id = 'PHYSICS_PT_rigid_body_collisions'
 +    bl_options = {'DEFAULT_CLOSED'}
 +    COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE', 'BLENDER_OPENGL'}
 +
 +    @classmethod
 +    def poll(cls, context):
 +        obj = context.object
 +        return (obj and obj.rigid_body and
 +                (context.

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list