Node Wrangler: Improved accuracy on Align Nodes operator #104551

Open
quackarooni wants to merge 18 commits from quackarooni/blender-addons:nw_rework_align_nodes into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
932 changed files with 19637 additions and 16674 deletions
Showing only changes of commit 7b462566fe - Show all commits

View File

@ -1,10 +1,12 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
bl_info = { bl_info = {
"name": "Add Camera Rigs", "name": "Add Camera Rigs",
"author": "Wayne Dixon, Brian Raschko, Kris Wittig, Damien Picard, Flavio Perez", "author": "Wayne Dixon, Brian Raschko, Kris Wittig, Damien Picard, Flavio Perez",
"version": (1, 5, 1), "version": (1, 6, 0),
"blender": (3, 3, 0), "blender": (4, 0, 0),
"location": "View3D > Add > Camera > Dolly or Crane Rig", "location": "View3D > Add > Camera > Dolly or Crane Rig",
"description": "Adds a Camera Rig with UI", "description": "Adds a Camera Rig with UI",
"doc_url": "{BLENDER_MANUAL_URL}/addons/camera/camera_rigs.html", "doc_url": "{BLENDER_MANUAL_URL}/addons/camera/camera_rigs.html",

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy
@ -34,26 +36,35 @@ def create_dolly_bones(rig):
root = bones.new("Root") root = bones.new("Root")
root.tail = (0.0, 1.0, 0.0) root.tail = (0.0, 1.0, 0.0)
root.show_wire = True root.show_wire = True
rig.data.collections.new(name="Controls")
rig.data.collections['Controls'].assign(root)
ctrl_aim_child = bones.new("Aim_shape_rotation-MCH") ctrl_aim_child = bones.new("MCH-Aim_shape_rotation")
ctrl_aim_child.head = (0.0, 10.0, 1.7) ctrl_aim_child.head = (0.0, 10.0, 1.7)
ctrl_aim_child.tail = (0.0, 11.0, 1.7) ctrl_aim_child.tail = (0.0, 11.0, 1.7)
ctrl_aim_child.layers = tuple(i == 1 for i in range(32)) # Create bone collection and assign bone
rig.data.collections.new(name="MCH")
rig.data.collections['MCH'].assign(ctrl_aim_child)
rig.data.collections['MCH'].is_visible = False
ctrl_aim = bones.new("Aim") ctrl_aim = bones.new("Aim")
ctrl_aim.head = (0.0, 10.0, 1.7) ctrl_aim.head = (0.0, 10.0, 1.7)
ctrl_aim.tail = (0.0, 11.0, 1.7) ctrl_aim.tail = (0.0, 11.0, 1.7)
ctrl_aim.show_wire = True ctrl_aim.show_wire = True
rig.data.collections['Controls'].assign(ctrl_aim)
ctrl = bones.new("Camera") ctrl = bones.new("Camera")
ctrl.head = (0.0, 0.0, 1.7) ctrl.head = (0.0, 0.0, 1.7)
ctrl.tail = (0.0, 1.0, 1.7) ctrl.tail = (0.0, 1.0, 1.7)
ctrl.show_wire = True ctrl.show_wire = True
rig.data.collections['Controls'].assign(ctrl)
ctrl_offset = bones.new("Camera_offset") ctrl_offset = bones.new("Camera_Offset")
ctrl_offset.head = (0.0, 0.0, 1.7) ctrl_offset.head = (0.0, 0.0, 1.7)
ctrl_offset.tail = (0.0, 1.0, 1.7) ctrl_offset.tail = (0.0, 1.0, 1.7)
ctrl_offset.show_wire = True ctrl_offset.show_wire = True
rig.data.collections['Controls'].assign(ctrl_offset)
# Setup hierarchy # Setup hierarchy
ctrl.parent = root ctrl.parent = root
@ -65,7 +76,7 @@ def create_dolly_bones(rig):
bpy.ops.object.mode_set(mode='OBJECT') bpy.ops.object.mode_set(mode='OBJECT')
pose_bones = rig.pose.bones pose_bones = rig.pose.bones
# Lock the relevant scale channels of the Camera_offset bone # Lock the relevant scale channels of the Camera_offset bone
pose_bones["Camera_offset"].lock_scale = (True,) * 3 pose_bones["Camera_Offset"].lock_scale = (True,) * 3
def create_crane_bones(rig): def create_crane_bones(rig):
@ -76,42 +87,51 @@ def create_crane_bones(rig):
root = bones.new("Root") root = bones.new("Root")
root.tail = (0.0, 1.0, 0.0) root.tail = (0.0, 1.0, 0.0)
root.show_wire = True root.show_wire = True
rig.data.collections.new(name="Controls")
rig.data.collections['Controls'].assign(root)
ctrl_aim_child = bones.new("Aim_shape_rotation-MCH") ctrl_aim_child = bones.new("MCH-Aim_shape_rotation")
ctrl_aim_child.head = (0.0, 10.0, 1.7) ctrl_aim_child.head = (0.0, 10.0, 1.7)
ctrl_aim_child.tail = (0.0, 11.0, 1.7) ctrl_aim_child.tail = (0.0, 11.0, 1.7)
ctrl_aim_child.layers = tuple(i == 1 for i in range(32)) rig.data.collections.new(name="MCH")
rig.data.collections['MCH'].assign(ctrl_aim_child)
rig.data.collections['MCH'].is_visible = False
ctrl_aim = bones.new("Aim") ctrl_aim = bones.new("Aim")
ctrl_aim.head = (0.0, 10.0, 1.7) ctrl_aim.head = (0.0, 10.0, 1.7)
ctrl_aim.tail = (0.0, 11.0, 1.7) ctrl_aim.tail = (0.0, 11.0, 1.7)
ctrl_aim.show_wire = True ctrl_aim.show_wire = True
rig.data.collections['Controls'].assign(ctrl_aim)
ctrl = bones.new("Camera") ctrl = bones.new("Camera")
ctrl.head = (0.0, 1.0, 1.7) ctrl.head = (0.0, 1.0, 1.7)
ctrl.tail = (0.0, 2.0, 1.7) ctrl.tail = (0.0, 2.0, 1.7)
rig.data.collections['Controls'].assign(ctrl)
ctrl_offset = bones.new("Camera_offset") ctrl_offset = bones.new("Camera_Offset")
ctrl_offset.head = (0.0, 1.0, 1.7) ctrl_offset.head = (0.0, 1.0, 1.7)
ctrl_offset.tail = (0.0, 2.0, 1.7) ctrl_offset.tail = (0.0, 2.0, 1.7)
rig.data.collections['Controls'].assign(ctrl_offset)
arm = bones.new("Crane_arm") arm = bones.new("Crane_Arm")
arm.head = (0.0, 0.0, 1.7) arm.head = (0.0, 0.0, 1.7)
arm.tail = (0.0, 1.0, 1.7) arm.tail = (0.0, 1.0, 1.7)
rig.data.collections['Controls'].assign(arm)
height = bones.new("Crane_height") height = bones.new("Crane_Height")
height.head = (0.0, 0.0, 0.0) height.head = (0.0, 0.0, 0.0)
height.tail = (0.0, 0.0, 1.7) height.tail = (0.0, 0.0, 1.7)
rig.data.collections['Controls'].assign(height)
# Setup hierarchy # Setup hierarchy
ctrl.parent = arm ctrl.parent = arm
ctrl_offset.parent = ctrl ctrl_offset.parent = ctrl
ctrl.use_inherit_rotation = False ctrl.use_inherit_rotation = False
ctrl.use_inherit_scale = False ctrl.inherit_scale = "NONE"
ctrl.show_wire = True ctrl.show_wire = True
arm.parent = height arm.parent = height
arm.use_inherit_scale = False arm.inherit_scale = "NONE"
height.parent = root height.parent = root
ctrl_aim.parent = root ctrl_aim.parent = root
@ -122,12 +142,12 @@ def create_crane_bones(rig):
pose_bones = rig.pose.bones pose_bones = rig.pose.bones
# Lock the relevant loc, rot and scale # Lock the relevant loc, rot and scale
pose_bones["Crane_arm"].lock_rotation = (False, True, False) pose_bones["Crane_Arm"].lock_rotation = (False, True, False)
pose_bones["Crane_arm"].lock_scale = (True, False, True) pose_bones["Crane_Arm"].lock_scale = (True, False, True)
pose_bones["Crane_height"].lock_location = (True,) * 3 pose_bones["Crane_Height"].lock_location = (True,) * 3
pose_bones["Crane_height"].lock_rotation = (True,) * 3 pose_bones["Crane_Height"].lock_rotation = (True,) * 3
pose_bones["Crane_height"].lock_scale = (True, False, True) pose_bones["Crane_Height"].lock_scale = (True, False, True)
pose_bones["Camera_offset"].lock_scale = (True,) * 3 pose_bones["Camera_Offset"].lock_scale = (True,) * 3
def setup_3d_rig(rig, cam): def setup_3d_rig(rig, cam):
@ -147,20 +167,20 @@ def setup_3d_rig(rig, cam):
# Build the widgets # Build the widgets
root_widget = create_root_widget("Camera_Root") root_widget = create_root_widget("Camera_Root")
camera_widget = create_camera_widget("Camera") camera_widget = create_camera_widget("Camera")
camera_offset_widget = create_camera_offset_widget("Camera_offset") camera_offset_widget = create_camera_offset_widget("Camera_Offset")
aim_widget = create_aim_widget("Aim") aim_widget = create_aim_widget("Aim")
# Add the custom bone shapes # Add the custom bone shapes
pose_bones["Root"].custom_shape = root_widget pose_bones["Root"].custom_shape = root_widget
pose_bones["Aim"].custom_shape = aim_widget pose_bones["Aim"].custom_shape = aim_widget
pose_bones["Camera"].custom_shape = camera_widget pose_bones["Camera"].custom_shape = camera_widget
pose_bones["Camera_offset"].custom_shape = camera_offset_widget pose_bones["Camera_Offset"].custom_shape = camera_offset_widget
# Set the "Override Transform" field to the mechanism position # Set the "Override Transform" field to the mechanism position
pose_bones["Aim"].custom_shape_transform = pose_bones["Aim_shape_rotation-MCH"] pose_bones["Aim"].custom_shape_transform = pose_bones["MCH-Aim_shape_rotation"]
# Add constraints to bones # Add constraints to bones
con = pose_bones['Aim_shape_rotation-MCH'].constraints.new('COPY_ROTATION') con = pose_bones['MCH-Aim_shape_rotation'].constraints.new('COPY_ROTATION')
con.target = rig con.target = rig
con.subtarget = "Camera" con.subtarget = "Camera"
@ -187,29 +207,38 @@ def create_2d_bones(context, rig, cam):
root = bones.new("Root") root = bones.new("Root")
root.tail = Vector((0.0, 0.0, 1.0)) root.tail = Vector((0.0, 0.0, 1.0))
root.show_wire = True root.show_wire = True
rig.data.collections.new(name="Controls")
rig.data.collections['Controls'].assign(root)
ctrl = bones.new('Camera') ctrl = bones.new('Camera')
ctrl.tail = Vector((0.0, 0.0, 1.0)) ctrl.tail = Vector((0.0, 0.0, 1.0))
ctrl.show_wire = True ctrl.show_wire = True
rig.data.collections['Controls'].assign(ctrl)
left_corner = bones.new("Left_corner") left_corner = bones.new("Left_Corner")
left_corner.head = (-3, 10, -2) left_corner.head = (-3, 10, -2)
left_corner.tail = left_corner.head + Vector((0.0, 0.0, 1.0)) left_corner.tail = left_corner.head + Vector((0.0, 0.0, 1.0))
left_corner.show_wire = True left_corner.show_wire = True
rig.data.collections['Controls'].assign(left_corner)
right_corner = bones.new("Right_corner") right_corner = bones.new("Right_Corner")
right_corner.head = (3, 10, -2) right_corner.head = (3, 10, -2)
right_corner.tail = right_corner.head + Vector((0.0, 0.0, 1.0)) right_corner.tail = right_corner.head + Vector((0.0, 0.0, 1.0))
right_corner.show_wire = True right_corner.show_wire = True
rig.data.collections['Controls'].assign(right_corner)
corner_distance_x = (left_corner.head - right_corner.head).length corner_distance_x = (left_corner.head - right_corner.head).length
corner_distance_y = -left_corner.head.z corner_distance_y = -left_corner.head.z
corner_distance_z = left_corner.head.y corner_distance_z = left_corner.head.y
rig.data.collections['Controls'].assign(root)
center = bones.new("Center-MCH") center = bones.new("MCH-Center")
center.head = ((right_corner.head + left_corner.head) / 2.0) center.head = ((right_corner.head + left_corner.head) / 2.0)
center.tail = center.head + Vector((0.0, 0.0, 1.0)) center.tail = center.head + Vector((0.0, 0.0, 1.0))
center.layers = tuple(i == 1 for i in range(32)) center.show_wire = True
rig.data.collections.new(name="MCH")
rig.data.collections['MCH'].assign(center)
rig.data.collections['MCH'].is_visible = False
center.show_wire = True center.show_wire = True
# Setup hierarchy # Setup hierarchy
@ -225,7 +254,7 @@ def create_2d_bones(context, rig, cam):
bone.rotation_mode = 'XYZ' bone.rotation_mode = 'XYZ'
# Bone drivers # Bone drivers
center_drivers = pose_bones["Center-MCH"].driver_add("location") center_drivers = pose_bones["MCH-Center"].driver_add("location")
# Center X driver # Center X driver
driver = center_drivers[0].driver driver = center_drivers[0].driver
@ -236,7 +265,7 @@ def create_2d_bones(context, rig, cam):
var.name = corner var.name = corner
var.type = 'TRANSFORMS' var.type = 'TRANSFORMS'
var.targets[0].id = rig var.targets[0].id = rig
var.targets[0].bone_target = corner.capitalize() + '_corner' var.targets[0].bone_target = corner.capitalize() + '_Corner'
var.targets[0].transform_type = 'LOC_X' var.targets[0].transform_type = 'LOC_X'
var.targets[0].transform_space = 'TRANSFORM_SPACE' var.targets[0].transform_space = 'TRANSFORM_SPACE'
@ -253,7 +282,7 @@ def create_2d_bones(context, rig, cam):
var.name = '%s_%s' % (corner, direction) var.name = '%s_%s' % (corner, direction)
var.type = 'TRANSFORMS' var.type = 'TRANSFORMS'
var.targets[0].id = rig var.targets[0].id = rig
var.targets[0].bone_target = corner.capitalize() + '_corner' var.targets[0].bone_target = corner.capitalize() + '_Corner'
var.targets[0].transform_type = 'LOC_' + direction.upper() var.targets[0].transform_type = 'LOC_' + direction.upper()
var.targets[0].transform_space = 'TRANSFORM_SPACE' var.targets[0].transform_space = 'TRANSFORM_SPACE'
@ -273,31 +302,31 @@ def create_2d_bones(context, rig, cam):
var.name = corner var.name = corner
var.type = 'TRANSFORMS' var.type = 'TRANSFORMS'
var.targets[0].id = rig var.targets[0].id = rig
var.targets[0].bone_target = corner.capitalize() + '_corner' var.targets[0].bone_target = corner.capitalize() + '_Corner'
var.targets[0].transform_type = 'LOC_Z' var.targets[0].transform_type = 'LOC_Z'
var.targets[0].transform_space = 'TRANSFORM_SPACE' var.targets[0].transform_space = 'TRANSFORM_SPACE'
# Bone constraints # Bone constraints
con = pose_bones["Camera"].constraints.new('DAMPED_TRACK') con = pose_bones["Camera"].constraints.new('DAMPED_TRACK')
con.target = rig con.target = rig
con.subtarget = "Center-MCH" con.subtarget = "MCH-Center"
con.track_axis = 'TRACK_NEGATIVE_Z' con.track_axis = 'TRACK_NEGATIVE_Z'
# Build the widgets # Build the widgets
left_widget = create_corner_widget("Left_corner", reverse=True) left_widget = create_corner_widget("Left_Corner", reverse=True)
right_widget = create_corner_widget("Right_corner") right_widget = create_corner_widget("Right_Corner")
parent_widget = create_circle_widget("Root", radius=0.5) parent_widget = create_circle_widget("Root", radius=0.5)
camera_widget = create_circle_widget("Camera_2D", radius=0.3) camera_widget = create_circle_widget("Camera_2D", radius=0.3)
# Add the custom bone shapes # Add the custom bone shapes
pose_bones["Left_corner"].custom_shape = left_widget pose_bones["Left_Corner"].custom_shape = left_widget
pose_bones["Right_corner"].custom_shape = right_widget pose_bones["Right_Corner"].custom_shape = right_widget
pose_bones["Root"].custom_shape = parent_widget pose_bones["Root"].custom_shape = parent_widget
pose_bones["Camera"].custom_shape = camera_widget pose_bones["Camera"].custom_shape = camera_widget
# Lock the relevant loc, rot and scale # Lock the relevant loc, rot and scale
pose_bones["Left_corner"].lock_rotation = (True,) * 3 pose_bones["Left_Corner"].lock_rotation = (True,) * 3
pose_bones["Right_corner"].lock_rotation = (True,) * 3 pose_bones["Right_Corner"].lock_rotation = (True,) * 3
pose_bones["Camera"].lock_rotation = (True,) * 3 pose_bones["Camera"].lock_rotation = (True,) * 3
pose_bones["Camera"].lock_scale = (True,) * 3 pose_bones["Camera"].lock_scale = (True,) * 3
@ -329,10 +358,10 @@ def create_2d_bones(context, rig, cam):
var.name = 'frame_width' var.name = 'frame_width'
var.type = 'LOC_DIFF' var.type = 'LOC_DIFF'
var.targets[0].id = rig var.targets[0].id = rig
var.targets[0].bone_target = "Left_corner" var.targets[0].bone_target = "Left_Corner"
var.targets[0].transform_space = 'WORLD_SPACE' var.targets[0].transform_space = 'WORLD_SPACE'
var.targets[1].id = rig var.targets[1].id = rig
var.targets[1].bone_target = "Right_corner" var.targets[1].bone_target = "Right_Corner"
var.targets[1].transform_space = 'WORLD_SPACE' var.targets[1].transform_space = 'WORLD_SPACE'
for corner in ('left', 'right'): for corner in ('left', 'right'):
@ -340,7 +369,7 @@ def create_2d_bones(context, rig, cam):
var.name = corner + '_z' var.name = corner + '_z'
var.type = 'TRANSFORMS' var.type = 'TRANSFORMS'
var.targets[0].id = rig var.targets[0].id = rig
var.targets[0].bone_target = corner.capitalize() + '_corner' var.targets[0].bone_target = corner.capitalize() + '_Corner'
var.targets[0].transform_type = 'LOC_Z' var.targets[0].transform_type = 'LOC_Z'
var.targets[0].transform_space = 'TRANSFORM_SPACE' var.targets[0].transform_space = 'TRANSFORM_SPACE'
@ -361,7 +390,7 @@ def create_2d_bones(context, rig, cam):
var.name = corner + '_x' var.name = corner + '_x'
var.type = 'TRANSFORMS' var.type = 'TRANSFORMS'
var.targets[0].id = rig var.targets[0].id = rig
var.targets[0].bone_target = corner.capitalize() + '_corner' var.targets[0].bone_target = corner.capitalize() + '_Corner'
var.targets[0].transform_type = 'LOC_X' var.targets[0].transform_type = 'LOC_X'
var.targets[0].transform_space = 'TRANSFORM_SPACE' var.targets[0].transform_space = 'TRANSFORM_SPACE'
@ -383,7 +412,7 @@ def create_2d_bones(context, rig, cam):
var.name = '%s_%s' % (corner, direction) var.name = '%s_%s' % (corner, direction)
var.type = 'TRANSFORMS' var.type = 'TRANSFORMS'
var.targets[0].id = rig var.targets[0].id = rig
var.targets[0].bone_target = corner.capitalize() + '_corner' var.targets[0].bone_target = corner.capitalize() + '_Corner'
var.targets[0].transform_type = 'LOC_' + direction.upper() var.targets[0].transform_type = 'LOC_' + direction.upper()
var.targets[0].transform_space = 'TRANSFORM_SPACE' var.targets[0].transform_space = 'TRANSFORM_SPACE'
@ -420,7 +449,7 @@ def create_2d_bones(context, rig, cam):
var.name = '%s_%s' % (corner, direction) var.name = '%s_%s' % (corner, direction)
var.type = 'TRANSFORMS' var.type = 'TRANSFORMS'
var.targets[0].id = rig var.targets[0].id = rig
var.targets[0].bone_target = corner.capitalize() + '_corner' var.targets[0].bone_target = corner.capitalize() + '_Corner'
var.targets[0].transform_type = 'LOC_' + direction.upper() var.targets[0].transform_type = 'LOC_' + direction.upper()
var.targets[0].transform_space = 'TRANSFORM_SPACE' var.targets[0].transform_space = 'TRANSFORM_SPACE'
@ -482,7 +511,7 @@ def build_camera_rig(context, mode):
if mode == "2D": if mode == "2D":
cam.parent_bone = "Camera" cam.parent_bone = "Camera"
else: else:
cam.parent_bone = "Camera_offset" cam.parent_bone = "Camera_Offset"
# Change display to BBone: it just looks nicer # Change display to BBone: it just looks nicer
rig.data.display_type = 'BBONE' rig.data.display_type = 'BBONE'

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
from bpy.types import AddonPreferences from bpy.types import AddonPreferences

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,9 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-FileCopyrightText: 2012-2022 Blender Foundation
# #
# Contributed to by: # SPDX-License-Identifier: GPL-2.0-or-later
# testscreenings, Alejandro Omar Chocano Vasquez, Jimmy Hazevoet, meta-androcto
# Cmomoney, Jared Forsyth, Adam Newgas, Spivak Vladimir, Jared Forsyth, Atom
# Antonio Osprite, Marius Giurgi (DolphinDream)
bl_info = { bl_info = {
"name": "Extra Objects", "name": "Extra Objects",

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """

View File

@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2013 Adam Newgas
#
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# Copyright 2013 Adam Newgas
# Blender plugin for generating celtic knot curves from 3d meshes # Blender plugin for generating celtic knot curves from 3d meshes

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# DevBo Task https://developer.blender.org/T37299 # DevBo Task https://developer.blender.org/T37299

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
bl_info = { bl_info = {

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2012-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
@ -698,7 +700,7 @@ class torus_knot_plus(Operator, AddObjectHelper):
print("Approximate average TK length = %.2f" % avgTKLen) print("Approximate average TK length = %.2f" % avgTKLen)
# x N factor = control points per unit length # x N factor = control points per unit length
self.torus_res = max(3, avgTKLen / links * 8) self.torus_res = max(3, int(avgTKLen / links) * 8)
# update align matrix # update align matrix
self.align_matrix = align_matrix(self, context) self.align_matrix = align_matrix(self, context)

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
bl_info = { bl_info = {

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2017-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# DevBo Task: https://developer.blender.org/T37377 # DevBo Task: https://developer.blender.org/T37377

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
bl_info = { bl_info = {

View File

@ -1,9 +1,11 @@
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
bl_info = { bl_info = {
"name": "Sapling Tree Gen", "name": "Sapling Tree Gen",
"author": "Andrew Hale (TrumanBlending), Aaron Buchler, CansecoGPC", "author": "Andrew Hale (TrumanBlending), Aaron Buchler, CansecoGPC",
"version": (0, 3, 4), "version": (0, 3, 5),
"blender": (2, 80, 0), "blender": (2, 80, 0),
"location": "View3D > Add > Curve", "location": "View3D > Add > Curve",
"description": ("Adds a parametric tree. The method is presented by " "description": ("Adds a parametric tree. The method is presented by "
@ -184,7 +186,7 @@ class ImportData(Operator):
f = open(os.path.join(getPresetpaths()[1], self.filename), 'r') f = open(os.path.join(getPresetpaths()[1], self.filename), 'r')
# Find the first non-comment, non-blank line, this must contain preset text (all on one line). # Find the first non-comment, non-blank line, this must contain preset text (all on one line).
for settings in f: for settings in f:
if settings and (not settings.startswith("#")): if settings and (not settings.isspace()) and (not settings.startswith("#")):
break break
f.close() f.close()
# print(settings) # print(settings)

View File

@ -1,2 +1,5 @@
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
{'handleType': '0', 'rotate': (99.5, 137.5, 137.5, 137.5), 'baseSize_s': 0.1600000560283661, 'af2': 1.0, 'pruneRatio': 0.75, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.5, 'boneStep': (1, 1, 1, 1), 'nrings': 0, 'leafScale': 0.4000000059604645, 'makeMesh': False, 'baseSize': 0.30000001192092896, 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'shapeS': '10', 'pruneBase': 0.11999999731779099, 'af3': 4.0, 'loopFrames': 0, 'horzLeaves': True, 'curveRes': (8, 5, 3, 1), 'minRadius': 0.001500000013038516, 'leafDist': '6', 'rotateV': (15.0, 0.0, 0.0, 0.0), 'bevel': True, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleV': 0.15000000596046448, 'prunePowerHigh': 0.5, 'rootFlare': 1.0, 'prune': False, 'branches': (0, 55, 10, 1), 'taperCrown': 0.5, 'useArm': False, 'splitBias': 0.5499999523162842, 'segSplits': (0.10000000149011612, 0.5, 0.20000000298023224, 0.0), 'resU': 4, 'useParentAngle': True, 'ratio': 0.014999999664723873, 'taper': (1.0, 1.0, 1.0, 1.0), 'length': (0.800000011920929, 0.6000000238418579, 0.5, 0.10000000149011612), 'scale0': 1.0, 'scaleV': 2.0, 'leafRotate': 137.5, 'shape': '7', 'scaleV0': 0.10000000149011612, 'leaves': 150, 'scale': 5.0, 'leafShape': 'hex', 'prunePowerLow': 0.0010000000474974513, 'splitAngle': (18.0, 18.0, 22.0, 0.0), 'seed': 0, 'showLeaves': True, 'downAngle': (0.0, 26.209999084472656, 52.55999755859375, 30.0), 'leafDownAngle': 30.0, 'autoTaper': True, 'rMode': 'rotate', 'leafScaleX': 0.20000000298023224, 'leafScaleT': 0.10000000149011612, 'gust': 1.0, 'armAnim': False, 'wind': 1.0, 'leafRotateV': 15.0, 'baseSplits': 3, 'attractOut': (0.0, 0.800000011920929, 0.0, 0.0), 'armLevels': 2, 'leafAnim': False, 'ratioPower': 1.2000000476837158, 'splitHeight': 0.20000000298023224, 'splitByLen': True, 'af1': 1.0, 'branchDist': 1.5, 'closeTip': False, 'previewArm': False, 'attractUp': (3.5, -1.899843692779541, 0.0, 0.0), 'bevelRes': 1, 'pruneWidth': 0.3400000035762787, 'gustF': 0.07500000298023224, 'leafangle': -12.0, 'curveV': (20.0, 50.0, 75.0, 0.0), 'useOldDownAngle': True, 'leafDownAngleV': -10.0, 'frameRate': 1.0, 'splitAngleV': (5.0, 5.0, 5.0, 0.0), 'levels': 2, 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'curve': (0.0, -15.0, 0.0, 0.0)} {'handleType': '0', 'rotate': (99.5, 137.5, 137.5, 137.5), 'baseSize_s': 0.1600000560283661, 'af2': 1.0, 'pruneRatio': 0.75, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.5, 'boneStep': (1, 1, 1, 1), 'nrings': 0, 'leafScale': 0.4000000059604645, 'makeMesh': False, 'baseSize': 0.30000001192092896, 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'shapeS': '10', 'pruneBase': 0.11999999731779099, 'af3': 4.0, 'loopFrames': 0, 'horzLeaves': True, 'curveRes': (8, 5, 3, 1), 'minRadius': 0.001500000013038516, 'leafDist': '6', 'rotateV': (15.0, 0.0, 0.0, 0.0), 'bevel': True, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleV': 0.15000000596046448, 'prunePowerHigh': 0.5, 'rootFlare': 1.0, 'prune': False, 'branches': (0, 55, 10, 1), 'taperCrown': 0.5, 'useArm': False, 'splitBias': 0.5499999523162842, 'segSplits': (0.10000000149011612, 0.5, 0.20000000298023224, 0.0), 'resU': 4, 'useParentAngle': True, 'ratio': 0.014999999664723873, 'taper': (1.0, 1.0, 1.0, 1.0), 'length': (0.800000011920929, 0.6000000238418579, 0.5, 0.10000000149011612), 'scale0': 1.0, 'scaleV': 2.0, 'leafRotate': 137.5, 'shape': '7', 'scaleV0': 0.10000000149011612, 'leaves': 150, 'scale': 5.0, 'leafShape': 'hex', 'prunePowerLow': 0.0010000000474974513, 'splitAngle': (18.0, 18.0, 22.0, 0.0), 'seed': 0, 'showLeaves': True, 'downAngle': (0.0, 26.209999084472656, 52.55999755859375, 30.0), 'leafDownAngle': 30.0, 'autoTaper': True, 'rMode': 'rotate', 'leafScaleX': 0.20000000298023224, 'leafScaleT': 0.10000000149011612, 'gust': 1.0, 'armAnim': False, 'wind': 1.0, 'leafRotateV': 15.0, 'baseSplits': 3, 'attractOut': (0.0, 0.800000011920929, 0.0, 0.0), 'armLevels': 2, 'leafAnim': False, 'ratioPower': 1.2000000476837158, 'splitHeight': 0.20000000298023224, 'splitByLen': True, 'af1': 1.0, 'branchDist': 1.5, 'closeTip': False, 'previewArm': False, 'attractUp': (3.5, -1.899843692779541, 0.0, 0.0), 'bevelRes': 1, 'pruneWidth': 0.3400000035762787, 'gustF': 0.07500000298023224, 'leafangle': -12.0, 'curveV': (20.0, 50.0, 75.0, 0.0), 'useOldDownAngle': True, 'leafDownAngleV': -10.0, 'frameRate': 1.0, 'splitAngleV': (5.0, 5.0, 5.0, 0.0), 'levels': 2, 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'curve': (0.0, -15.0, 0.0, 0.0)}

View File

@ -1,2 +1,5 @@
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
{'pruneRatio': 1.0, 'wind': 1.0, 'prune': False, 'splitByLen': True, 'attractUp': (0.0, 0.3499999940395355, 0.25, 0.15000000596046448), 'segSplits': (0.0, 0.3499999940395355, 0.6000000238418579, 0.0), 'rMode': 'rotate', 'rotate': (99.5, 137.5, -45.0, -60.0), 'curve': (0.0, 20.0, -10.0, 0.0), 'af2': 1.0, 'seed': 0, 'length': (1.0, 0.20000000298023224, 0.550000011920929, 0.44999998807907104), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafScaleT': 0.0, 'scaleV': 15.0, 'splitHeight': 0.20000000298023224, 'minRadius': 0.0020000000949949026, 'leafRotate': 137.5, 'curveRes': (12, 4, 3, 2), 'curveV': (40.0, 30.0, 15.0, 10.0), 'nrings': 0, 'levels': 4, 'frameRate': 1.0, 'ratioPower': 1.2000000476837158, 'leafDownAngle': 45.0, 'armLevels': 2, 'branches': (0, 75, 16, 10), 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'shape': '8', 'rotateV': (15.0, 0.0, 15.0, 45.0), 'loopFrames': 0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'taperCrown': 0.0, 'prunePowerLow': 0.0010000000474974513, 'handleType': '0', 'af3': 4.0, 'useParentAngle': True, 'customShape': (0.5, 1.0, 0.3499999940395355, 0.10000000149011612), 'scale0': 1.0, 'rootFlare': 1.2999999523162842, 'leafScaleV': 0.0, 'leafScale': 0.17000000178813934, 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'downAngleV': (0.0, 30.0, 10.0, 10.0), 'af1': 1.0, 'autoTaper': True, 'scale': 35.0, 'gustF': 0.07500000298023224, 'ratio': 0.014999999664723873, 'leafScaleX': 1.0, 'shapeS': '7', 'bevelRes': 1, 'bevel': True, 'leaves': 25, 'splitAngle': (0.0, 12.0, 18.0, 0.0), 'downAngle': (90.0, 130.0, 45.0, 45.0), 'previewArm': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'showLeaves': False, 'leafAnim': False, 'baseSize': 0.33000001311302185, 'gust': 1.0, 'horzLeaves': True, 'baseSize_s': 0.5, 'leafDownAngleV': 10.0, 'makeMesh': False, 'leafDist': '6', 'armAnim': False, 'baseSplits': 0, 'lengthV': (0.0, 0.10000000149011612, 0.25, 0.25), 'branchDist': 1.850000023841858, 'useArm': False, 'useOldDownAngle': False, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneBase': 0.30000001192092896, 'splitBias': 0.0, 'boneStep': (1, 1, 1, 1), 'leafShape': 'hex', 'resU': 4, 'prunePowerHigh': 0.5, 'closeTip': True, 'pruneWidth': 0.4000000059604645, 'leafRotateV': 0.0, 'pruneWidthPeak': 0.6000000238418579} {'pruneRatio': 1.0, 'wind': 1.0, 'prune': False, 'splitByLen': True, 'attractUp': (0.0, 0.3499999940395355, 0.25, 0.15000000596046448), 'segSplits': (0.0, 0.3499999940395355, 0.6000000238418579, 0.0), 'rMode': 'rotate', 'rotate': (99.5, 137.5, -45.0, -60.0), 'curve': (0.0, 20.0, -10.0, 0.0), 'af2': 1.0, 'seed': 0, 'length': (1.0, 0.20000000298023224, 0.550000011920929, 0.44999998807907104), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafScaleT': 0.0, 'scaleV': 15.0, 'splitHeight': 0.20000000298023224, 'minRadius': 0.0020000000949949026, 'leafRotate': 137.5, 'curveRes': (12, 4, 3, 2), 'curveV': (40.0, 30.0, 15.0, 10.0), 'nrings': 0, 'levels': 4, 'frameRate': 1.0, 'ratioPower': 1.2000000476837158, 'leafDownAngle': 45.0, 'armLevels': 2, 'branches': (0, 75, 16, 10), 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'shape': '8', 'rotateV': (15.0, 0.0, 15.0, 45.0), 'loopFrames': 0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'taperCrown': 0.0, 'prunePowerLow': 0.0010000000474974513, 'handleType': '0', 'af3': 4.0, 'useParentAngle': True, 'customShape': (0.5, 1.0, 0.3499999940395355, 0.10000000149011612), 'scale0': 1.0, 'rootFlare': 1.2999999523162842, 'leafScaleV': 0.0, 'leafScale': 0.17000000178813934, 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'downAngleV': (0.0, 30.0, 10.0, 10.0), 'af1': 1.0, 'autoTaper': True, 'scale': 35.0, 'gustF': 0.07500000298023224, 'ratio': 0.014999999664723873, 'leafScaleX': 1.0, 'shapeS': '7', 'bevelRes': 1, 'bevel': True, 'leaves': 25, 'splitAngle': (0.0, 12.0, 18.0, 0.0), 'downAngle': (90.0, 130.0, 45.0, 45.0), 'previewArm': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'showLeaves': False, 'leafAnim': False, 'baseSize': 0.33000001311302185, 'gust': 1.0, 'horzLeaves': True, 'baseSize_s': 0.5, 'leafDownAngleV': 10.0, 'makeMesh': False, 'leafDist': '6', 'armAnim': False, 'baseSplits': 0, 'lengthV': (0.0, 0.10000000149011612, 0.25, 0.25), 'branchDist': 1.850000023841858, 'useArm': False, 'useOldDownAngle': False, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneBase': 0.30000001192092896, 'splitBias': 0.0, 'boneStep': (1, 1, 1, 1), 'leafShape': 'hex', 'resU': 4, 'prunePowerHigh': 0.5, 'closeTip': True, 'pruneWidth': 0.4000000059604645, 'leafRotateV': 0.0, 'pruneWidthPeak': 0.6000000238418579}

View File

@ -1,2 +1,5 @@
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
{'leafScaleT': -0.5, 'shapeS': '10', 'scaleV': 2.0, 'resU': 4, 'boneStep': (1, 1, 1, 1), 'af3': 4.0, 'baseSize': 0.4000000059604645, 'prunePowerLow': 0.0010000000474974513, 'leafRotateV': 0.0, 'rootFlare': 1.0, 'customShape': (0.699999988079071, 1.0, 0.20000000298023224, 0.800000011920929), 'attractOut': (0.0, 0.75, 0.25, 0.0), 'useArm': False, 'branches': (0, 50, 10, 16), 'leafDownAngle': 45.0, 'length': (1.0, 0.30000001192092896, 0.5, 0.20000000298023224), 'segSplits': (0.25, 0.4000000059604645, 0.5, 0.0), 'makeMesh': False, 'curveV': (400.0, 150.0, 100.0, 0.0), 'curveBack': (0.0, 0.0, 0.0, 0.0), 'af1': 1.0, 'closeTip': False, 'frameRate': 1.0, 'leafangle': -10.0, 'af2': 1.0, 'rMode': 'rotate', 'leafScaleV': 0.0, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'useParentAngle': False, 'taperCrown': 0.0, 'minRadius': 0.001500000013038516, 'splitAngleV': (5.0, 5.0, 0.0, 0.0), 'scaleV0': 0.10000000149011612, 'bevel': True, 'leafDownAngleV': 10.0, 'previewArm': False, 'showLeaves': True, 'ratioPower': 1.25, 'handleType': '0', 'branchDist': 1.0, 'leafScaleX': 0.20000000298023224, 'prune': False, 'splitHeight': 0.30000001192092896, 'baseSplits': 2, 'baseSize_s': 0.25, 'downAngle': (90.0, 90.0, 30.0, 30.0), 'bevelRes': 1, 'leafAnim': False, 'loopFrames': 0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'downAngleV': (0.0, 90.0, 15.0, 10.0), 'leafRotate': 137.5, 'wind': 1.0, 'leaves': -5, 'curve': (0.0, -20.0, -20.0, 0.0), 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneRatio': 1.0, 'pruneBase': 0.30000001192092896, 'armAnim': False, 'splitBias': 0.0, 'rotate': (99.5, 137.5, 137.5, 137.5), 'armLevels': 2, 'scale': 6.0, 'prunePowerHigh': 0.5, 'nrings': 0, 'splitByLen': True, 'leafShape': 'hex', 'splitAngle': (15.0, 20.0, 25.0, 0.0), 'ratio': 0.019999999552965164, 'scale0': 1.0, 'autoTaper': True, 'pruneWidth': 0.4000000059604645, 'leafScale': 0.17000000178813934, 'seed': 0, 'curveRes': (16, 5, 3, 1), 'horzLeaves': True, 'useOldDownAngle': False, 'levels': 4, 'pruneWidthPeak': 0.6000000238418579, 'attractUp': (0.0, -0.3499999940395355, -0.20000000298023224, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'leafDist': '6', 'gustF': 0.07500000298023224, 'shape': '8'} {'leafScaleT': -0.5, 'shapeS': '10', 'scaleV': 2.0, 'resU': 4, 'boneStep': (1, 1, 1, 1), 'af3': 4.0, 'baseSize': 0.4000000059604645, 'prunePowerLow': 0.0010000000474974513, 'leafRotateV': 0.0, 'rootFlare': 1.0, 'customShape': (0.699999988079071, 1.0, 0.20000000298023224, 0.800000011920929), 'attractOut': (0.0, 0.75, 0.25, 0.0), 'useArm': False, 'branches': (0, 50, 10, 16), 'leafDownAngle': 45.0, 'length': (1.0, 0.30000001192092896, 0.5, 0.20000000298023224), 'segSplits': (0.25, 0.4000000059604645, 0.5, 0.0), 'makeMesh': False, 'curveV': (400.0, 150.0, 100.0, 0.0), 'curveBack': (0.0, 0.0, 0.0, 0.0), 'af1': 1.0, 'closeTip': False, 'frameRate': 1.0, 'leafangle': -10.0, 'af2': 1.0, 'rMode': 'rotate', 'leafScaleV': 0.0, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'useParentAngle': False, 'taperCrown': 0.0, 'minRadius': 0.001500000013038516, 'splitAngleV': (5.0, 5.0, 0.0, 0.0), 'scaleV0': 0.10000000149011612, 'bevel': True, 'leafDownAngleV': 10.0, 'previewArm': False, 'showLeaves': True, 'ratioPower': 1.25, 'handleType': '0', 'branchDist': 1.0, 'leafScaleX': 0.20000000298023224, 'prune': False, 'splitHeight': 0.30000001192092896, 'baseSplits': 2, 'baseSize_s': 0.25, 'downAngle': (90.0, 90.0, 30.0, 30.0), 'bevelRes': 1, 'leafAnim': False, 'loopFrames': 0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'downAngleV': (0.0, 90.0, 15.0, 10.0), 'leafRotate': 137.5, 'wind': 1.0, 'leaves': -5, 'curve': (0.0, -20.0, -20.0, 0.0), 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'pruneRatio': 1.0, 'pruneBase': 0.30000001192092896, 'armAnim': False, 'splitBias': 0.0, 'rotate': (99.5, 137.5, 137.5, 137.5), 'armLevels': 2, 'scale': 6.0, 'prunePowerHigh': 0.5, 'nrings': 0, 'splitByLen': True, 'leafShape': 'hex', 'splitAngle': (15.0, 20.0, 25.0, 0.0), 'ratio': 0.019999999552965164, 'scale0': 1.0, 'autoTaper': True, 'pruneWidth': 0.4000000059604645, 'leafScale': 0.17000000178813934, 'seed': 0, 'curveRes': (16, 5, 3, 1), 'horzLeaves': True, 'useOldDownAngle': False, 'levels': 4, 'pruneWidthPeak': 0.6000000238418579, 'attractUp': (0.0, -0.3499999940395355, -0.20000000298023224, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'leafDist': '6', 'gustF': 0.07500000298023224, 'shape': '8'}

View File

@ -1,2 +1,5 @@
# SPDX-FileCopyrightText: 2011-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
{'leafScale': 0.17000000178813934, 'autoTaper': True, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'curve': (0.0, -40.0, -40.0, 0.0), 'ratio': 0.014999999664723873, 'splitBias': 0.0, 'pruneWidth': 0.4000000059604645, 'downAngleV': (0.0, 80.0, 10.0, 10.0), 'rotate': (99.5, 137.5, 137.5, 137.5), 'pruneRatio': 1.0, 'leafDownAngle': 45.0, 'makeMesh': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'rMode': 'rotate', 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'branchDist': 1.0, 'bevel': True, 'minRadius': 0.001500000013038516, 'prune': False, 'leafRotateV': 0.0, 'splitAngle': (0.0, 0.0, 0.0, 0.0), 'armAnim': False, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'taperCrown': 0.0, 'baseSplits': 0, 'baseSize_s': 0.25, 'handleType': '0', 'baseSize': 0.4000000059604645, 'af1': 1.0, 'levels': 2, 'leafScaleV': 0.0, 'resU': 4, 'seed': 0, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'prunePowerHigh': 0.5, 'splitByLen': True, 'wind': 1.0, 'shape': '7', 'prunePowerLow': 0.0010000000474974513, 'scale': 13.0, 'leafAnim': False, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleX': 1.0, 'horzLeaves': True, 'splitHeight': 0.20000000298023224, 'leafScaleT': 0.0, 'scaleV': 3.0, 'leafDist': '6', 'nrings': 0, 'curveRes': (8, 5, 3, 1), 'shapeS': '4', 'bevelRes': 0, 'useOldDownAngle': False, 'useParentAngle': True, 'armLevels': 2, 'scale0': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.6000000238418579, 'previewArm': False, 'leaves': 25, 'ratioPower': 1.100000023841858, 'gustF': 0.07500000298023224, 'curveV': (20.0, 50.0, 75.0, 0.0), 'showLeaves': False, 'frameRate': 1.0, 'length': (1.0, 0.30000001192092896, 0.6000000238418579, 0.44999998807907104), 'branches': (0, 50, 30, 10), 'useArm': False, 'loopFrames': 0, 'gust': 1.0, 'af3': 4.0, 'closeTip': False, 'leafRotate': 137.5, 'attractUp': (0.0, 0.0, 0.5, 0.5), 'leafDownAngleV': 10.0, 'rootFlare': 1.0, 'af2': 1.0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'rotateV': (15.0, 0.0, 0.0, 0.0), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'segSplits': (0.0, 0.0, 0.0, 0.0)} {'leafScale': 0.17000000178813934, 'autoTaper': True, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'curve': (0.0, -40.0, -40.0, 0.0), 'ratio': 0.014999999664723873, 'splitBias': 0.0, 'pruneWidth': 0.4000000059604645, 'downAngleV': (0.0, 80.0, 10.0, 10.0), 'rotate': (99.5, 137.5, 137.5, 137.5), 'pruneRatio': 1.0, 'leafDownAngle': 45.0, 'makeMesh': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'rMode': 'rotate', 'splitAngleV': (0.0, 0.0, 0.0, 0.0), 'branchDist': 1.0, 'bevel': True, 'minRadius': 0.001500000013038516, 'prune': False, 'leafRotateV': 0.0, 'splitAngle': (0.0, 0.0, 0.0, 0.0), 'armAnim': False, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'taperCrown': 0.0, 'baseSplits': 0, 'baseSize_s': 0.25, 'handleType': '0', 'baseSize': 0.4000000059604645, 'af1': 1.0, 'levels': 2, 'leafScaleV': 0.0, 'resU': 4, 'seed': 0, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafangle': 0.0, 'scaleV0': 0.10000000149011612, 'prunePowerHigh': 0.5, 'splitByLen': True, 'wind': 1.0, 'shape': '7', 'prunePowerLow': 0.0010000000474974513, 'scale': 13.0, 'leafAnim': False, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafScaleX': 1.0, 'horzLeaves': True, 'splitHeight': 0.20000000298023224, 'leafScaleT': 0.0, 'scaleV': 3.0, 'leafDist': '6', 'nrings': 0, 'curveRes': (8, 5, 3, 1), 'shapeS': '4', 'bevelRes': 0, 'useOldDownAngle': False, 'useParentAngle': True, 'armLevels': 2, 'scale0': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'pruneWidthPeak': 0.6000000238418579, 'previewArm': False, 'leaves': 25, 'ratioPower': 1.100000023841858, 'gustF': 0.07500000298023224, 'curveV': (20.0, 50.0, 75.0, 0.0), 'showLeaves': False, 'frameRate': 1.0, 'length': (1.0, 0.30000001192092896, 0.6000000238418579, 0.44999998807907104), 'branches': (0, 50, 30, 10), 'useArm': False, 'loopFrames': 0, 'gust': 1.0, 'af3': 4.0, 'closeTip': False, 'leafRotate': 137.5, 'attractUp': (0.0, 0.0, 0.5, 0.5), 'leafDownAngleV': 10.0, 'rootFlare': 1.0, 'af2': 1.0, 'lengthV': (0.0, 0.0, 0.0, 0.0), 'rotateV': (15.0, 0.0, 0.0, 0.0), 'attractOut': (0.0, 0.0, 0.0, 0.0), 'segSplits': (0.0, 0.0, 0.0, 0.0)}

View File

@ -1,2 +1,5 @@
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
{'leafDownAngle': 45.0, 'handleType': '0', 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'useArm': False, 'rootFlare': 1.0, 'segSplits': (0.44999998807907104, 0.5, 0.800000011920929, 0.0), 'leafRotateV': 0.0, 'leaves': 32, 'baseSplits': 1, 'rotate': (99.5, 137.5, 137.5, 137.5), 'scale': 8.0, 'makeMesh': False, 'leafDownAngleV': 10.0, 'curve': (0.0, 30.0, 0.0, 0.0), 'splitBias': 0.0, 'leafScale': 0.18000000715255737, 'levels': 3, 'leafScaleT': 0.3499999940395355, 'seed': 0, 'autoTaper': True, 'pruneWidthPeak': 0.6000000238418579, 'branchDist': 1.25, 'prune': False, 'splitAngle': (8.0, 18.0, 18.0, 0.0), 'shapeS': '7', 'useParentAngle': True, 'af1': 1.0, 'armAnim': False, 'resU': 4, 'ratioPower': 1.2000000476837158, 'scaleV': 2.0, 'splitHeight': 0.20000000298023224, 'leafRotate': 137.5, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'shape': '7', 'ratio': 0.019999999552965164, 'rMode': 'rotate', 'downAngle': (90.0, 48.0, 45.0, 45.0), 'bevelRes': 2, 'showLeaves': True, 'wind': 1.0, 'loopFrames': 0, 'splitByLen': True, 'lengthV': (0.0, 0.029999999329447746, 0.15000000596046448, 0.0), 'leafShape': 'hex', 'downAngleV': (0.0, 48.0, 10.0, 10.0), 'leafangle': -35.0, 'bevel': True, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'previewArm': False, 'frameRate': 1.0, 'curveBack': (0.0, -30.0, -20.0, 0.0), 'taperCrown': 0.20000000298023224, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'scaleV0': 0.20000000298023224, 'gust': 1.0, 'horzLeaves': True, 'attractUp': (-0.5, -0.699999988079071, 0.0, 0.0), 'splitAngleV': (2.0, 5.0, 5.0, 0.0), 'pruneRatio': 1.0, 'curveV': (10.0, 35.0, 35.0, 0.0), 'prunePowerHigh': 0.5, 'closeTip': False, 'leafScaleV': 0.20000000298023224, 'leafAnim': False, 'minRadius': 0.0020000000949949026, 'af3': 4.0, 'attractOut': (0.0, 0.4000000059604645, 0.5, 0.0), 'branches': (0, 110, 18, 10), 'leafScaleX': 0.6499999761581421, 'length': (1.0, 0.46000000834465027, 0.44999998807907104, 0.44999998807907104), 'useOldDownAngle': False, 'armLevels': 2, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'curveRes': (8, 5, 3, 1), 'prunePowerLow': 0.0010000000474974513, 'af2': 1.0, 'pruneWidth': 0.4000000059604645, 'nrings': 0, 'baseSize_s': 0.25, 'baseSize': 0.2800000011920929, 'leafDist': '6', 'scale0': 1.0} {'leafDownAngle': 45.0, 'handleType': '0', 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'useArm': False, 'rootFlare': 1.0, 'segSplits': (0.44999998807907104, 0.5, 0.800000011920929, 0.0), 'leafRotateV': 0.0, 'leaves': 32, 'baseSplits': 1, 'rotate': (99.5, 137.5, 137.5, 137.5), 'scale': 8.0, 'makeMesh': False, 'leafDownAngleV': 10.0, 'curve': (0.0, 30.0, 0.0, 0.0), 'splitBias': 0.0, 'leafScale': 0.18000000715255737, 'levels': 3, 'leafScaleT': 0.3499999940395355, 'seed': 0, 'autoTaper': True, 'pruneWidthPeak': 0.6000000238418579, 'branchDist': 1.25, 'prune': False, 'splitAngle': (8.0, 18.0, 18.0, 0.0), 'shapeS': '7', 'useParentAngle': True, 'af1': 1.0, 'armAnim': False, 'resU': 4, 'ratioPower': 1.2000000476837158, 'scaleV': 2.0, 'splitHeight': 0.20000000298023224, 'leafRotate': 137.5, 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'shape': '7', 'ratio': 0.019999999552965164, 'rMode': 'rotate', 'downAngle': (90.0, 48.0, 45.0, 45.0), 'bevelRes': 2, 'showLeaves': True, 'wind': 1.0, 'loopFrames': 0, 'splitByLen': True, 'lengthV': (0.0, 0.029999999329447746, 0.15000000596046448, 0.0), 'leafShape': 'hex', 'downAngleV': (0.0, 48.0, 10.0, 10.0), 'leafangle': -35.0, 'bevel': True, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'previewArm': False, 'frameRate': 1.0, 'curveBack': (0.0, -30.0, -20.0, 0.0), 'taperCrown': 0.20000000298023224, 'rotateV': (15.0, 0.0, 0.0, 0.0), 'scaleV0': 0.20000000298023224, 'gust': 1.0, 'horzLeaves': True, 'attractUp': (-0.5, -0.699999988079071, 0.0, 0.0), 'splitAngleV': (2.0, 5.0, 5.0, 0.0), 'pruneRatio': 1.0, 'curveV': (10.0, 35.0, 35.0, 0.0), 'prunePowerHigh': 0.5, 'closeTip': False, 'leafScaleV': 0.20000000298023224, 'leafAnim': False, 'minRadius': 0.0020000000949949026, 'af3': 4.0, 'attractOut': (0.0, 0.4000000059604645, 0.5, 0.0), 'branches': (0, 110, 18, 10), 'leafScaleX': 0.6499999761581421, 'length': (1.0, 0.46000000834465027, 0.44999998807907104, 0.44999998807907104), 'useOldDownAngle': False, 'armLevels': 2, 'boneStep': (1, 1, 1, 1), 'pruneBase': 0.30000001192092896, 'curveRes': (8, 5, 3, 1), 'prunePowerLow': 0.0010000000474974513, 'af2': 1.0, 'pruneWidth': 0.4000000059604645, 'nrings': 0, 'baseSize_s': 0.25, 'baseSize': 0.2800000011920929, 'leafDist': '6', 'scale0': 1.0}

View File

@ -1,2 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
{'downAngleV': (0.0, 42.0, 10.0, 10.0), 'useOldDownAngle': False, 'splitBias': 0.0, 'branchDist': 1.600000023841858, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafScale': 0.20000000298023224, 'baseSize': 0.06799984723329544, 'shapeS': '4', 'leafScaleX': 0.019999999552965164, 'nrings': 7, 'gustF': 0.07500000298023224, 'showLeaves': True, 'taperCrown': 0.0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafShape': 'rect', 'makeMesh': False, 'scale0': 1.0, 'length': (1.0, 0.3199999928474426, 0.75, 0.44999998807907104), 'ratioPower': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'baseSize_s': 0.25, 'splitHeight': 0.20000000298023224, 'handleType': '0', 'pruneBase': 0.30000001192092896, 'attractUp': (2.0, 0.0, 0.5, 0.5), 'boneStep': (1, 1, 1, 1), 'seed': 0, 'leafDownAngle': 65.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafAnim': False, 'gust': 1.0, 'curveV': (100.0, 100.0, 100.0, 0.0), 'splitAngle': (0.0, 22.0, 25.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafangle': -10.0, 'frameRate': 1.0, 'pruneRatio': 1.0, 'rMode': 'rotate', 'shape': '8', 'segSplits': (0.0, 0.30000001192092896, 0.4000000059604645, 0.0), 'branches': (0, 36, 7, 10), 'prunePowerHigh': 0.5, 'af1': 1.0, 'closeTip': False, 'splitAngleV': (0.0, 5.0, 0.0, 0.0), 'ratio': 0.019999999552965164, 'minRadius': 0.001500000013038516, 'levels': 3, 'leafRotate': 137.5, 'armLevels': 2, 'horzLeaves': False, 'pruneWidth': 0.4000000059604645, 'baseSplits': 0, 'scale': 4.0, 'leafScaleV': 0.10000000149011612, 'splitByLen': True, 'useParentAngle': True, 'previewArm': False, 'wind': 1.0, 'leafDist': '3', 'leafScaleT': 0.25, 'bevel': True, 'resU': 4, 'leafDownAngleV': 55.0, 'pruneWidthPeak': 0.6000000238418579, 'af3': 4.0, 'scaleV': 1.0, 'rootFlare': 1.0, 'loopFrames': 0, 'curve': (0.0, -40.0, -30.0, 0.0), 'leaves': 500, 'scaleV0': 0.10000000149011612, 'rotate': (99.5, 137.5, -90.0, 137.5), 'curveRes': (8, 5, 3, 1), 'useArm': False, 'af2': 1.0, 'bevelRes': 2, 'autoTaper': True, 'lengthV': (0.0, 0.15000000596046448, 0.25, 0.0), 'armAnim': False, 'prune': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafRotateV': 30.0, 'customShape': (0.8999999761581421, 1.0, 0.20000000298023224, 0.20000000298023224), 'rotateV': (15.0, 0.0, 0.0, 0.0)} {'downAngleV': (0.0, 42.0, 10.0, 10.0), 'useOldDownAngle': False, 'splitBias': 0.0, 'branchDist': 1.600000023841858, 'downAngle': (90.0, 110.0, 45.0, 45.0), 'leafScale': 0.20000000298023224, 'baseSize': 0.06799984723329544, 'shapeS': '4', 'leafScaleX': 0.019999999552965164, 'nrings': 7, 'gustF': 0.07500000298023224, 'showLeaves': True, 'taperCrown': 0.0, 'curveBack': (0.0, 0.0, 0.0, 0.0), 'leafShape': 'rect', 'makeMesh': False, 'scale0': 1.0, 'length': (1.0, 0.3199999928474426, 0.75, 0.44999998807907104), 'ratioPower': 1.0, 'taper': (1.0, 1.0, 1.0, 1.0), 'baseSize_s': 0.25, 'splitHeight': 0.20000000298023224, 'handleType': '0', 'pruneBase': 0.30000001192092896, 'attractUp': (2.0, 0.0, 0.5, 0.5), 'boneStep': (1, 1, 1, 1), 'seed': 0, 'leafDownAngle': 65.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafAnim': False, 'gust': 1.0, 'curveV': (100.0, 100.0, 100.0, 0.0), 'splitAngle': (0.0, 22.0, 25.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafangle': -10.0, 'frameRate': 1.0, 'pruneRatio': 1.0, 'rMode': 'rotate', 'shape': '8', 'segSplits': (0.0, 0.30000001192092896, 0.4000000059604645, 0.0), 'branches': (0, 36, 7, 10), 'prunePowerHigh': 0.5, 'af1': 1.0, 'closeTip': False, 'splitAngleV': (0.0, 5.0, 0.0, 0.0), 'ratio': 0.019999999552965164, 'minRadius': 0.001500000013038516, 'levels': 3, 'leafRotate': 137.5, 'armLevels': 2, 'horzLeaves': False, 'pruneWidth': 0.4000000059604645, 'baseSplits': 0, 'scale': 4.0, 'leafScaleV': 0.10000000149011612, 'splitByLen': True, 'useParentAngle': True, 'previewArm': False, 'wind': 1.0, 'leafDist': '3', 'leafScaleT': 0.25, 'bevel': True, 'resU': 4, 'leafDownAngleV': 55.0, 'pruneWidthPeak': 0.6000000238418579, 'af3': 4.0, 'scaleV': 1.0, 'rootFlare': 1.0, 'loopFrames': 0, 'curve': (0.0, -40.0, -30.0, 0.0), 'leaves': 500, 'scaleV0': 0.10000000149011612, 'rotate': (99.5, 137.5, -90.0, 137.5), 'curveRes': (8, 5, 3, 1), 'useArm': False, 'af2': 1.0, 'bevelRes': 2, 'autoTaper': True, 'lengthV': (0.0, 0.15000000596046448, 0.25, 0.0), 'armAnim': False, 'prune': False, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafRotateV': 30.0, 'customShape': (0.8999999761581421, 1.0, 0.20000000298023224, 0.20000000298023224), 'rotateV': (15.0, 0.0, 0.0, 0.0)}

View File

@ -1,2 +1,5 @@
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
{'showLeaves': False, 'leafScaleX': 0.20000000298023224, 'horzLeaves': False, 'useArm': False, 'rMode': 'rotate', 'branchDist': 1.5, 'scale': 15.0, 'armLevels': 2, 'gustF': 0.07500000298023224, 'closeTip': False, 'shape': '4', 'minRadius': 0.001500000013038516, 'leafScaleT': 0.0, 'leafDownAngle': 30.0, 'splitByLen': True, 'prunePowerLow': 0.0010000000474974513, 'splitBias': 0.0, 'autoTaper': True, 'leafRotateV': 30.0, 'scale0': 1.0, 'length': (0.75, 0.5, 1.5, 0.10000000149011612), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'bevel': True, 'baseSize': 0.20000000298023224, 'handleType': '1', 'ratioPower': 1.75, 'leafScaleV': 0.0, 'ratio': 0.02500000037252903, 'scaleV': 5.0, 'gust': 1.0, 'baseSplits': 2, 'loopFrames': 0, 'curve': (0.0, 20.0, -40.0, 0.0), 'pruneWidth': 0.5, 'shapeS': '4', 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'branches': (0, 35, 15, 1), 'frameRate': 1.0, 'splitAngle': (12.0, 30.0, 16.0, 0.0), 'seed': 2789, 'nrings': 0, 'previewArm': False, 'pruneWidthPeak': 0.6000000238418579, 'af1': 1.0, 'splitHeight': 0.20000000298023224, 'rotateV': (15.0, 15.0, 45.0, 0.0), 'attractUp': (0.0, 0.0, -2.75, -3.0), 'curveV': (150.0, 120.0, 0.0, 0.0), 'makeMesh': False, 'leaves': 150, 'curveBack': (0.0, 20.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'resU': 4, 'useOldDownAngle': False, 'pruneRatio': 0.800000011920929, 'levels': 3, 'taperCrown': 0.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafRotate': 137.5, 'prunePowerHigh': 0.20000000298023224, 'prune': False, 'leafangle': 0.0, 'bevelRes': 1, 'curveRes': (8, 16, 8, 1), 'rotate': (99.5, 137.5, -60.0, 140.0), 'pruneBase': 0.07000000029802322, 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'scaleV0': 0.0, 'boneStep': (1, 1, 1, 1), 'useParentAngle': True, 'armAnim': False, 'wind': 1.0, 'leafDist': '10', 'leafScale': 0.25, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafDownAngleV': 10.0, 'leafAnim': False, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'af2': 1.0, 'af3': 4.0, 'downAngleV': (0.0, 20.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'rootFlare': 1.0, 'baseSize_s': 0.25} {'showLeaves': False, 'leafScaleX': 0.20000000298023224, 'horzLeaves': False, 'useArm': False, 'rMode': 'rotate', 'branchDist': 1.5, 'scale': 15.0, 'armLevels': 2, 'gustF': 0.07500000298023224, 'closeTip': False, 'shape': '4', 'minRadius': 0.001500000013038516, 'leafScaleT': 0.0, 'leafDownAngle': 30.0, 'splitByLen': True, 'prunePowerLow': 0.0010000000474974513, 'splitBias': 0.0, 'autoTaper': True, 'leafRotateV': 30.0, 'scale0': 1.0, 'length': (0.75, 0.5, 1.5, 0.10000000149011612), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'bevel': True, 'baseSize': 0.20000000298023224, 'handleType': '1', 'ratioPower': 1.75, 'leafScaleV': 0.0, 'ratio': 0.02500000037252903, 'scaleV': 5.0, 'gust': 1.0, 'baseSplits': 2, 'loopFrames': 0, 'curve': (0.0, 20.0, -40.0, 0.0), 'pruneWidth': 0.5, 'shapeS': '4', 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'branches': (0, 35, 15, 1), 'frameRate': 1.0, 'splitAngle': (12.0, 30.0, 16.0, 0.0), 'seed': 2789, 'nrings': 0, 'previewArm': False, 'pruneWidthPeak': 0.6000000238418579, 'af1': 1.0, 'splitHeight': 0.20000000298023224, 'rotateV': (15.0, 15.0, 45.0, 0.0), 'attractUp': (0.0, 0.0, -2.75, -3.0), 'curveV': (150.0, 120.0, 0.0, 0.0), 'makeMesh': False, 'leaves': 150, 'curveBack': (0.0, 20.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'resU': 4, 'useOldDownAngle': False, 'pruneRatio': 0.800000011920929, 'levels': 3, 'taperCrown': 0.0, 'attractOut': (0.0, 0.0, 0.0, 0.0), 'leafRotate': 137.5, 'prunePowerHigh': 0.20000000298023224, 'prune': False, 'leafangle': 0.0, 'bevelRes': 1, 'curveRes': (8, 16, 8, 1), 'rotate': (99.5, 137.5, -60.0, 140.0), 'pruneBase': 0.07000000029802322, 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'scaleV0': 0.0, 'boneStep': (1, 1, 1, 1), 'useParentAngle': True, 'armAnim': False, 'wind': 1.0, 'leafDist': '10', 'leafScale': 0.25, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leafDownAngleV': 10.0, 'leafAnim': False, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'af2': 1.0, 'af3': 4.0, 'downAngleV': (0.0, 20.0, 10.0, 10.0), 'customShape': (0.5, 1.0, 0.30000001192092896, 0.5), 'leafShape': 'hex', 'rootFlare': 1.0, 'baseSize_s': 0.25}

View File

@ -1,2 +1,5 @@
# SPDX-FileCopyrightText: 2016-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
{'seed': 0, 'showLeaves': True, 'armLevels': 0, 'leafDist': '6', 'baseSize': 0.3499999940395355, 'loopFrames': 0, 'af3': 4.0, 'previewArm': False, 'leafangle': -45.0, 'useParentAngle': True, 'handleType': '0', 'branches': (0, 60, 30, 10), 'autoTaper': True, 'splitAngle': (12.0, 18.0, 16.0, 0.0), 'baseSize_s': 0.800000011920929, 'closeTip': False, 'af2': 1.0, 'prune': False, 'scale0': 1.0, 'rMode': 'rotate', 'useOldDownAngle': False, 'scaleV0': 0.10000000149011612, 'splitBias': 0.0, 'resU': 2, 'curveBack': (0.0, -5.0, 0.0, 0.0), 'scale': 12.0, 'shape': '8', 'leafDownAngle': 45.0, 'af1': 1.0, 'ratio': 0.019999999552965164, 'horzLeaves': True, 'leafRotate': 137.5, 'minRadius': 0.0020000000949949026, 'bevelRes': 2, 'splitByLen': True, 'rootFlare': 1.149999976158142, 'makeMesh': False, 'downAngleV': (0.0, 25.0, 30.0, 10.0), 'levels': 3, 'scaleV': 2.0, 'armAnim': False, 'lengthV': (0.05000000074505806, 0.20000000298023224, 0.3499999940395355, 0.0), 'pruneWidth': 0.3100000023841858, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'splitAngleV': (2.0, 2.0, 0.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafScaleT': 0.20000000298023224, 'leafScaleX': 0.5, 'leafRotateV': 0.0, 'ratioPower': 1.399999976158142, 'segSplits': (0.3499999940395355, 0.3499999940395355, 0.3499999940395355, 0.0), 'downAngle': (90.0, 60.0, 50.0, 45.0), 'rotateV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'attractUp': (0.0, -1.0, -0.6499999761581421, 0.0), 'leafScaleV': 0.25, 'frameRate': 1.0, 'curveV': (100.0, 80.0, 80.0, 0.0), 'boneStep': (1, 1, 1, 1), 'customShape': (0.699999988079071, 1.0, 0.30000001192092896, 0.5900000333786011), 'pruneBase': 0.30000001192092896, 'leafAnim': False, 'curveRes': (10, 8, 3, 1), 'nrings': 0, 'bevel': True, 'taperCrown': 0.0, 'baseSplits': 2, 'leafShape': 'hex', 'splitHeight': 0.550000011920929, 'wind': 1.0, 'curve': (0.0, -30.0, -25.0, 0.0), 'rotate': (137.5, 137.5, 137.5, 137.5), 'length': (1.0, 0.33000001311302185, 0.375, 0.44999998807907104), 'leafScale': 0.20000000298023224, 'attractOut': (0.0, 0.20000000298023224, 0.25, 0.0), 'prunePowerHigh': 0.10000000149011612, 'branchDist': 1.5, 'useArm': False, 'pruneRatio': 1.0, 'shapeS': '7', 'leafDownAngleV': 10.0, 'pruneWidthPeak': 0.5, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leaves': 16} {'seed': 0, 'showLeaves': True, 'armLevels': 0, 'leafDist': '6', 'baseSize': 0.3499999940395355, 'loopFrames': 0, 'af3': 4.0, 'previewArm': False, 'leafangle': -45.0, 'useParentAngle': True, 'handleType': '0', 'branches': (0, 60, 30, 10), 'autoTaper': True, 'splitAngle': (12.0, 18.0, 16.0, 0.0), 'baseSize_s': 0.800000011920929, 'closeTip': False, 'af2': 1.0, 'prune': False, 'scale0': 1.0, 'rMode': 'rotate', 'useOldDownAngle': False, 'scaleV0': 0.10000000149011612, 'splitBias': 0.0, 'resU': 2, 'curveBack': (0.0, -5.0, 0.0, 0.0), 'scale': 12.0, 'shape': '8', 'leafDownAngle': 45.0, 'af1': 1.0, 'ratio': 0.019999999552965164, 'horzLeaves': True, 'leafRotate': 137.5, 'minRadius': 0.0020000000949949026, 'bevelRes': 2, 'splitByLen': True, 'rootFlare': 1.149999976158142, 'makeMesh': False, 'downAngleV': (0.0, 25.0, 30.0, 10.0), 'levels': 3, 'scaleV': 2.0, 'armAnim': False, 'lengthV': (0.05000000074505806, 0.20000000298023224, 0.3499999940395355, 0.0), 'pruneWidth': 0.3100000023841858, 'gustF': 0.07500000298023224, 'taper': (1.0, 1.0, 1.0, 1.0), 'splitAngleV': (2.0, 2.0, 0.0, 0.0), 'prunePowerLow': 0.0010000000474974513, 'leafScaleT': 0.20000000298023224, 'leafScaleX': 0.5, 'leafRotateV': 0.0, 'ratioPower': 1.399999976158142, 'segSplits': (0.3499999940395355, 0.3499999940395355, 0.3499999940395355, 0.0), 'downAngle': (90.0, 60.0, 50.0, 45.0), 'rotateV': (0.0, 0.0, 0.0, 0.0), 'gust': 1.0, 'attractUp': (0.0, -1.0, -0.6499999761581421, 0.0), 'leafScaleV': 0.25, 'frameRate': 1.0, 'curveV': (100.0, 80.0, 80.0, 0.0), 'boneStep': (1, 1, 1, 1), 'customShape': (0.699999988079071, 1.0, 0.30000001192092896, 0.5900000333786011), 'pruneBase': 0.30000001192092896, 'leafAnim': False, 'curveRes': (10, 8, 3, 1), 'nrings': 0, 'bevel': True, 'taperCrown': 0.0, 'baseSplits': 2, 'leafShape': 'hex', 'splitHeight': 0.550000011920929, 'wind': 1.0, 'curve': (0.0, -30.0, -25.0, 0.0), 'rotate': (137.5, 137.5, 137.5, 137.5), 'length': (1.0, 0.33000001311302185, 0.375, 0.44999998807907104), 'leafScale': 0.20000000298023224, 'attractOut': (0.0, 0.20000000298023224, 0.25, 0.0), 'prunePowerHigh': 0.10000000149011612, 'branchDist': 1.5, 'useArm': False, 'pruneRatio': 1.0, 'shapeS': '7', 'leafDownAngleV': 10.0, 'pruneWidthPeak': 0.5, 'radiusTweak': (1.0, 1.0, 1.0, 1.0), 'leaves': 16}

View File

@ -1,2 +1,5 @@
# SPDX-FileCopyrightText: 2015-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
{'curveRes': (8, 16, 12, 1), 'scaleV0': 0.0, 'pruneRatio': 1.0, 'rotate': (0.0, -120.0, -120.0, 140.0), 'resU': 4, 'levels': 2, 'frameRate': 1.0, 'ratioPower': 2.0, 'windGust': 0.0, 'branches': (0, 25, 10, 300), 'attractUp': -3.0, 'bevel': True, 'windSpeed': 2.0, 'rotateV': (0.0, 30.0, 30.0, 0.0), 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'handleType': '1', 'shape': '3', 'curveV': (120.0, 90.0, 0.0, 0.0), 'scale': 15.0, 'leafShape': 'hex', 'showLeaves': False, 'ratio': 0.029999999329447746, 'leaves': 15, 'armAnim': False, 'leafScale': 0.11999999731779099, 'leafDist': '4', 'useArm': False, 'splitAngle': (3.0, 30.0, 45.0, 0.0), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'seed': 0, 'scaleV': 5.0, 'startCurv': 0.0, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'pruneWidth': 0.4000000059604645, 'baseSize': 0.05000000074505806, 'bevelRes': 0, 'length': (0.800000011920929, 0.5, 1.5, 0.10000000149011612), 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'prune': False, 'curve': (0.0, 40.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'prunePowerHigh': 0.5, 'leafScaleX': 0.20000000298023224, 'curveBack': (20.0, 80.0, 0.0, 0.0), 'bend': 0.0, 'scale0': 1.0, 'prunePowerLow': 0.0010000000474974513, 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'baseSplits': 2, 'pruneWidthPeak': 0.6000000238418579} {'curveRes': (8, 16, 12, 1), 'scaleV0': 0.0, 'pruneRatio': 1.0, 'rotate': (0.0, -120.0, -120.0, 140.0), 'resU': 4, 'levels': 2, 'frameRate': 1.0, 'ratioPower': 2.0, 'windGust': 0.0, 'branches': (0, 25, 10, 300), 'attractUp': -3.0, 'bevel': True, 'windSpeed': 2.0, 'rotateV': (0.0, 30.0, 30.0, 0.0), 'segSplits': (0.10000000149011612, 0.20000000298023224, 0.20000000298023224, 0.0), 'handleType': '1', 'shape': '3', 'curveV': (120.0, 90.0, 0.0, 0.0), 'scale': 15.0, 'leafShape': 'hex', 'showLeaves': False, 'ratio': 0.029999999329447746, 'leaves': 15, 'armAnim': False, 'leafScale': 0.11999999731779099, 'leafDist': '4', 'useArm': False, 'splitAngle': (3.0, 30.0, 45.0, 0.0), 'lengthV': (0.0, 0.10000000149011612, 0.0, 0.0), 'seed': 0, 'scaleV': 5.0, 'startCurv': 0.0, 'downAngle': (0.0, 20.0, 30.0, 20.0), 'pruneWidth': 0.4000000059604645, 'baseSize': 0.05000000074505806, 'bevelRes': 0, 'length': (0.800000011920929, 0.5, 1.5, 0.10000000149011612), 'downAngleV': (0.0, 10.0, 10.0, 10.0), 'prune': False, 'curve': (0.0, 40.0, 0.0, 0.0), 'taper': (1.0, 1.0, 1.0, 1.0), 'prunePowerHigh': 0.5, 'leafScaleX': 0.20000000298023224, 'curveBack': (20.0, 80.0, 0.0, 0.0), 'bend': 0.0, 'scale0': 1.0, 'prunePowerLow': 0.0010000000474974513, 'splitAngleV': (0.0, 10.0, 20.0, 0.0), 'baseSplits': 2, 'pruneWidthPeak': 0.6000000238418579}

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
@ -416,7 +418,6 @@ class add_mesh_bolt(Operator, AddObjectHelper):
(context.active_object.data is not None) and ('Bolt' in context.active_object.data.keys()) and \ (context.active_object.data is not None) and ('Bolt' in context.active_object.data.keys()) and \
(self.change == True): (self.change == True):
obj = context.active_object obj = context.active_object
use_auto_smooth = bool(obj.data.use_auto_smooth) # Copy value, do not take a reference
use_smooth = bool(obj.data.polygons[0].use_smooth) # Copy value, do not take a reference use_smooth = bool(obj.data.polygons[0].use_smooth) # Copy value, do not take a reference
mesh = createMesh.Create_New_Mesh(self, context) mesh = createMesh.Create_New_Mesh(self, context)
@ -428,9 +429,10 @@ class add_mesh_bolt(Operator, AddObjectHelper):
bm.free() bm.free()
# Preserve flat/smooth choice. New mesh is flat by default # Preserve flat/smooth choice. New mesh is flat by default
obj.data.use_auto_smooth = use_auto_smooth
if use_smooth: if use_smooth:
bpy.ops.object.shade_smooth() bpy.ops.object.shade_smooth()
else:
bpy.ops.object.shade_flat()
bpy.data.meshes.remove(mesh) bpy.data.meshes.remove(mesh)

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
bl_info = { bl_info = {

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Contributed to by: Chichiri, Jace Priester # # Contributed to by: Chichiri, Jace Priester #

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Original Authors: Evan J. Rosky (syrux), Chichiri, Jace Priester # Original Authors: Evan J. Rosky (syrux), Chichiri, Jace Priester
@ -639,7 +641,6 @@ class discombobulator_dodads_list(Menu):
bl_idname = "OBJECT_MT_discombobulator_dodad_list" bl_idname = "OBJECT_MT_discombobulator_dodad_list"
bl_label = "List of saved Doodads" bl_label = "List of saved Doodads"
bl_description = "List of the saved Doodad Object Names" bl_description = "List of the saved Doodad Object Names"
bl_options = {"REGISTER"}
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
@ -658,7 +659,6 @@ class discombob_help(Menu):
bl_idname = "HELP_MT_discombobulator" bl_idname = "HELP_MT_discombobulator"
bl_label = "Usage Information" bl_label = "Usage Information"
bl_description = "Help" bl_description = "Help"
bl_options = {"REGISTER"}
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Authors: dudecon, jambay # Authors: dudecon, jambay

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# authors: dudecon, jambay # authors: dudecon, jambay

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2011-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Contributed to by: # Contributed to by:

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2015-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Original Author Liero # Original Author Liero

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Original by Buerbaum Martin (Pontiac), Elod Csirmaz # Original by Buerbaum Martin (Pontiac), Elod Csirmaz

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: revolt_randy, Jambay # Author: revolt_randy, Jambay

View File

@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2009-2010 Michel J. Anders (varkenvarken)
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Copyright 2009-2010 Michel J. Anders (varkenvarken)
import bpy import bpy
from bpy.types import Operator from bpy.types import Operator

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: Pontiac, Fourmadmen, Dreampainter # Author: Pontiac, Fourmadmen, Dreampainter

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2012-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: Kayo Phoenix # Author: Kayo Phoenix

View File

@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2015 Sugiany
#
# SPDX-License-Identifier: MIT # SPDX-License-Identifier: MIT
# Copyright 2015 Sugiany
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: Buerbaum Martin (Pontiac) # Author: Buerbaum Martin (Pontiac)

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: Phil Cote, cotejrp1, (http://www.blenderaddons.com) # Author: Phil Cote, cotejrp1, (http://www.blenderaddons.com)

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Paul "BrikBot" Marshall # Paul "BrikBot" Marshall

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# This try block allows for the script to psudo-intelligently select the # This try block allows for the script to psudo-intelligently select the

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Blender rock creation tool # Blender rock creation tool
@ -148,9 +150,6 @@ def createMeshObject(context, verts, edges, faces, name):
# Make a mesh from a list of verts/edges/faces. # Make a mesh from a list of verts/edges/faces.
mesh.from_pydata(verts, edges, faces) mesh.from_pydata(verts, edges, faces)
# Set mesh to use auto smoothing:
mesh.use_auto_smooth = True
# Update mesh geometry after adding stuff. # Update mesh geometry after adding stuff.
mesh.update() mesh.update()
@ -664,65 +663,67 @@ def generateObject(context, muX, sigmaX, scaleX, upperSkewX, muY, sigmaY,
# mesh = bpy.data.meshes[name] # mesh = bpy.data.meshes[name]
mesh = obj.data mesh = obj.data
creases = mesh.edge_creases_ensure().data
# Apply creasing: # Apply creasing:
if shape == 0: if shape == 0:
for i in range(12): for i in range(12):
# todo: "0.375 / 3"? WTF? That = 0.125. . . . # todo: "0.375 / 3"? WTF? That = 0.125. . . .
# *** Completed 7/15/2011: Changed second one *** # *** Completed 7/15/2011: Changed second one ***
mesh.edges[i].crease = gauss(0.125, 0.125) creases[i].value = gauss(0.125, 0.125)
elif shape == 1: elif shape == 1:
for i in [0, 2]: for i in [0, 2]:
mesh.edges[i].crease = gauss(0.5, 0.125) creases[i].value = gauss(0.5, 0.125)
for i in [6, 9, 11, 12]: for i in [6, 9, 11, 12]:
mesh.edges[i].crease = gauss(0.25, 0.05) creases[i].value = gauss(0.25, 0.05)
for i in [5, 7, 15, 16]: for i in [5, 7, 15, 16]:
mesh.edges[i].crease = gauss(0.125, 0.025) creases[i].value = gauss(0.125, 0.025)
elif shape == 2: elif shape == 2:
for i in range(18): for i in range(18):
mesh.edges[i].crease = gauss(0.125, 0.025) creases[i].value = gauss(0.125, 0.025)
elif shape == 3: elif shape == 3:
for i in [0, 1, 6, 10, 13]: for i in [0, 1, 6, 10, 13]:
mesh.edges[i].crease = gauss(0.25, 0.05) creases[i].value = gauss(0.25, 0.05)
mesh.edges[8].crease = gauss(0.5, 0.125) creases[8].value = gauss(0.5, 0.125)
elif shape == 4: elif shape == 4:
for i in [5, 6, 7, 10, 14, 16, 19, 21]: for i in [5, 6, 7, 10, 14, 16, 19, 21]:
mesh.edges[i].crease = gauss(0.5, 0.125) creases[i].value = gauss(0.5, 0.125)
elif shape == 7: elif shape == 7:
for i in range(18): for i in range(18):
if i in [0, 1, 2, 3, 6, 7, 8, 9, 13, 16]: if i in [0, 1, 2, 3, 6, 7, 8, 9, 13, 16]:
mesh.edges[i].crease = gauss(0.5, 0.125) creases[i].value = gauss(0.5, 0.125)
elif i in [11, 17]: elif i in [11, 17]:
mesh.edges[i].crease = gauss(0.25, 0.05) creases[i].value = gauss(0.25, 0.05)
else: else:
mesh.edges[i].crease = gauss(0.125, 0.025) creases[i].value = gauss(0.125, 0.025)
elif shape == 8: elif shape == 8:
for i in range(12): for i in range(12):
if i in [0, 3, 8, 9, 10]: if i in [0, 3, 8, 9, 10]:
mesh.edges[i].crease = gauss(0.5, 0.125) creases[i].value = gauss(0.5, 0.125)
elif i == 11: elif i == 11:
mesh.edges[i].crease = gauss(0.25, 0.05) creases[i].value = gauss(0.25, 0.05)
else: else:
mesh.edges[i].crease = gauss(0.125, 0.025) creases[i].value = gauss(0.125, 0.025)
elif shape == 9: elif shape == 9:
for i in range(12): for i in range(12):
if i in [0, 3, 4, 11]: if i in [0, 3, 4, 11]:
mesh.edges[i].crease = gauss(0.5, 0.125) creases[i].value = gauss(0.5, 0.125)
else: else:
mesh.edges[i].crease = gauss(0.25, 0.05) creases[i].value = gauss(0.25, 0.05)
elif shape == 10: elif shape == 10:
for i in range(12): for i in range(12):
if i in [0, 2, 3, 4, 8, 11]: if i in [0, 2, 3, 4, 8, 11]:
mesh.edges[i].crease = gauss(0.5, 0.125) creases[i].value = gauss(0.5, 0.125)
elif i in [1, 5, 7]: elif i in [1, 5, 7]:
mesh.edges[i].crease = gauss(0.25, 0.05) creases[i].value = gauss(0.25, 0.05)
else: else:
mesh.edges[i].crease = gauss(0.125, 0.025) creases[i].value = gauss(0.125, 0.025)
elif shape == 11: elif shape == 11:
for i in range(11): for i in range(11):
if i in [1, 2, 3, 4, 8, 11]: if i in [1, 2, 3, 4, 8, 11]:
mesh.edges[i].crease = gauss(0.25, 0.05) creases[i].value = gauss(0.25, 0.05)
else: else:
mesh.edges[i].crease = gauss(0.125, 0.025) creases[i].value = gauss(0.125, 0.025)
return obj return obj

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Paul "BrikBot" Marshall # Paul "BrikBot" Marshall

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Converts a formatted string to a float tuple: # Converts a formatted string to a float tuple:

View File

@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2015-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: Dominic Kröper, (dommetysk)
import bpy import bpy
from math import ( from math import (

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2015-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: Alain Ducharme (phymec) # Author: Alain Ducharme (phymec)

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: DreamPainter # Author: DreamPainter

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2015-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Original by Fourmadmen # Original by Fourmadmen

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2011-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: DreamPainter # Author: DreamPainter

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2012-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author, Anthony D'Agostino # Author, Anthony D'Agostino

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2012-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: Anthony D'Agostino # Author: Anthony D'Agostino

View File

@ -1,5 +1,6 @@
# SPDX-FileCopyrightText: 2017-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: Sjaak-de-Draak
bl_info = { bl_info = {
"name": "Triangles", "name": "Triangles",

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Author: Paulo_Gomes # Author: Paulo_Gomes

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2015-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Originals by meta-androcto, Pablo Vazquez, Liero, Richard Wilks # Originals by meta-androcto, Pablo Vazquez, Liero, Richard Wilks

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# Contributed to by PKHG, Meta Androcto, Noctumsolis, Lijenstina, # Contributed to by PKHG, Meta Androcto, Noctumsolis, Lijenstina,

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
from math import sin, cos, sqrt from math import sin, cos, sqrt

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
from .vefm_271 import mesh, vertex, edge, face from .vefm_271 import mesh, vertex, edge, face

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2016-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# vert class and overloading experiments # vert class and overloading experiments

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Amaranth Amaranth
@ -50,7 +53,6 @@ from amaranth.render import (
passepartout, passepartout,
final_resolution, final_resolution,
samples_scene, samples_scene,
render_output_z,
) )
from amaranth.animation import ( from amaranth.animation import (

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Current Frame Slider Current Frame Slider

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Jump X Frames on Shift Up/Down Jump X Frames on Shift Up/Down
@ -162,25 +165,26 @@ def register():
# register keyboard shortcuts # register keyboard shortcuts
wm = bpy.context.window_manager wm = bpy.context.window_manager
kc = wm.keyconfigs.addon kc = wm.keyconfigs.addon
if kc is not None:
km = kc.keymaps.new(name="Frames") km = kc.keymaps.new(name="Frames")
kmi = km.keymap_items.new('screen.amth_keyframe_jump_inbetween', 'UP_ARROW', 'PRESS', shift=True, ctrl=True) kmi = km.keymap_items.new('screen.amth_keyframe_jump_inbetween', 'UP_ARROW', 'PRESS', shift=True, ctrl=True)
kmi.properties.backwards = False kmi.properties.backwards = False
KEYMAPS.append((km, kmi)) KEYMAPS.append((km, kmi))
kmi = km.keymap_items.new('screen.amth_keyframe_jump_inbetween', 'DOWN_ARROW', 'PRESS', shift=True, ctrl=True) kmi = km.keymap_items.new('screen.amth_keyframe_jump_inbetween', 'DOWN_ARROW', 'PRESS', shift=True, ctrl=True)
kmi.properties.backwards = True kmi.properties.backwards = True
KEYMAPS.append((km, kmi)) KEYMAPS.append((km, kmi))
kmi = km.keymap_items.new( kmi = km.keymap_items.new(
"screen.amaranth_frame_jump", "UP_ARROW", "PRESS", shift=True) "screen.amaranth_frame_jump", "UP_ARROW", "PRESS", shift=True)
kmi.properties.forward = True kmi.properties.forward = True
KEYMAPS.append((km, kmi)) KEYMAPS.append((km, kmi))
kmi = km.keymap_items.new( kmi = km.keymap_items.new(
"screen.amaranth_frame_jump", "DOWN_ARROW", "PRESS", shift=True) "screen.amaranth_frame_jump", "DOWN_ARROW", "PRESS", shift=True)
kmi.properties.forward = False kmi.properties.forward = False
KEYMAPS.append((km, kmi)) KEYMAPS.append((km, kmi))
def unregister(): def unregister():

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Bone Motion Paths: Bone Motion Paths:

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Time Extra Info Time Extra Info

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Color Management Presets Color Management Presets

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Object ID for Dupli Groups Object ID for Dupli Groups
Say you have a linked character or asset, you can now set an Object ID for the Say you have a linked character or asset, you can now set an Object ID for the

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Sequencer: Display Image File Name Sequencer: Display Image File Name

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Symmetry Tools: Find Asymmetric + Make Symmetric (by Sergey Sharybin) Symmetry Tools: Find Asymmetric + Make Symmetric (by Sergey Sharybin)

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Display Active Image Node on Image Editor Display Active Image Node on Image Editor
@ -106,11 +109,13 @@ def ui(self, context):
def register(): def register():
bpy.utils.register_class(AMTH_NODE_OT_show_active_node_image) bpy.utils.register_class(AMTH_NODE_OT_show_active_node_image)
kc = bpy.context.window_manager.keyconfigs.addon kc = bpy.context.window_manager.keyconfigs.addon
km = kc.keymaps.new(name="Node Editor", space_type="NODE_EDITOR") if kc is not None:
kmi = km.keymap_items.new("node.show_active_node_image", km = kc.keymaps.new(name="Node Editor", space_type="NODE_EDITOR")
"LEFTMOUSE", "DOUBLE_CLICK") kmi = km.keymap_items.new("node.show_active_node_image",
KEYMAPS.append((km, kmi)) "LEFTMOUSE", "DOUBLE_CLICK")
KEYMAPS.append((km, kmi))
bpy.types.NODE_MT_node.append(ui) bpy.types.NODE_MT_node.append(ui)
bpy.types.NODE_MT_context_menu.append(ui) bpy.types.NODE_MT_context_menu.append(ui)

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2010-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Nodes Stats Nodes Stats

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Nodes: XYZ Sliders for Normal Node Nodes: XYZ Sliders for Normal Node

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Nodes Simplify Panel [WIP Feature] Nodes Simplify Panel [WIP Feature]

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Node Templates - Vignette, Vector Blur Node Templates - Vignette, Vector Blur
@ -52,11 +55,13 @@ def register():
bpy.utils.register_class(AMTH_NODE_OT_AddTemplateVignette) bpy.utils.register_class(AMTH_NODE_OT_AddTemplateVignette)
bpy.utils.register_class(AMTH_NODE_OT_AddTemplateVectorBlur) bpy.utils.register_class(AMTH_NODE_OT_AddTemplateVectorBlur)
bpy.types.NODE_HT_header.append(node_templates_pulldown) bpy.types.NODE_HT_header.append(node_templates_pulldown)
kc = bpy.context.window_manager.keyconfigs.addon kc = bpy.context.window_manager.keyconfigs.addon
km = kc.keymaps.new(name="Node Editor", space_type="NODE_EDITOR") if kc is not None:
kmi = km.keymap_items.new("wm.call_menu", "W", "PRESS") km = kc.keymaps.new(name="Node Editor", space_type="NODE_EDITOR")
kmi.properties.name = "AMTH_NODE_MT_amaranth_templates" kmi = km.keymap_items.new("wm.call_menu", "W", "PRESS")
KEYMAPS.append((km, kmi)) kmi.properties.name = "AMTH_NODE_MT_amaranth_templates"
KEYMAPS.append((km, kmi))
def unregister(): def unregister():

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Set Camera Bounds as Render Border Set Camera Bounds as Render Border

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
UI: Final Resolution UI: Final Resolution

View File

@ -1,3 +1,5 @@
# SPDX-FileCopyrightText: 2019-2022 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Select Meshlights Select Meshlights

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Passepartout on Specials menu Passepartout on Specials menu

View File

@ -1,41 +0,0 @@
# SPDX-License-Identifier: GPL-2.0-or-later
"""
EXR Render: Warn when Z not connected
Display a little warning label when exporting EXR, with Z Buffer enabled, but
forgot to plug the Z input in the Compositor.
Might be a bit too specific, but found it nice to remember to plug the Z input
if we explicitly specify for Z Buffers to be saved (because it's disabled by
default).
Find it on the Output panel, Render properties.
"""
import bpy
# // FEATURE: Object ID for objects inside DupliGroups
# UI: Warning about Z not connected when using EXR
def ui_render_output_z(self, context):
scene = bpy.context.scene
image = scene.render.image_settings
if scene.render.use_compositing and \
image.file_format == 'OPEN_EXR' and \
image.use_zbuffer:
if scene.node_tree and scene.node_tree.nodes:
for no in scene.node_tree.nodes:
if no.type == 'COMPOSITE':
if not no.inputs['Z'].is_linked:
self.layout.label(
text="The Z output in node \"%s\" is not connected" %
no.name, icon="ERROR")
# // UI: Warning about Z not connected
def register():
bpy.types.RENDER_PT_output.append(ui_render_output_z)
def unregister():
bpy.types.RENDER_PT_output.remove(ui_render_output_z)

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Cycles: Samples per Scene Cycles: Samples per Scene

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
File Browser > Go to Current Blend's Folder File Browser > Go to Current Blend's Folder

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Scene Debug Panel Scene Debug Panel

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
File Browser: Libraries Bookmark File Browser: Libraries Bookmark

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
import bpy import bpy

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Refresh Scene Refresh Scene
@ -49,11 +52,13 @@ def button_refresh(self, context):
def register(): def register():
bpy.utils.register_class(AMTH_SCENE_OT_refresh) bpy.utils.register_class(AMTH_SCENE_OT_refresh)
bpy.types.VIEW3D_MT_object_context_menu.append(button_refresh) bpy.types.VIEW3D_MT_object_context_menu.append(button_refresh)
kc = bpy.context.window_manager.keyconfigs.addon kc = bpy.context.window_manager.keyconfigs.addon
km = kc.keymaps.new(name="Window") if kc is not None:
kmi = km.keymap_items.new("scene.refresh", "F5", "PRESS", km = kc.keymaps.new(name="Window")
alt=True) kmi = km.keymap_items.new("scene.refresh", "F5", "PRESS",
KEYMAPS.append((km, kmi)) alt=True)
KEYMAPS.append((km, kmi))
def unregister(): def unregister():

View File

@ -1,4 +1,7 @@
# SPDX-FileCopyrightText: 2019-2023 Blender Foundation
#
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
""" """
Save & Reload File Save & Reload File
@ -71,12 +74,14 @@ def button_save_reload(self, context):
def register(): def register():
bpy.utils.register_class(AMTH_WM_OT_save_reload) bpy.utils.register_class(AMTH_WM_OT_save_reload)
bpy.types.TOPBAR_MT_file.append(button_save_reload) bpy.types.TOPBAR_MT_file.append(button_save_reload)
wm = bpy.context.window_manager wm = bpy.context.window_manager
kc = wm.keyconfigs.addon kc = wm.keyconfigs.addon
km = kc.keymaps.new(name="Window") if kc is not None:
kmi = km.keymap_items.new("wm.save_reload", "W", "PRESS", km = kc.keymaps.new(name="Window")
shift=True, ctrl=True) kmi = km.keymap_items.new("wm.save_reload", "W", "PRESS",
KEYMAPS.append((km, kmi)) shift=True, ctrl=True)
KEYMAPS.append((km, kmi))
def unregister(): def unregister():

Some files were not shown because too many files have changed in this diff Show More