[Bf-blender-cvs] [94bee8fa251] soc-2019-npr: Modifier: EdgeSplit modifier now has ignore_lanpr option.
YimingWu
noreply at git.blender.org
Mon Jul 1 09:16:56 CEST 2019
Commit: 94bee8fa251d30e9be86a819d5e1092ae9b1d73b
Author: YimingWu
Date: Mon Jul 1 15:15:46 2019 +0800
Branches: soc-2019-npr
https://developer.blender.org/rB94bee8fa251d30e9be86a819d5e1092ae9b1d73b
Modifier: EdgeSplit modifier now has ignore_lanpr option.
===================================================================
M release/scripts/startup/bl_ui/properties_data_modifier.py
M source/blender/makesdna/DNA_modifier_types.h
M source/blender/makesrna/intern/rna_modifier.c
M source/blender/modifiers/intern/MOD_edgesplit.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 200dde60849..bc8d415fb1b 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -400,6 +400,10 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
split.prop(md, "use_edge_sharp", text="Sharp Edges")
+ layout.prop(md, "ignore_lanpr")
+ if md.ignore_lanpr:
+ layout.label(text="Enabeling edge split may cause problems in LANPR.")
+
def EXPLODE(self, layout, ob, md):
split = layout.split()
diff --git a/source/blender/makesdna/DNA_modifier_types.h b/source/blender/makesdna/DNA_modifier_types.h
index a22ba7a9951..b0c883aebd0 100644
--- a/source/blender/makesdna/DNA_modifier_types.h
+++ b/source/blender/makesdna/DNA_modifier_types.h
@@ -354,6 +354,8 @@ typedef struct EdgeSplitModifierData {
/** Angle above which edges should be split. */
float split_angle;
int flags;
+ int ignore_lanpr;
+ char _pad[4];
} EdgeSplitModifierData;
/* EdgeSplitModifierData->flags */
diff --git a/source/blender/makesrna/intern/rna_modifier.c b/source/blender/makesrna/intern/rna_modifier.c
index 7b9200a6475..77910fce537 100644
--- a/source/blender/makesrna/intern/rna_modifier.c
+++ b/source/blender/makesrna/intern/rna_modifier.c
@@ -2603,6 +2603,10 @@ static void rna_def_modifier_edgesplit(BlenderRNA *brna)
RNA_def_property_boolean_sdna(prop, NULL, "flags", MOD_EDGESPLIT_FROMFLAG);
RNA_def_property_ui_text(prop, "Use Sharp Edges", "Split edges that are marked as sharp");
RNA_def_property_update(prop, 0, "rna_Modifier_update");
+
+ prop = RNA_def_property(srna, "ignore_lanpr", PROP_BOOLEAN, PROP_NONE);
+ RNA_def_property_ui_text(prop, "Ignore LANPR", "Ignore the presense of LANPR modifier.");
+ RNA_def_property_update(prop, 0, "rna_Modifier_update");
}
static void rna_def_modifier_displace(BlenderRNA *brna)
diff --git a/source/blender/modifiers/intern/MOD_edgesplit.c b/source/blender/modifiers/intern/MOD_edgesplit.c
index 59d560b9a4a..6565e0c7a96 100644
--- a/source/blender/modifiers/intern/MOD_edgesplit.c
+++ b/source/blender/modifiers/intern/MOD_edgesplit.c
@@ -127,6 +127,35 @@ static Mesh *applyModifier(ModifierData *md, const ModifierEvalContext *UNUSED(c
return result;
}
+static bool isDisabled(const struct Scene *scene, struct ModifierData *md, bool userRenderParams){
+ int lanpr_found=0;
+ ModifierData* imd;
+ EdgeSplitModifierData *emd = (EdgeSplitModifierData *)md;
+
+ for(imd = md->prev; imd; imd=imd->prev){
+ if(imd->type == eModifierType_FeatureLine){
+ lanpr_found = 1;
+ break;
+ }
+ }
+ if(!lanpr_found){
+ for(imd = md->next; imd; imd=imd->next){
+ if(imd->type == eModifierType_FeatureLine){
+ lanpr_found = 1;
+ break;
+ }
+ }
+ }
+ if(!lanpr_found){
+ return false;
+ }else{
+ if(emd->ignore_lanpr){
+ return false;
+ }
+ return true;
+ }
+}
+
ModifierTypeInfo modifierType_EdgeSplit = {
/* name */ "EdgeSplit",
/* structName */ "EdgeSplitModifierData",
@@ -147,7 +176,7 @@ ModifierTypeInfo modifierType_EdgeSplit = {
/* initData */ initData,
/* requiredDataMask */ NULL,
/* freeData */ NULL,
- /* isDisabled */ NULL,
+ /* isDisabled */ isDisabled,
/* updateDepsgraph */ NULL,
/* dependsOnTime */ NULL,
/* dependsOnNormals */ NULL,
More information about the Bf-blender-cvs
mailing list