[Bf-blender-cvs] [27b1129d577] greasepencil-object: Rename of modifiers completed
Antonio Vazquez
noreply at git.blender.org
Sun Jul 23 17:54:41 CEST 2017
Commit: 27b1129d577cea7cffa32b43ebe26ab36e9ce674
Author: Antonio Vazquez
Date: Sun Jul 23 11:19:30 2017 +0200
Branches: greasepencil-object
https://developer.blender.org/rB27b1129d577cea7cffa32b43ebe26ab36e9ce674
Rename of modifiers completed
Now the old Dupli modifier is named Array and Array named Dupli
===================================================================
M release/scripts/startup/bl_ui/properties_data_modifier.py
M source/blender/blenkernel/BKE_gpencil.h
M source/blender/blenkernel/intern/gpencil.c
M source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
M source/blender/draw/engines/gpencil/gpencil_engine.c
M source/blender/draw/engines/gpencil/gpencil_engine.h
M source/blender/editors/object/object_modifier.c
M source/blender/makesdna/DNA_modifier_types.h
M source/blender/makesrna/intern/rna_modifier.c
M source/blender/modifiers/intern/MOD_gpencilarray.c
M source/blender/modifiers/intern/MOD_gpencildupli.c
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_data_modifier.py b/release/scripts/startup/bl_ui/properties_data_modifier.py
index 63103dcd2a3..00a5f4b73b9 100644
--- a/release/scripts/startup/bl_ui/properties_data_modifier.py
+++ b/release/scripts/startup/bl_ui/properties_data_modifier.py
@@ -1614,22 +1614,20 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "create_colors")
def GP_ARRAY(self, layout, ob, md):
- gpd = ob.grease_pencil
- layout.prop(md, "count")
+ split = layout.split()
+ col = split.column()
+ col.prop(md, "count")
split = layout.split()
col = split.column()
col.label("Offset:")
- col.prop(md, "constant_offset_displace", text="")
+ col.prop(md, "offset", text="")
col = split.column()
- col.label("Layer:")
- row = col.row(align=True)
- row.prop_search(md, "layer", gpd, "layers", text="", icon="GREASEPENCIL")
- row.prop(md, "inverse_layers", text="", icon="ARROW_LEFTRIGHT")
+ col.label("Shift:")
+ col.prop(md, "shift", text="")
row = col.row(align=True)
- row.prop(md, "passindex", text="Pass")
- row.prop(md, "inverse_pass", text="", icon="ARROW_LEFTRIGHT")
+ row.prop(md, "lock_axis", expand=True)
row = layout.row()
split = row.split()
@@ -1650,20 +1648,22 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
row.prop(md, "scale_factor", text="")
def GP_DUPLI(self, layout, ob, md):
- split = layout.split()
- col = split.column()
- col.prop(md, "count")
+ gpd = ob.grease_pencil
+ layout.prop(md, "count")
split = layout.split()
col = split.column()
col.label("Offset:")
- col.prop(md, "offset", text="")
+ col.prop(md, "constant_offset_displace", text="")
col = split.column()
- col.label("Shift:")
- col.prop(md, "shift", text="")
+ col.label("Layer:")
row = col.row(align=True)
- row.prop(md, "lock_axis", expand=True)
+ row.prop_search(md, "layer", gpd, "layers", text="", icon="GREASEPENCIL")
+ row.prop(md, "inverse_layers", text="", icon="ARROW_LEFTRIGHT")
+ row = col.row(align=True)
+ row.prop(md, "passindex", text="Pass")
+ row.prop(md, "inverse_pass", text="", icon="ARROW_LEFTRIGHT")
row = layout.row()
split = row.split()
diff --git a/source/blender/blenkernel/BKE_gpencil.h b/source/blender/blenkernel/BKE_gpencil.h
index a14e7a91e2a..baee7beb41c 100644
--- a/source/blender/blenkernel/BKE_gpencil.h
+++ b/source/blender/blenkernel/BKE_gpencil.h
@@ -150,7 +150,7 @@ void ED_gpencil_noise_modifier(int id, struct GpencilNoiseModifierData *mmd, str
void ED_gpencil_subdiv_modifier(int id, struct GpencilSubdivModifierData *mmd, struct bGPDlayer *gpl, struct bGPDstroke *gps);
void ED_gpencil_thick_modifier(int id, struct GpencilThickModifierData *mmd, struct bGPDlayer *gpl, struct bGPDstroke *gps);
void ED_gpencil_tint_modifier(int id, struct GpencilTintModifierData *mmd, struct bGPDlayer *gpl, struct bGPDstroke *gps);
-void ED_gpencil_array_modifier(int id, struct GpencilArrayModifierData *mmd, struct bGPDlayer *gpl, struct bGPDframe *gpf);
-void ED_gpencil_dupli_modifier(int id, struct GpencilDupliModifierData *mmd, struct Object *ob, int elem_idx[3], float r_mat[4][4]);
+void ED_gpencil_array_modifier(int id, struct GpencilArrayModifierData *mmd, struct Object *ob, int elem_idx[3], float r_mat[4][4]);
+void ED_gpencil_dupli_modifier(int id, struct GpencilDupliModifierData *mmd, struct bGPDlayer *gpl, struct bGPDframe *gpf);
#endif /* __BKE_GPENCIL_H__ */
diff --git a/source/blender/blenkernel/intern/gpencil.c b/source/blender/blenkernel/intern/gpencil.c
index 8952a1f7bd1..44dbebcb7ee 100644
--- a/source/blender/blenkernel/intern/gpencil.c
+++ b/source/blender/blenkernel/intern/gpencil.c
@@ -1904,8 +1904,8 @@ static int gpencil_stroke_cache_compare(const void *a1, const void *a2)
return 0;
}
-/* array modifier */
-void ED_gpencil_array_modifier(int id, GpencilArrayModifierData *mmd, bGPDlayer *gpl, bGPDframe *gpf)
+/* dupli modifier */
+void ED_gpencil_dupli_modifier(int id, GpencilDupliModifierData *mmd, bGPDlayer *gpl, bGPDframe *gpf)
{
bGPDspoint *pt;
bGPDstroke *gps_dst;
@@ -1931,7 +1931,7 @@ void ED_gpencil_array_modifier(int id, GpencilArrayModifierData *mmd, bGPDlayer
for (bGPDstroke *gps = gpf->strokes.first; gps; gps = gps->next) {
++stroke;
if (!is_stroke_affected_by_modifier(mmd->layername, mmd->passindex, 3, gpl, gps,
- (int)mmd->flag & GP_ARRAY_INVERSE_LAYER, (int)mmd->flag & GP_ARRAY_INVERSE_PASS)) {
+ (int)mmd->flag & GP_DUPLI_INVERSE_LAYER, (int)mmd->flag & GP_DUPLI_INVERSE_PASS)) {
continue;
}
@@ -1951,7 +1951,7 @@ void ED_gpencil_array_modifier(int id, GpencilArrayModifierData *mmd, bGPDlayer
mul_v3_v3fl(offset, mmd->offset, e + 1);
ri = mmd->rnd[0];
/* rotation */
- if (mmd->flag & GP_ARRAY_RANDOM_ROT) {
+ if (mmd->flag & GP_DUPLI_RANDOM_ROT) {
factor = mmd->rnd_rot * mmd->rnd[ri];
mul_v3_v3fl(rot, mmd->rot, factor);
add_v3_v3(rot, mmd->rot);
@@ -1960,7 +1960,7 @@ void ED_gpencil_array_modifier(int id, GpencilArrayModifierData *mmd, bGPDlayer
copy_v3_v3(rot, mmd->rot);
}
/* scale */
- if (mmd->flag & GP_ARRAY_RANDOM_SIZE) {
+ if (mmd->flag & GP_DUPLI_RANDOM_SIZE) {
factor = mmd->rnd_size * mmd->rnd[ri];
mul_v3_v3fl(scale, mmd->scale, factor);
add_v3_v3(scale, mmd->scale);
@@ -1997,8 +1997,8 @@ void ED_gpencil_array_modifier(int id, GpencilArrayModifierData *mmd, bGPDlayer
MEM_SAFE_FREE(stroke_cache);
}
-/* duplication modifier */
-void ED_gpencil_dupli_modifier(int UNUSED(id), GpencilDupliModifierData *mmd, Object *UNUSED(ob), int elem_idx[3], float r_mat[4][4])
+/* array modifier */
+void ED_gpencil_array_modifier(int UNUSED(id), GpencilArrayModifierData *mmd, Object *UNUSED(ob), int elem_idx[3], float r_mat[4][4])
{
float offset[3], rot[3], scale[3];
float factor;
@@ -2010,7 +2010,7 @@ void ED_gpencil_dupli_modifier(int UNUSED(id), GpencilDupliModifierData *mmd, Ob
ri = mmd->rnd[0];
/* rotation */
- if (mmd->flag & GP_DUPLI_RANDOM_ROT) {
+ if (mmd->flag & GP_ARRAY_RANDOM_ROT) {
factor = mmd->rnd_rot * mmd->rnd[ri];
mul_v3_v3fl(rot, mmd->rot, factor);
add_v3_v3(rot, mmd->rot);
@@ -2019,7 +2019,7 @@ void ED_gpencil_dupli_modifier(int UNUSED(id), GpencilDupliModifierData *mmd, Ob
copy_v3_v3(rot, mmd->rot);
}
/* scale */
- if (mmd->flag & GP_DUPLI_RANDOM_SIZE) {
+ if (mmd->flag & GP_ARRAY_RANDOM_SIZE) {
factor = mmd->rnd_size * mmd->rnd[ri];
mul_v3_v3fl(scale, mmd->scale, factor);
add_v3_v3(scale, mmd->scale);
@@ -2041,12 +2041,12 @@ void ED_gpencil_dupli_modifier(int UNUSED(id), GpencilDupliModifierData *mmd, Ob
void ED_gpencil_reset_modifiers(Object *ob)
{
ModifierData *md;
- GpencilArrayModifierData *arr;
+ GpencilDupliModifierData *arr;
for (md = ob->modifiers.first; md; md = md->next) {
switch (md->type) {
- case eModifierType_GpencilArray:
- arr = (GpencilArrayModifierData *) md;
+ case eModifierType_GpencilDupli:
+ arr = (GpencilDupliModifierData *) md;
arr->rnd[0] = 1;
break;
}
@@ -2058,7 +2058,7 @@ bool ED_gpencil_has_geometry_modifiers(Object *ob)
{
ModifierData *md;
for (md = ob->modifiers.first; md; md = md->next) {
- if (md->type == eModifierType_GpencilArray) {
+ if (md->type == eModifierType_GpencilDupli) {
return true;
}
}
@@ -2106,8 +2106,8 @@ void ED_gpencil_geometry_modifiers(Object *ob, bGPDlayer *gpl, bGPDframe *gpf)
((md->mode & eModifierMode_Render) && (G.f & G_RENDER_OGL))) {
switch (md->type) {
// Array
- case eModifierType_GpencilArray:
- ED_gpencil_array_modifier(id, (GpencilArrayModifierData *)md, gpl, gpf);
+ case eModifierType_GpencilDupli:
+ ED_gpencil_dupli_modifier(id, (GpencilDupliModifierData *)md, gpl, gpf);
break;
}
}
diff --git a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
index 58604107fa1..1065b673278 100644
--- a/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
+++ b/source/blender/draw/engines/gpencil/gpencil_draw_cache_impl.c
@@ -833,48 +833,52 @@ struct GPUTexture *DRW_gpencil_create_blank_texture(int width, int height)
return tex;
}
-/* create instances using duplication modifiers */
-void gpencil_dupli_modifiers(GPENCIL_StorageList *stl, Object *ob)
+/* create instances using array modifiers */
+void gpencil_array_modifiers(GPENCIL_StorageList *stl, Object *ob)
{
ModifierData *md;
- GpencilDupliModifierData *mmd;
+ GpencilArrayModifierData *mmd;
Object *newob = NULL;
- int x, y, z, e;
+ int x, y, z;
int xyz[3];
+ int sh;
float mat[4][4];
for (md = ob->modifiers.first; md; md = md->next) {
- if (md->type == eModifierType_GpencilDupli) {
- mmd = (GpencilDupliModifierData *)md;
- /* reset random */
- mmd->rnd[0] = 1;
- for (x = 0; x < mmd->count[0]; ++x) {
- for (y = 0; y < mmd->count[1]; ++y) {
- for (z = 0; z < mmd->count[2]; ++z) {
- ARRAY_SET_ITEMS(xyz, x, y, z);
- if ((x == 0) && (y == 0) && (z == 0)) {
- continue;
+ if (((md->mode & eModifierMode_Realtime) && ((G.f & G_RENDER_OGL) == 0)) ||
+ ((md->mode & eModifierMode_Render) && (G.f & G_RENDER_OGL))) {
+ if (md->type == eModifierType_GpencilArray) {
+ mmd = (GpencilArrayModifierData *)md;
+ /* reset random */
+ mmd->rnd[0] = 1;
+ for (x = 0; x < mmd->count[0]; ++x) {
+ for (y = 0; y < mmd->count[1]; ++y) {
+ for (z = 0; z < mmd->count[2]; ++z) {
+ ARRAY_SET_ITEMS(xyz, x, y, z);
+ if ((x == 0) && (y == 0) && (z == 0)) {
+ continue;
+ }
+
+ ED_gpencil_array_modifier(0, mmd, ob, xyz, mat);
+ /* add object to cache */
+ newob = MEM_dupallocN(ob);
+ newob->mode = -1; /* use this mark to delete later */
+ mul_m4_m4m4(newob->obmat, mat, ob->obmat);
+ /* apply shift */
+ sh = x;
+ if (mmd->lock_axis == GP_LOCKAXIS_Y) {
+ sh = y;
+ }
+ if (m
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list