[Bf-blender-cvs] [3f703f2acf0] temp-fracture-modifier-2.8: intial fracturing ok, CoW makes trouble
Martin Felke
noreply at git.blender.org
Fri Aug 10 14:00:39 CEST 2018
Commit: 3f703f2acf02d660103d5087f3967b1989641a7d
Author: Martin Felke
Date: Wed Aug 8 16:08:43 2018 +0200
Branches: temp-fracture-modifier-2.8
https://developer.blender.org/rB3f703f2acf02d660103d5087f3967b1989641a7d
intial fracturing ok, CoW makes trouble
===================================================================
M release/scripts/startup/bl_ui/properties_physics_fracture.py
M release/scripts/startup/bl_ui/properties_physics_rigidbody.py
M source/blender/blenkernel/BKE_fracture.h
M source/blender/blenkernel/CMakeLists.txt
M source/blender/blenkernel/intern/fracture.c
M source/blender/blenkernel/intern/fracture_prefractured.c
M source/blender/blenkernel/intern/rigidbody.c
M source/blender/editors/object/object_modifier.c
M source/blender/makesdna/DNA_modifier_types.h
M source/blender/modifiers/intern/MOD_fracture.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_physics_fracture.py b/release/scripts/startup/bl_ui/properties_physics_fracture.py
index f6b8faac586..cfabb8b9230 100644
--- a/release/scripts/startup/bl_ui/properties_physics_fracture.py
+++ b/release/scripts/startup/bl_ui/properties_physics_fracture.py
@@ -40,7 +40,8 @@ class PhysicButtonsPanel():
return ob and (ob.type == 'MESH') and context.fracture
class PHYSICS_PT_fracture_anim_mesh(PhysicButtonsPanel, Panel):
- bl_label = "Fracture Animated Mesh Settings"
+ bl_label = "Animated Mesh Settings"
+ bl_parent_id = 'PHYSICS_PT_fracture'
def draw(self, context):
layout = self.layout
@@ -57,7 +58,7 @@ class PHYSICS_PT_fracture_anim_mesh(PhysicButtonsPanel, Panel):
row.operator("object.fracture_anim_bind", text="Bind", icon="UV_VERTEXSEL")
class PHYSICS_PT_fracture(PhysicButtonsPanel, Panel):
- bl_label = "Fracture Settings"
+ bl_label = "Fracture"
def icon(self, bool):
if bool:
@@ -166,12 +167,6 @@ class PHYSICS_PT_fracture(PhysicButtonsPanel, Panel):
box.label("Inner Vertex Group:")
box.prop_search(md, "inner_vertex_group", ob, "vertex_groups", text = "")
box.prop(md, "inner_crease")
- box.label("Acceleration Map:")
- box.prop_search(md, "acceleration_vertex_group", ob, "vertex_groups", text = "")
- row = box.row(align=True)
- row.prop(md, "min_acceleration")
- row.prop(md, "max_acceleration")
- row.prop(md, "acceleration_fade")
if (md.frac_algorithm in {'BISECT_FAST', 'BISECT_FAST_FILL', 'BOOLEAN_FRACTAL'}):
box.prop(md, "orthogonality_factor", text="Rectangular Alignment")
@@ -181,7 +176,8 @@ class PHYSICS_PT_fracture(PhysicButtonsPanel, Panel):
row.prop(md, "execute_threaded", text="Threaded (WIP)")
class PHYSICS_PT_fracture_simulation(PhysicButtonsPanel, Panel):
- bl_label = "Fracture Constraint Settings"
+ bl_label = "Constraints"
+ bl_parent_id = 'PHYSICS_PT_fracture'
@classmethod
def poll(cls, context):
@@ -278,7 +274,8 @@ class PHYSICS_PT_fracture_simulation(PhysicButtonsPanel, Panel):
class PHYSICS_PT_fracture_utilities(PhysicButtonsPanel, Panel):
- bl_label = "Fracture Utilities"
+ bl_label = "Utilities"
+ bl_parent_id = 'PHYSICS_PT_fracture'
@classmethod
def poll(cls, context):
@@ -309,7 +306,6 @@ class PHYSICS_PT_fracture_utilities(PhysicButtonsPanel, Panel):
classes = (
FRACTURE_MT_presets,
- #FRACTURE_UL_fracture_settings,
PHYSICS_PT_fracture,
PHYSICS_PT_fracture_simulation,
PHYSICS_PT_fracture_utilities,
diff --git a/release/scripts/startup/bl_ui/properties_physics_rigidbody.py b/release/scripts/startup/bl_ui/properties_physics_rigidbody.py
index 9e3e1759653..17cf1ff8113 100644
--- a/release/scripts/startup/bl_ui/properties_physics_rigidbody.py
+++ b/release/scripts/startup/bl_ui/properties_physics_rigidbody.py
@@ -58,11 +58,6 @@ class PHYSICS_PT_rigid_body(PHYSICS_PT_rigidbody_panel, Panel):
if rbo.type == 'ACTIVE':
layout.prop(rbo, "mass")
- col = layout.column()
- if rbo.type == 'ACTIVE':
- col.prop(rbo, "enabled", text="Dynamic")
- col.prop(rbo, "kinematic", text="Animated")
-
class PHYSICS_PT_rigid_body_trigger_advanced(PHYSICS_PT_rigidbody_panel, Panel):
bl_label = "Rigid Body Trigger Advanced"
@@ -116,7 +111,7 @@ class PHYSICS_PT_rigid_body_collisions(PHYSICS_PT_rigidbody_panel, Panel):
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'}:
+ if rbo.collision_shape == 'MESH' and rbo.mesh_source in {'DEFORM', 'FINAL'}:
layout.prop(rbo, "use_deform", text="Deforming")
diff --git a/source/blender/blenkernel/BKE_fracture.h b/source/blender/blenkernel/BKE_fracture.h
index fabbcca178e..47897b7d979 100644
--- a/source/blender/blenkernel/BKE_fracture.h
+++ b/source/blender/blenkernel/BKE_fracture.h
@@ -188,6 +188,7 @@ void BKE_fracture_mesh_island_free(struct FractureModifierData *rmd, struct Mesh
short BKE_fracture_collect_materials(struct Main* bmain, struct Object* o, struct Object* ob, int matstart, struct GHash** mat_index_map);
struct Mesh *BKE_fracture_prefractured_do(struct FractureModifierData *fmd, struct Object *ob, struct Mesh *dm,
- struct Mesh *orig_dm, char names [][66], int count, struct Scene* scene);
+ struct Mesh *orig_dm, char names [][66], int count, struct Scene* scene,
+ struct Depsgraph *depsgraph);
#endif /* BKE_FRACTURE_H */
diff --git a/source/blender/blenkernel/CMakeLists.txt b/source/blender/blenkernel/CMakeLists.txt
index ef97fbb21be..b0422aa2a86 100644
--- a/source/blender/blenkernel/CMakeLists.txt
+++ b/source/blender/blenkernel/CMakeLists.txt
@@ -535,7 +535,6 @@ if(WITH_VORO)
add_definitions(-DWITH_VORO)
list(APPEND INC
../../../extern/voro++
- ../../../extern/carve
)
endif()
diff --git a/source/blender/blenkernel/intern/fracture.c b/source/blender/blenkernel/intern/fracture.c
index 9bd6f663918..44ad9115db0 100644
--- a/source/blender/blenkernel/intern/fracture.c
+++ b/source/blender/blenkernel/intern/fracture.c
@@ -115,17 +115,17 @@ static void fracture_shard_add(FracMesh *fm, Shard *s, float mat[4][4])
static BMesh* fracture_shard_to_bmesh(Shard *s)
{
- Mesh *dm_parent;
+ Mesh *dm_parent;
BMesh *bm_parent;
BMIter iter;
BMFace *f;
- struct BMeshCreateParams bmc = {.use_toolflags = true};
- struct BMeshFromMeshParams bme = { .calc_face_normal = true};
+ struct BMeshCreateParams bmc = {.use_toolflags = true};
+ struct BMeshFromMeshParams bme = { .calc_face_normal = true};
- bm_parent = BM_mesh_create(&bm_mesh_allocsize_default, &bmc);
- dm_parent = BKE_fracture_shard_to_mesh(s, true);
- BM_mesh_bm_from_me(bm_parent, dm_parent, &bme);
+ bm_parent = BM_mesh_create(&bm_mesh_allocsize_default, &bmc);
+ dm_parent = BKE_fracture_shard_to_mesh(s, true);
+ BM_mesh_bm_from_me(bm_parent, dm_parent, &bme);
BM_mesh_elem_table_ensure(bm_parent, BM_VERT | BM_FACE);
@@ -134,7 +134,7 @@ static BMesh* fracture_shard_to_bmesh(Shard *s)
BM_elem_flag_disable(f, BM_ELEM_SELECT);
}
- BKE_mesh_free(dm_parent);
+ BKE_mesh_free(dm_parent);
dm_parent = NULL;
return bm_parent;
@@ -175,8 +175,8 @@ static int shard_sortsize(const void *s1, const void *s2, void* UNUSED(context))
return -1;
}
- fracture_shard_boundbox(*sh1, loc, size1);
- fracture_shard_boundbox(*sh2, loc, size2);
+ fracture_shard_boundbox(*sh1, loc, size1);
+ fracture_shard_boundbox(*sh2, loc, size2);
//squared diameter
val_a = size1[0]*size1[0] + size1[1]*size1[1] + size1[2]*size1[2];
@@ -218,14 +218,14 @@ void BKE_fracture_custom_data_mesh_to_shard(Shard *s, Mesh *dm)
CustomData_reset(&s->polyData);
CustomData_reset(&s->edgeData);
- CustomData_copy(&dm->vdata, &s->vertData, CD_MASK_MDEFORMVERT, CD_DUPLICATE, s->totvert);
- CustomData_copy(&dm->ldata, &s->loopData, CD_MASK_MLOOPUV, CD_DUPLICATE, s->totloop);
- CustomData_copy(&dm->edata, &s->edgeData, CD_MASK_CREASE | CD_MASK_BWEIGHT | CD_MASK_MEDGE, CD_DUPLICATE, s->totedge);
+ CustomData_copy(&dm->vdata, &s->vertData, CD_MASK_MDEFORMVERT, CD_DUPLICATE, s->totvert);
+ CustomData_copy(&dm->ldata, &s->loopData, CD_MASK_MLOOPUV, CD_DUPLICATE, s->totloop);
+ CustomData_copy(&dm->edata, &s->edgeData, CD_MASK_CREASE | CD_MASK_BWEIGHT | CD_MASK_MEDGE, CD_DUPLICATE, s->totedge);
//add velocity vertex layers...
- check_add_layer(&dm->vdata, &s->vertData, CD_PROP_FLT, s->totvert, "velX");
- check_add_layer(&dm->vdata, &s->vertData, CD_PROP_FLT, s->totvert, "velY");
- check_add_layer(&dm->vdata, &s->vertData, CD_PROP_FLT, s->totvert, "velZ");
+ check_add_layer(&dm->vdata, &s->vertData, CD_PROP_FLT, s->totvert, "velX");
+ check_add_layer(&dm->vdata, &s->vertData, CD_PROP_FLT, s->totvert, "velY");
+ check_add_layer(&dm->vdata, &s->vertData, CD_PROP_FLT, s->totvert, "velZ");
}
/* modified from BKE_mesh_center_median */
@@ -260,8 +260,8 @@ bool BKE_fracture_shard_center_median(Shard *shard, float cent[3])
* \note results will have bias if polygon is non-planar.
*/
static float mesh_calc_poly_volume_and_weighted_centroid(
- const MPoly *mpoly, const MLoop *loopstart, const MVert *mvarray,
- float r_cent[3])
+ const MPoly *mpoly, const MLoop *loopstart, const MVert *mvarray,
+ float r_cent[3])
{
const float *v_pivot, *v_step1;
float total_volume = 0.0f;
@@ -334,8 +334,8 @@ bool BKE_fracture_shard_center_centroid(Shard *shard, float r_cent[3])
/* note, results won't be correct if polygon is non-planar */
/* copied from mesh_evaluate.c */
static float mesh_calc_poly_planar_area_centroid(
- const MPoly *mpoly, const MLoop *loopstart, const MVert *mvarray,
- float r_cent[3])
+ const MPoly *mpoly, const MLoop *loopstart, const MVert *mvarray,
+ float r_cent[3])
{
int i;
float tri_area;
@@ -381,7 +381,7 @@ bool BKE_fracture_shard_center_centroid_area(Shard *shard, float cent[3])
BKE_mesh_calc_poly_center(mpoly, shard->mloop + mpoly->loopstart, shard->mvert, poly_cent);
// poly_area = BKE_mesh_calc_poly_area(mpoly, shard->mloop + mpoly->loopstart, shard->mvert);
poly_area = mesh_calc_poly_planar_area_centroid(mpoly, shard->mloop + mpoly->loopstart, shard->mvert,
- poly_cent);
+ poly_cent);
madd_v3_v3fl(cent, poly_cent, poly_area);
total_area += poly_area;
}
@@ -434,12 +434,12 @@ float BKE_shard_calc_minmax(Shard *shard)
{
float min[3], max[3], diff[3];
int i;
-
+
INIT_MINMAX(min, max);
for (i = 0; i < shard->totvert; i++) {
minmax_v3v3_v3(min, max, shard->mvert[i].co);
}
-
+
copy_v3_v3(shard->min, min);
copy_v3_v3(shard->max, max);
@@ -450,9 +450,9 @@ float BKE_shard_calc_minmax(Shard *shard)
static Shard* fracture_initial_shard_create(Mesh *dm)
{
/* cre
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list