diff --git a/ant_landscape/__init__.py b/ant_landscape/__init__.py index 60dd81a139523d1bc24330f1bb4a52d43fbec27b..25d4be9b9c9ead8eb9bbc8ee786eee1e3f4c7583 100644 --- a/ant_landscape/__init__.py +++ b/ant_landscape/__init__.py @@ -21,7 +21,7 @@ bl_info = { "name": "A.N.T.Landscape", - "author": "Jim Hazevoet", + "author": "Jimmy Hazevoet", "version": (0, 1, 8), "blender": (2, 78, 0), "location": "View3D > Tool Shelf", @@ -375,7 +375,7 @@ class AntDisplaceSettingsPanel(bpy.types.Panel): col = box.column() col.prop(ant, "strata") col = box.column() - col.prop(ant, "use_vgroup", toggle=True) + col.prop_search(ant, "vert_group", ob, "vertex_groups") # ------------------------------------------------------------ @@ -724,10 +724,9 @@ class AntLandscapePropertiesGroup(bpy.types.PropertyGroup): max=10000.0, description="Minimum, flattens terrain at seabed level" ) - use_vgroup = BoolProperty( - name="Vertex Group Weight", - default=False, - description="Use active vertex group weight" + vert_group = StringProperty( + name="Vertex Group", + default="" ) strata = FloatProperty( name="Amount", diff --git a/ant_landscape/add_mesh_ant_landscape.py b/ant_landscape/add_mesh_ant_landscape.py index 7fc4a26821ac0af6bd7bd1726fd8f96086e4c38a..dee82a55baad4026e0625324b14f882eb0bfaad7 100644 --- a/ant_landscape/add_mesh_ant_landscape.py +++ b/ant_landscape/add_mesh_ant_landscape.py @@ -392,10 +392,9 @@ class AntAddLandscape(bpy.types.Operator): max=10000.0, description="Minimum, flattens terrain at seabed level" ) - use_vgroup = BoolProperty( - name="Vertex Group Weight", - default=False, - description="Use active vertex group weight" + vert_group = StringProperty( + name="Vertex Group", + default="" ) strata = FloatProperty( name="Amount", @@ -536,10 +535,10 @@ class AntAddLandscape(bpy.types.Operator): self.strata, self.water_plane, self.water_level, - self.use_vgroup, + self.vert_group, self.remove_double ] - + scene = context.scene # Main function, create landscape mesh object diff --git a/ant_landscape/ant_functions.py b/ant_landscape/ant_functions.py index ce7751afa7091f2716c66fe70d838d58ac74aeb1..8adacc0bd096f82d8ae75a11508827e890ce3cd4 100644 --- a/ant_landscape/ant_functions.py +++ b/ant_landscape/ant_functions.py @@ -20,7 +20,7 @@ # Jimmy Hazevoet # ErosionR: -# Michel Anders (varkenvarken), Ian Huish (nerk) +# Michel Anders, Ian Huish # import modules import bpy @@ -279,7 +279,7 @@ def shapes(x, y, z, shape=0): y = y * p * 2 s = sin(x + sin(y)) elif shape is 5: - # x grad. + # z grad. s = (z * p) elif shape is 6: # y grad. @@ -878,7 +878,7 @@ def draw_ant_displace(self, context, generate=True): if not generate: col = box.column(align=False) - col.prop(self, "use_vgroup", toggle=True) + col.prop_search(self, "vert_group", bpy.context.object, "vertex_groups") def draw_ant_water(self, context): @@ -944,19 +944,18 @@ def store_properties(operator, ob): ob.ant_landscape.strata = operator.strata ob.ant_landscape.water_plane = operator.water_plane ob.ant_landscape.water_level = operator.water_level - ob.ant_landscape.use_vgroup = operator.use_vgroup + ob.ant_landscape.vert_group = operator.vert_group ob.ant_landscape.remove_double = operator.remove_double return ob # ------------------------------------------------------------ # "name": "ErosionR" -# "author": "Michel Anders (varkenvarken), Ian Huish (nerk)" - +# "author": "Michel Anders, Ian Huish" + from random import random as rand from math import tan, radians from .eroder import Grid -#print("Imported multifiles", file=sys.stderr) from .stats import Stats from .utils import numexpr_available @@ -1135,8 +1134,6 @@ class Eroder(bpy.types.Operator): stats = Stats() counts= {} - # add poll function to restrict action to mesh object in object mode - def execute(self, context): ob = context.active_object diff --git a/ant_landscape/ant_landscape_refresh.py b/ant_landscape/ant_landscape_refresh.py index e3ff536616e88f3a7f39938259ca85f472727126..b809619e3144ef721f91bcd877883415db3bbf70 100644 --- a/ant_landscape/ant_landscape_refresh.py +++ b/ant_landscape/ant_landscape_refresh.py @@ -19,7 +19,6 @@ # Another Noise Tool - Landscape Redraw - Regenerate # Jimmy Hazevoet - # ------------------------------------------------------------ # import modules import bpy @@ -61,9 +60,6 @@ class AntLandscapeRefresh(bpy.types.Operator): if obj and obj.ant_landscape.keys(): ob = obj.ant_landscape obi = ob.items() - #print("Refresh A.N.T. Landscape Grid") - #for k in obi.keys(): - # print(k, "-", obi[k]) prop = [] for i in range(len(obi)): prop.append(obi[i][1]) @@ -71,15 +67,14 @@ class AntLandscapeRefresh(bpy.types.Operator): # redraw verts mesh = obj.data - if ob['use_vgroup']: - vertex_group = obj.vertex_groups.active - if vertex_group: - gi = vertex_group.index - for v in mesh.vertices: - for g in v.groups: - if g.group == gi: - v.co[2] = 0.0 - v.co[2] = vertex_group.weight(v.index) * noise_gen(v.co, prop) + if ob['vert_group'] != "" and ob['vert_group'] in obj.vertex_groups: + vertex_group = obj.vertex_groups[ob['vert_group']] + gi = vertex_group.index + for v in mesh.vertices: + for g in v.groups: + if g.group == gi: + v.co[2] = 0.0 + v.co[2] = vertex_group.weight(v.index) * noise_gen(v.co, prop) else: for v in mesh.vertices: v.co[2] = 0 @@ -121,14 +116,11 @@ class AntLandscapeRegenerate(bpy.types.Operator): if obj and obj.ant_landscape.keys(): ob = obj.ant_landscape obi = ob.items() - #print("Regenerate A.N.T. Landscape Grid") - #for k in obi.keys(): - # print(k, "-", obi[k]) ant_props = [] for i in range(len(obi)): ant_props.append(obi[i][1]) - new_name = obj.name #ob.ant_terrain_name + new_name = obj.name # Main function, create landscape mesh object if ob['sphere_mesh']: @@ -222,7 +214,6 @@ class AntLandscapeRegenerate(bpy.types.Operator): wobj.scale = obj.scale wobj.select = False - new_ob.location = obj.location new_ob.rotation_euler = obj.rotation_euler new_ob.scale = obj.scale @@ -236,7 +227,6 @@ class AntLandscapeRegenerate(bpy.types.Operator): obj.select = True scene.objects.active = obj bpy.ops.object.delete(use_global=False) - #scene.update() # Select landscape and make active new_ob.select = True diff --git a/ant_landscape/mesh_ant_displace.py b/ant_landscape/mesh_ant_displace.py index a0ecebb4ee0433cbe1db0513e78a14228ddf6d80..7e1439b4197d6fc84863fd831fed799e00dd2be9 100644 --- a/ant_landscape/mesh_ant_displace.py +++ b/ant_landscape/mesh_ant_displace.py @@ -388,10 +388,9 @@ class AntMeshDisplace(bpy.types.Operator): max=10000.0, description="Minimum, flattens terrain at seabed level" ) - use_vgroup = BoolProperty( - name="Vertex Group Weight", - default=False, - description="Use active vertex group weight" + vert_group = StringProperty( + name="Vertex Group", + default="" ) strata = FloatProperty( name="Amount", @@ -424,11 +423,7 @@ class AntMeshDisplace(bpy.types.Operator): max=10000.0, description="Water level" ) - remove_double = BoolProperty( - name="Remove Doubles", - default=False, - description="Remove doubles" - ) + direction = EnumProperty( name="Direction", default="NORMAL", @@ -544,22 +539,14 @@ class AntMeshDisplace(bpy.types.Operator): self.strata, self.water_plane, self.water_level, - self.use_vgroup, - self.remove_double + self.vert_group ] - ''' - gi = ob.vertex_groups["Group"].index # get group index - for v in ob.data.vertices: - for g in v.groups: - if g.group == gi: # compare with index in VertexGroupElement - v.co[0] = 5 - ''' # do displace mesh = ob.data - if self.use_vgroup is True: - vertex_group = ob.vertex_groups.active + if self.vert_group != "" and self.vert_group in ob.vertex_groups: + vertex_group = ob.vertex_groups[self.vert_group] if vertex_group: gi = vertex_group.index if self.direction == "X": @@ -597,7 +584,7 @@ class AntMeshDisplace(bpy.types.Operator): for v in mesh.vertices: v.co += v.normal * noise_gen(v.co, props) - mesh.update() + mesh.update() if self.auto_refresh is False: self.refresh = False diff --git a/presets/operator/mesh.landscape_add/canions.py b/presets/operator/mesh.landscape_add/canions.py index 97324bbacc54b0e01c034a05682c6010858f4bf1..b778acfa8e29f60dafa3efd21539d22226cb2912 100644 --- a/presets/operator/mesh.landscape_add/canions.py +++ b/presets/operator/mesh.landscape_add/canions.py @@ -21,7 +21,7 @@ op.noise_offset_z = 0.0 op.noise_size_x = 1.0 op.noise_size_y = 1.0 op.noise_size_z = 1.0 -op.noise_size = 0.75 +op.noise_size = 0.5 op.noise_type = 'hetero_terrain' op.basis_type = '2' op.vl_basis_type = '9' @@ -41,12 +41,12 @@ op.height = 0.5 op.height_invert = False op.height_offset = -0.0 op.edge_falloff = '3' -op.falloff_x = 16.0 -op.falloff_y = 16.0 +op.falloff_x = 8.0 +op.falloff_y = 8.0 op.edge_level = 0.0 op.maximum = 0.5 op.minimum = -0.5 -op.use_vgroup = False +op.vert_group = '' op.strata = 2.0 op.strata_type = '2' op.water_plane = False diff --git a/presets/operator/mesh.landscape_add/cauliflower_hills.py b/presets/operator/mesh.landscape_add/cauliflower_hills.py index 2371b0d3c2d276b353274cd6a3ff485d309417bd..bcefeb808b0bdc292f04e6180a9be097b9792fa2 100644 --- a/presets/operator/mesh.landscape_add/cauliflower_hills.py +++ b/presets/operator/mesh.landscape_add/cauliflower_hills.py @@ -22,31 +22,31 @@ op.noise_size_x = 1.0 op.noise_size_y = 1.0 op.noise_size_z = 1.0 op.noise_size = 0.5 -op.noise_type = 'multi_fractal' +op.noise_type = 'hybrid_multi_fractal' op.basis_type = '3' op.vl_basis_type = '0' op.distortion = 1.0 op.hard_noise = '0' -op.noise_depth = 5 +op.noise_depth = 6 op.amplitude = 0.5 op.frequency = 2.0 op.dimension = 1.0 op.lacunarity = 5.0 op.offset = 1.0 -op.gain = 1.0 -op.marble_bias = '0' -op.marble_sharp = '0' -op.marble_shape = '0' -op.height = 0.20000000298023224 +op.gain = 2.0 +op.marble_bias = '1' +op.marble_sharp = '3' +op.marble_shape = '3' +op.height = 0.25 op.height_invert = True op.height_offset = 0.0 op.edge_falloff = '3' -op.falloff_x = 8.0 -op.falloff_y = 8.0 +op.falloff_x = 6.0 +op.falloff_y = 6.0 op.edge_level = 0.0 op.maximum = 1.0 op.minimum = -1.0 -op.use_vgroup = False +op.vert_group = '' op.strata = 5.0 op.strata_type = '0' op.water_plane = False diff --git a/presets/operator/mesh.landscape_add/cosine.py b/presets/operator/mesh.landscape_add/cosine.py index 0d72493a182bab06aaf5805313ca2c32273b05b7..71f4a734e297a477f949c1762e367aeb843e08bf 100644 --- a/presets/operator/mesh.landscape_add/cosine.py +++ b/presets/operator/mesh.landscape_add/cosine.py @@ -37,7 +37,7 @@ op.gain = 1.0 op.marble_bias = '1' op.marble_sharp = '0' op.marble_shape = '7' -op.height = 1.0 +op.height = 0.5 op.height_invert = False op.height_offset = 0.0 op.edge_falloff = '0' @@ -46,7 +46,7 @@ op.falloff_y = 20.0 op.edge_level = 0.0 op.maximum = 1.0 op.minimum = 0.0 -op.use_vgroup = False +op.vert_group = '' op.strata = 5.0 op.strata_type = '0' op.water_plane = False diff --git a/presets/operator/mesh.landscape_add/mountain_2.py b/presets/operator/mesh.landscape_add/mountain_2.py index 521c961d6fee14fd4bb1a3660a68de1639c0c85c..d318b22e3b7dc82116326c5a10d93d4c96d9444a 100644 --- a/presets/operator/mesh.landscape_add/mountain_2.py +++ b/presets/operator/mesh.landscape_add/mountain_2.py @@ -25,7 +25,7 @@ op.noise_size = 1.0 op.noise_type = 'vl_hTerrain' op.basis_type = '0' op.vl_basis_type = '3' -op.distortion = 1.5 +op.distortion = 1.0 op.hard_noise = '1' op.noise_depth = 8 op.amplitude = 0.5 @@ -46,7 +46,7 @@ op.falloff_y = 2.5 op.edge_level = 0.0 op.maximum = 1.0 op.minimum = 0.0 -op.use_vgroup = False +op.vert_group = '' op.strata = 0.5 op.strata_type = '3' op.water_plane = False diff --git a/presets/operator/mesh.landscape_add/rock.py b/presets/operator/mesh.landscape_add/rock.py index 9533aea5ce7ef27f497b48d2935ecf9b66ce6078..218110d09d4bac023cc74ace0ef2131e0f3759ef 100644 --- a/presets/operator/mesh.landscape_add/rock.py +++ b/presets/operator/mesh.landscape_add/rock.py @@ -35,8 +35,8 @@ op.lacunarity = 2.0 op.offset = 1.0 op.gain = 3.0 op.marble_bias = '0' -op.marble_sharp = '0' -op.marble_shape = '0' +op.marble_sharp = '3' +op.marble_shape = '3' op.height = 2.5 op.height_invert = False op.height_offset = 0.0 @@ -46,8 +46,8 @@ op.falloff_y = 4.0 op.edge_level = 0.0 op.maximum = 3.0 op.minimum = -1.0 -op.use_vgroup = False -op.strata = 5.0 +op.vert_group = '' +op.strata = 15.0 op.strata_type = '0' op.water_plane = False op.water_level = -0.019999999552965164