[Bf-blender-cvs] [4c52ad0] fracture_modifier: Merge remote-tracking branch 'refs/remotes/origin/master' into fracture_modifier

Martin Felke noreply at git.blender.org
Thu Aug 6 18:01:57 CEST 2015


Commit: 4c52ad04b1d57c171833111384d90746ea0a1476
Author: Martin Felke
Date:   Thu Aug 6 14:22:23 2015 +0200
Branches: fracture_modifier
https://developer.blender.org/rB4c52ad04b1d57c171833111384d90746ea0a1476

Merge remote-tracking branch 'refs/remotes/origin/master' into fracture_modifier

Conflicts:
	CMakeLists.txt
	build_files/cmake/macros.cmake
	intern/cycles/kernel/geom/geom_triangle_intersect.h
	intern/cycles/kernel/kernel_shader.h
	intern/cycles/kernel/svm/svm_closure.h
	release/scripts/modules/bpy_extras/io_utils.py
	release/scripts/startup/bl_ui/properties_data_modifier.py
	release/scripts/startup/bl_ui/space_view3d.py
	release/scripts/startup/bl_ui/space_view3d_toolbar.py
	source/blender/blenkernel/BKE_blender.h
	source/blender/blenkernel/BKE_deform.h
	source/blender/blenkernel/BKE_mesh_mapping.h
	source/blender/blenkernel/BKE_object.h
	source/blender/blenkernel/BKE_rigidbody.h
	source/blender/blenkernel/CMakeLists.txt
	source/blender/blenkernel/SConscript
	source/blender/blenkernel/intern/cdderivedmesh.c
	source/blender/blenkernel/intern/object.c
	source/blender/blenkernel/intern/rigidbody.c
	source/blender/blenloader/intern/readfile.c
	source/blender/blenloader/intern/versioning_270.c
	source/blender/blenloader/intern/writefile.c
	source/blender/editors/animation/keyframes_general.c
	source/blender/editors/armature/armature_edit.c
	source/blender/editors/gpencil/gpencil_ops.c
	source/blender/editors/object/object_intern.h
	source/blender/editors/object/object_shapekey.c
	source/blender/editors/space_action/action_edit.c
	source/blender/editors/space_view3d/view3d_draw.c
	source/blender/makesdna/DNA_modifier_types.h
	source/blender/makesrna/intern/rna_modifier.c
	source/blender/modifiers/MOD_modifiertypes.h
	source/blender/modifiers/intern/MOD_fluidsim.c
	source/blender/modifiers/intern/MOD_normal_edit.c
	source/blender/modifiers/intern/MOD_util.c
	source/gameengine/Converter/KX_BlenderSceneConverter.cpp

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



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

diff --cc CMakeLists.txt
index c715a70,198f6a3..5c2d22a
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@@ -221,9 -223,16 +223,17 @@@ mark_as_advanced(WITH_SYSTEM_BULLET
  option(WITH_GAMEENGINE    "Enable Game Engine" ${_init_GAMEENGINE})
  option(WITH_PLAYER        "Build Player" OFF)
  option(WITH_OPENCOLORIO   "Enable OpenColorIO color management" ${_init_OPENCOLORIO})
- option(WITH_COMPOSITOR    "Enable the tile based nodal compositor" ON)
 +option(WITH_VORO    "Enable Voronoi Fracture based on Voro++" ON)
  
+ # Compositor
+ option(WITH_COMPOSITOR         "Enable the tile based nodal compositor" ON)
+ option(WITH_COMPOSITOR_WERROR  "Treat warnings as errors in compositor code" OFF)
+ mark_as_advanced(WITH_COMPOSITOR_WERROR)
+ 
+ option(WITH_OPENSUBDIV    "Enable OpenSubdiv for surface subdivision" OFF)
+ option(WITH_SUBSURF_WERROR  "Treat warnings as errors in subsurf code" OFF)
+ mark_as_advanced(WITH_COMPOSITOR_WERROR)
+ 
  # GHOST Windowing Library Options
  option(WITH_GHOST_DEBUG   "Enable debugging output for the GHOST library" OFF)
  mark_as_advanced(WITH_GHOST_DEBUG)
diff --cc build_files/cmake/macros.cmake
index f736bcc,e7fc0ec..77c6d81
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@@ -649,8 -687,8 +687,12 @@@ function(SETUP_BLENDER_SORTED_LIBS
  		list_insert_after(BLENDER_SORTED_LIBS "ge_logic_ngnetwork" "extern_bullet")
  	endif()
  
 +	if(WITH_VORO)
 +		list(APPEND BLENDER_SORTED_LIBS extern_voro)
++		
+ 	if(WITH_OPENSUBDIV)
+ 		list(APPEND BLENDER_SORTED_LIBS bf_intern_opensubdiv)
++		
  	endif()
  
  	foreach(SORTLIB ${BLENDER_SORTED_LIBS})
diff --cc source/blender/blenkernel/BKE_mesh_mapping.h
index 9d78895,c8a1700..633d73e
--- a/source/blender/blenkernel/BKE_mesh_mapping.h
+++ b/source/blender/blenkernel/BKE_mesh_mapping.h
@@@ -31,10 -31,12 +31,11 @@@
   *  \ingroup bke
   */
  
 -struct MVert;
 -struct MEdge;
  struct MPoly;
 +struct MEdge;
  struct MLoop;
  struct MLoopUV;
+ struct MLoopTri;
  
  /* map from uv vertex to face (for select linked, stitch, uv suburf) */
  
diff --cc source/blender/blenkernel/BKE_rigidbody.h
index aa01595,a30ce6c..6fe4de1
--- a/source/blender/blenkernel/BKE_rigidbody.h
+++ b/source/blender/blenkernel/BKE_rigidbody.h
@@@ -73,18 -67,9 +73,18 @@@ void BKE_rigidbody_world_groups_relink(
  
  /* 'validate' (i.e. make new or replace old) Physics-Engine objects */
  void BKE_rigidbody_validate_sim_world(struct Scene *scene, struct RigidBodyWorld *rbw, bool rebuild);
 +void BKE_rigidbody_validate_sim_object(struct RigidBodyWorld *rbw, struct Object *ob, short rebuild);
 +void BKE_rigidbody_validate_sim_shape(struct Object *ob, short rebuild);
 +void BKE_rigidbody_validate_sim_constraint(struct RigidBodyWorld *rbw, struct Object *ob, short rebuild);
 +void BKE_rigidbody_validate_sim_shard_constraint(struct RigidBodyWorld *rbw, struct RigidBodyShardCon *rbsc, short rebuild);
 +
 +void BKE_rigidbody_validate_sim_shard(struct RigidBodyWorld *rbw, struct MeshIsland *mi, struct Object *ob, short rebuild, int transfer_speeds);
 +void BKE_rigidbody_validate_sim_shard_shape(struct MeshIsland *mi, struct Object *ob, short rebuild);
 +
 +/* move the islands of the visible mesh according to shard rigidbody movement */
 +void BKE_rigidbody_update_cell(struct MeshIsland *mi, struct Object* ob, float loc[3], float rot[4], struct FractureModifierData *rmd, int frame);
  
- void BKE_rigidbody_calc_center_of_mass(struct Object *ob, float r_com[3]);
 -void BKE_rigidbody_calc_volume(struct Object *ob, float *r_vol);
+ void BKE_rigidbody_calc_center_of_mass(struct Object *ob, float r_center[3]);
  
  /* -------------- */
  /* Utilities */
diff --cc source/blender/blenkernel/CMakeLists.txt
index 968ba5f,5a3fb49..3de59f5
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@@ -284,7 -289,10 +293,9 @@@ set(SR
  	nla_private.h
  	tracking_private.h
  	intern/CCGSubSurf.h
+ 	intern/CCGSubSurf_inline.h
+ 	intern/CCGSubSurf_intern.h
  	intern/pbvh_intern.h
 -	intern/data_transfer_intern.h
  )
  
  if(WITH_BINRELOC)
@@@ -469,12 -499,22 +502,28 @@@ if(WITH_FREESTYLE
  	add_definitions(-DWITH_FREESTYLE)
  endif()
  
 +if(WITH_VORO)
 +	add_definitions(-DWITH_VORO)
 +	list(APPEND INC
 +		../../../extern/voro++
 +		../../../extern/carve
 +	)
+ if(WITH_OPENSUBDIV)
+ 	add_definitions(-DWITH_OPENSUBDIV)
+ 	list(APPEND INC_SYS
+ 		../../../intern/opensubdiv
+ 		${OPENSUBDIV_INCLUDE_DIRS}
+ 	)
+ 	if(WITH_SUBSURF_WERROR)
+ 		if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_C_COMPILER_ID MATCHES "Clang")
+ 			set_source_files_properties(intern/CCGSubSurf.c
+ 			                            intern/CCGSubSurf_legacy.c
+ 			                            intern/CCGSubSurf_opensubdiv.c
+ 			                            intern/CCGSubSurf_opensubdiv_converter.c
+ 			                            intern/CCGSubSurf_util.c
+ 			                            PROPERTIES COMPILE_FLAGS -Werror)
+ 		endif()
+ 	endif()
  endif()
  
  ## Warnings as errors, this is too strict!
diff --cc source/blender/blenkernel/SConscript
index d51d446,20ac329..183bb80
--- a/source/blender/blenkernel/SConscript
+++ b/source/blender/blenkernel/SConscript
@@@ -167,10 -171,11 +171,15 @@@ if env['WITH_BF_INTERNATIONAL']
  if env['WITH_BF_FREESTYLE']:
      defs.append('WITH_FREESTYLE')
  
 +if env['WITH_BF_VORONOI']:
 +    incs += ' #/extern/voro++'
 +    defs.append('WITH_VORO')
 +
+ if env['WITH_BF_OPENSUBDIV']:
+     defs.append('WITH_OPENSUBDIV')
+     incs += ' #intern/opensubdiv'
+     incs += ' ' + env['BF_OPENSUBDIV_INC']
+ 
  if env['OURPLATFORM'] in ('win32-vc', 'win32-mingw', 'linuxcross', 'win64-vc', 'win64-mingw'):
      incs += ' ' + env['BF_PTHREADS_INC']
      incs += ' ../../../intern/utfconv'
diff --cc source/blender/blenkernel/intern/DerivedMesh.c
index eae5e80,25f409b..faaabb7
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@@ -1449,11 -1670,13 +1670,11 @@@ static void add_shapekey_layers(Derived
   */
  static void dm_ensure_display_normals(DerivedMesh *dm)
  {
 -	/* Note: dm *may* have a poly CD_NORMAL layer (generated by a modifier needing poly normals e.g.).
 -	 *       We do not use it here, though. And it should be tagged as temp!
 -	 */
 -	/* BLI_assert((CustomData_has_layer(&dm->polyData, CD_NORMAL) == false)); */
 +	/* this is for final output only, up until now this layer should be missing */
 +	BLI_assert(CustomData_has_layer(&dm->polyData, CD_NORMAL) == false);
  
  	if ((dm->type == DM_TYPE_CDDM) &&
- 	    ((dm->dirty & DM_DIRTY_NORMALS) || CustomData_has_layer(&dm->faceData, CD_NORMAL) == false))
+ 	    ((dm->dirty & DM_DIRTY_NORMALS) || CustomData_has_layer(&dm->polyData, CD_NORMAL) == false))
  	{
  		/* if normals are dirty we want to calculate vertex normals too */
  		CDDM_calc_normals_mapping_ex(dm, (dm->dirty & DM_DIRTY_NORMALS) ? false : true);
diff --cc source/blender/blenkernel/intern/object.c
index d446e1b,647aadf..4ef0731
--- a/source/blender/blenkernel/intern/object.c
+++ b/source/blender/blenkernel/intern/object.c
@@@ -1028,42 -1060,10 +1058,42 @@@ Object *BKE_object_add_named(Main *bmai
  {
  	Object *ob;
  	Base *base;
 +	char name[MAX_ID_NAME];
  
 +	if (custname) {
 +		BLI_strncpy(name, custname, sizeof(name));
 +		MEM_freeN(custname);
 +	}
 +	else {
 +		BLI_strncpy(name, get_obdata_defname(type), sizeof(name));
 +	}
 +
 +	ob = BKE_object_add_only_object(bmain, type, name);
 +
 +	ob->data = BKE_object_obdata_add_from_type(bmain, type);
 +
 +	ob->lay = scene->lay;
 +
 +	base = BKE_scene_base_add(scene, ob);
 +	BKE_scene_base_deselect_all(scene);
 +	BKE_scene_base_select(scene, base);
 +	DAG_id_tag_update_ex(bmain, &ob->id, OB_RECALC_OB | OB_RECALC_DATA | OB_RECALC_TIME);
 +
 +	return ob;
 +}
 +
 +/* general add: to scene, with layer from area and default name */
 +/* creates minimum required data, but without vertices etc. */
 +Object *BKE_object_add(Main *bmain, Scene *scene, int type)
 +{
 +	Object *ob;
 +	Base *base;
 +	char name[MAX_ID_NAME];
 +
 +	BLI_strncpy(name, get_obdata_defname(type), sizeof(name));
  	ob = BKE_object_add_only_object(bmain, type, name);
  
- 	ob->data = BKE_object_obdata_add_from_type(bmain, type);
+ 	ob->data = BKE_object_obdata_add_from_type(bmain, type, name);
  
  	ob->lay = scene->lay;
  	
@@@ -3659,9 -3605,8 +3635,9 @@@ int BKE_object_is_deform_modified(Scen
  	     md && (flag != (eModifierMode_Render | eModifierMode_Realtime));
  	     md = md->next)
  	{
- 		ModifierTypeInfo *mti = modifierType_getInfo(md->type);
+ 		const ModifierTypeInfo *mti = modifierType_getInfo(md->type);
  		bool can_deform = mti->type == eModifierTypeType_OnlyDeform ||
 +		                  md->type == eModifierType_Fracture ||
  		                  is_modifier_animated;
  
  		if (!can_deform) {
diff --cc source/blender/blenkernel/intern/rigidbody.c
index caf2369,476b9a2..152c310
--- a/source/blender/blenkernel/intern/rigidbody.c
+++ b/source/blender/blenkernel/intern/rigidbody.c
@@@ -58,10 -54,9 +58,11 @@@
  #include "DNA_scene_types.h"
  
  #include "BKE_cdderivedmesh.h"
+ #include "BKE_depsgraph.h"
  #include "BKE_effect.h"
 +#include "BKE_fracture.h"
  #include "BKE_global.h"
 +#include "BKE_group.h"
  #include "BKE_library.h"
  #include "BKE_mesh.h"
  #include "BKE_object.h"
@@@ -743,18 -271,15 +744,15 @@@ static rbCollisionShape *rigidbody_get_
  {
  	rbCollisionShape *shape = NULL;
  
 -	if (ob->type == OB_MESH) {
 +	if (mi && mi->physics_mesh) {
  		DerivedMesh *dm = NULL;
  		MVert *mvert;
- 		MFace *mface;
+ 		const MLoopTri *looptri;
  		int totvert;
- 		int totface;
- 		int tottris = 0;
- 		int triangle_index = 0;
- 		float scale = 0.99f;
- 		FractureModifierData *fmd = NULL;
- 
- 		dm = CDDM_copy(mi->physics_mesh);
+ 		int tottri;
+ 		const MLoop *mloop;
+ 		
+ 		dm = rigidbody_get_mesh(ob);
  
  		/* ensure mesh validity, then grab data */
  		if (dm == NULL)
@@@ -1109,35 -501,47 +1100,68 @@@ void BKE_rigidbody_validate_sim_shard_s
  			break;
  
  		case RB_SHAPE_CONE:
 -			volume = (float)M_PI / 3.0f * radius * radius * height;
 +			new_shape = RB_shape_new_cone(radius, height * 2.0f);
  			break;
 -
 +	
  		case RB_SHAPE_CONVEXH:
 +			/* try to emged collision margin */
 +			has_volume = (MIN3(

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list