Spelling fixes in comments and descriptions, patch by luzpaz
Differential Revision: https://developer.blender.org/D5240
This commit is contained in:
parent
2176c8f2aa
commit
4e1cda9885
|
@ -1358,7 +1358,7 @@ def perform_pruning(baseSize, baseSplits, childP, cu, currentMax, currentMin, cu
|
|||
stemsegL, lengthV[n], taperCrown, boneStep, rotate, rotateV
|
||||
)
|
||||
|
||||
# If pruning is enabled then we must to the check to see if the end of the spline is within the evelope
|
||||
# If pruning is enabled then we must check to see if the end of the spline is within the envelope
|
||||
if prune:
|
||||
# Check each endpoint to see if it is inside
|
||||
for s in splineList:
|
||||
|
|
|
@ -233,20 +233,20 @@ def Mirror_Verts_Faces(VERTS, FACES, AXIS, FLIP_POINT=0):
|
|||
|
||||
# Returns a list of faces that
|
||||
# make up an array of 4 point polygon.
|
||||
def Build_Face_List_Quads(OFFSET, COLUM, ROW, FLIP=0):
|
||||
def Build_Face_List_Quads(OFFSET, COLUMN, ROW, FLIP=0):
|
||||
Ret = []
|
||||
RowStart = 0
|
||||
for j in range(ROW):
|
||||
for i in range(COLUM):
|
||||
for i in range(COLUMN):
|
||||
Res1 = RowStart + i
|
||||
Res2 = RowStart + i + (COLUM + 1)
|
||||
Res3 = RowStart + i + (COLUM + 1) + 1
|
||||
Res2 = RowStart + i + (COLUMN + 1)
|
||||
Res3 = RowStart + i + (COLUMN + 1) + 1
|
||||
Res4 = RowStart + i + 1
|
||||
if FLIP:
|
||||
Ret.append([OFFSET + Res1, OFFSET + Res2, OFFSET + Res3, OFFSET + Res4])
|
||||
else:
|
||||
Ret.append([OFFSET + Res4, OFFSET + Res3, OFFSET + Res2, OFFSET + Res1])
|
||||
RowStart += COLUM + 1
|
||||
RowStart += COLUMN + 1
|
||||
return Ret
|
||||
|
||||
|
||||
|
|
|
@ -50,12 +50,12 @@ Limitations and new delta option for 2.8
|
|||
it will be set to zero.
|
||||
|
||||
- new "delta" option usage, when you hope to make new shape-key with keep currently visible other shape keys value.
|
||||
it can generate new shape key, with value as 1.00. then deform target shape as soruce shape with keep other shape key values relative.
|
||||
|
||||
- If overwrite shape key,<select active shape key of target as non "base shape">
|
||||
current shape key value is ignored and turn as 1.00.
|
||||
|
||||
then if active shape key was driven (bone rotation etc), you may get un-expected result. When transfer, I recommend, keep set active-shape key as base . so transfered shape key do not "overwrite". but generate new shape key.
|
||||
it can generate new shape key, with value as 1.00. then deform target shape as source shape with keep other shape key values relative.
|
||||
|
||||
- If overwrite shape key,<select active shape key of target as non "base shape">
|
||||
current shape key value is ignored and turn as 1.00.
|
||||
|
||||
then if active shape key was driven (bone rotation etc), you may get un-expected result. When transfer, I recommend, keep set active-shape key as base. so transferred shape key do not "overwrite". but generate new shape key.
|
||||
if active-shape key have no driver, you can overwrite it (but as 1.00 value )
|
||||
"""
|
||||
|
||||
|
@ -254,7 +254,7 @@ class add_corrective_pose_shape(bpy.types.Operator):
|
|||
class add_corrective_pose_shape_delta (bpy.types.Operator):
|
||||
"""Adds first object as shape to second object for the current pose """ \
|
||||
"""while maintaining modifiers and currently used other shape keys""" \
|
||||
"""with keep other shape key value, generate new shape key which deform to soruce shape """
|
||||
"""with keep other shape key value, generate new shape key which deform to source shape """
|
||||
|
||||
bl_idname = "object.add_corrective_pose_shape_delta"
|
||||
bl_label = "Add object as corrective pose shape delta"
|
||||
|
|
|
@ -172,7 +172,7 @@ def create_roof_mesh(self):
|
|||
bpy.context.view_layer.objects.active = myroof
|
||||
myroof.select_set(True)
|
||||
|
||||
# Thicknes
|
||||
# Thickness
|
||||
if self.roof_thick > 0.0:
|
||||
set_modifier_solidify(myroof, self.roof_thick)
|
||||
# Subsurf
|
||||
|
|
|
@ -584,7 +584,7 @@ class GlLine(GlBaseLine):
|
|||
def sized_normal(self, t, size):
|
||||
"""
|
||||
GlLine perpendicular on plane defined by z_axis and of given size
|
||||
positionned at t in current line
|
||||
positioned at t in current line
|
||||
lie on the right side
|
||||
p1
|
||||
|--x
|
||||
|
|
|
@ -1073,7 +1073,7 @@ class SizeLocationManipulator(SizeManipulator):
|
|||
|
||||
Also take care of moving linked objects too
|
||||
Changing size is not necessary as link does
|
||||
allredy handle this and childs panels are
|
||||
already handle this and childs panels are
|
||||
updated by base object.
|
||||
"""
|
||||
def __init__(self, context, o, datablock, manipulator, handle_size, snap_callback=None):
|
||||
|
@ -1185,7 +1185,7 @@ class SnapSizeLocationManipulator(SizeLocationManipulator):
|
|||
|
||||
Also take care of moving linked objects too
|
||||
Changing size is not necessary as link does
|
||||
allredy handle this and childs panels are
|
||||
already handle this and childs panels are
|
||||
updated by base object.
|
||||
|
||||
|
||||
|
|
|
@ -274,7 +274,7 @@ class BlenderKitUIProps(PropertyGroup):
|
|||
thumb_size: IntProperty(name="Thumbnail Size", default=thumb_size_def, min=-1, max=256)
|
||||
|
||||
margin: IntProperty(name="Margin", default=margin_def, min=-1, max=256)
|
||||
highlight_margin: IntProperty(name="Higlight Margin", default=int(margin_def / 2), min=-10, max=256)
|
||||
highlight_margin: IntProperty(name="Highlight Margin", default=int(margin_def / 2), min=-10, max=256)
|
||||
|
||||
bar_height: IntProperty(name="Bar Height", default=thumb_size_def + 2 * margin_def, min=-1, max=2048)
|
||||
bar_x_offset: IntProperty(name="Bar X Offset", default=20, min=0, max=5000)
|
||||
|
|
|
@ -45,7 +45,7 @@ def append_material(file_name, matname=None, link=False, fake_user=True):
|
|||
'''append a material type asset'''
|
||||
# first, we have to check if there is a material with same name
|
||||
# in previous step there's check if the imported material
|
||||
# is allready in the scene, so we know same name != same material
|
||||
# is already in the scene, so we know same name != same material
|
||||
|
||||
mats_before = bpy.data.materials.keys()
|
||||
|
||||
|
|
|
@ -312,7 +312,7 @@ def append_asset(asset_data, **kwargs): # downloaders=[], location=None,
|
|||
sprops.append_link = 'APPEND'
|
||||
sprops.import_as = 'INDIVIDUAL'
|
||||
|
||||
# set consistency for objects allready in scene, otherwise this literally breaks blender :)
|
||||
# set consistency for objects already in scene, otherwise this literally breaks blender :)
|
||||
ain = asset_in_scene(asset_data)
|
||||
if ain is not False:
|
||||
if ain == 'LINKED':
|
||||
|
@ -382,7 +382,7 @@ def append_asset(asset_data, **kwargs): # downloaders=[], location=None,
|
|||
|
||||
elif asset_data['asset_type'] == 'brush':
|
||||
|
||||
# TODO if allready in scene, should avoid reappending.
|
||||
# TODO if already in scene, should avoid reappending.
|
||||
inscene = False
|
||||
for b in bpy.data.brushes:
|
||||
|
||||
|
@ -539,7 +539,7 @@ class Downloader(threading.Thread):
|
|||
get_download_url(asset_data, scene_id, api_key, tcom=tcom)
|
||||
if tcom.error:
|
||||
return
|
||||
# only now we can check if the file allready exists. This should have 2 levels, for materials and for brushes
|
||||
# only now we can check if the file already exists. This should have 2 levels, for materials and for brushes
|
||||
# different than for the non free content. delete is here when called after failed append tries.
|
||||
if check_existing(asset_data) and not tcom.passargs.get('delete'):
|
||||
# this sends the thread for processing, where another check should occur, since the file might be corrupted.
|
||||
|
@ -622,7 +622,7 @@ def download(asset_data, **kwargs):
|
|||
|
||||
|
||||
def check_downloading(asset_data, **kwargs):
|
||||
''' check if an asset is allready downloading, if yes, just make a progress bar with downloader object.'''
|
||||
''' check if an asset is already downloading, if yes, just make a progress bar with downloader object.'''
|
||||
global download_threads
|
||||
|
||||
downloading = False
|
||||
|
@ -646,7 +646,7 @@ def check_existing(asset_data):
|
|||
|
||||
file_names = paths.get_download_filenames(asset_data)
|
||||
|
||||
utils.p('check if file allready exists')
|
||||
utils.p('check if file already exists')
|
||||
if len(file_names) == 2:
|
||||
# TODO this should check also for failed or running downloads.
|
||||
# If download is running, assign just the running thread. if download isn't running but the file is wrong size,
|
||||
|
@ -663,11 +663,11 @@ def check_existing(asset_data):
|
|||
|
||||
|
||||
def try_finished_append(asset_data, **kwargs): # location=None, material_target=None):
|
||||
''' try to append asset, if not successfull delete source files.
|
||||
''' try to append asset, if not successfully delete source files.
|
||||
This means probably wrong download, so download should restart'''
|
||||
file_names = paths.get_download_filenames(asset_data)
|
||||
done = False
|
||||
utils.p('try to append allready existing asset')
|
||||
utils.p('try to append already existing asset')
|
||||
if len(file_names) > 0:
|
||||
if os.path.isfile(file_names[-1]):
|
||||
kwargs['name'] = asset_data['name']
|
||||
|
@ -688,7 +688,7 @@ def try_finished_append(asset_data, **kwargs): # location=None, material_target
|
|||
|
||||
|
||||
def asset_in_scene(asset_data):
|
||||
'''checks if the asset is allready in scene. If yes, modifies asset data so the asset can be reached again.'''
|
||||
'''checks if the asset is already in scene. If yes, modifies asset data so the asset can be reached again.'''
|
||||
scene = bpy.context.scene
|
||||
au = scene.get('assets used', {})
|
||||
|
||||
|
@ -746,7 +746,7 @@ def get_download_url(asset_data, scene_id, api_key, tcom=None):
|
|||
if r.status_code == 403:
|
||||
r = 'You need Full plan to get this item.'
|
||||
tcom.report = r
|
||||
r1 = 'All materials and brushes are aviable for free. Only users registered to Standart plan can use all models.'
|
||||
r1 = 'All materials and brushes are available for free. Only users registered to Standard plan can use all models.'
|
||||
tasks_queue.add_task((ui.add_report, (r1, 5, colors.RED)))
|
||||
tcom.error = True
|
||||
|
||||
|
@ -764,7 +764,7 @@ def start_download(asset_data, **kwargs):
|
|||
'''
|
||||
check if file isn't downloading or doesn't exist, then start new download
|
||||
'''
|
||||
# first check if the asset is allready in scene. We can use that asset without checking with server
|
||||
# first check if the asset is already in scene. We can use that asset without checking with server
|
||||
quota_ok = asset_in_scene(asset_data) is not False
|
||||
|
||||
# otherwise, check on server
|
||||
|
@ -774,7 +774,7 @@ def start_download(asset_data, **kwargs):
|
|||
# is the asseet being currently downloaded?
|
||||
downloading = check_downloading(asset_data, **kwargs)
|
||||
if not downloading:
|
||||
# check if there are files allready. This check happens 2x once here(for free assets),
|
||||
# check if there are files already. This check happens 2x once here(for free assets),
|
||||
# once in thread(for non-free)
|
||||
fexists = check_existing(asset_data)
|
||||
|
||||
|
@ -823,7 +823,7 @@ class BlenderkitKillDownloadOperator(bpy.types.Operator):
|
|||
|
||||
|
||||
class BlenderkitDownloadOperator(bpy.types.Operator):
|
||||
"""Download and link asset to scene. Only link if asset allready available locally."""
|
||||
"""Download and link asset to scene. Only link if asset already available locally."""
|
||||
bl_idname = "scene.blenderkit_download"
|
||||
bl_label = "BlenderKit Asset Download"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
|
|
|
@ -164,7 +164,7 @@ def get_download_filenames(asset_data):
|
|||
file_names = []
|
||||
# fn = asset_data['file_name'].replace('blend_', '')
|
||||
if asset_data.get('url') is not None:
|
||||
# this means asset is allready in scene and we don't nedd to check
|
||||
# this means asset is already in scene and we don't nedd to check
|
||||
|
||||
fn = extract_filename_from_url(asset_data['url'])
|
||||
fn.replace('_blend', '')
|
||||
|
@ -236,7 +236,7 @@ def get_addon_thumbnail_path(name):
|
|||
# fpath = os.path.join(p, subpath)
|
||||
ext = name.split('.')[-1]
|
||||
next = ''
|
||||
if not (ext == 'jpg' or ext == 'png'): # allready has ext?
|
||||
if not (ext == 'jpg' or ext == 'png'): # already has ext?
|
||||
next = '.jpg'
|
||||
subpath = "thumbnails" + os.sep + name + next
|
||||
return os.path.join(script_path, subpath)
|
||||
|
|
|
@ -92,7 +92,7 @@ def refresh_token_timer():
|
|||
def scene_load(context):
|
||||
wm = bpy.context.window_manager
|
||||
fetch_server_data()
|
||||
# following doesn't necessarilly happen if version isn't checked yet or similar, first run.
|
||||
# following doesn't necessarily happen if version isn't checked yet or similar, first run.
|
||||
# wm['bkit_update'] = version_checker.compare_versions(blenderkit)
|
||||
categories.load_categories()
|
||||
if not bpy.app.timers.is_registered(refresh_token_timer):
|
||||
|
@ -116,7 +116,7 @@ def fetch_server_data():
|
|||
def timer_update(): # TODO might get moved to handle all blenderkit stuff.
|
||||
|
||||
global search_threads
|
||||
# don't do anything while dragging - this could switch asset type during drag, and make results list lenght different,
|
||||
# don't do anything while dragging - this could switch asset type during drag, and make results list length different,
|
||||
# causing a lot of throuble literally.
|
||||
if len(search_threads) == 0 or bpy.context.scene.blenderkitUI.dragging:
|
||||
return 1
|
||||
|
@ -803,7 +803,7 @@ class Searcher(threading.Thread):
|
|||
full_thbs = zip(thumb_full_filepaths, thumb_full_urls)
|
||||
|
||||
# we save here because a missing thumbnail check is in the previous loop
|
||||
# we can also prepend previous results. These have allready thumbnails downloaded...
|
||||
# we can also prepend previous results. These have already thumbnails downloaded...
|
||||
if params['get_next']:
|
||||
rdata['results'][0:0] = origdata['results']
|
||||
|
||||
|
@ -1149,12 +1149,12 @@ def unregister_search():
|
|||
|
||||
|
||||
'''
|
||||
search -
|
||||
search -
|
||||
build query
|
||||
START THREAD
|
||||
send query (bg allready)
|
||||
get result - metadata, small thumbnails, big thumbnails paths (now genereate this?)
|
||||
write metadata, possibly to
|
||||
send query (bg already)
|
||||
get result - metadata, small thumbnails, big thumbnails paths (now generate this?)
|
||||
write metadata, possibly to
|
||||
download small thumbnails first
|
||||
start big thumbnails download. these don't have to be there on updates, if they aren't the Image in image editor doesn't get updated.
|
||||
parse metadata, save it in json in the temp dir which gets read on each update of the search.
|
||||
|
|
|
@ -977,7 +977,7 @@ def is_rating_possible():
|
|||
ad = ao.get('asset_data')
|
||||
if ad is not None:
|
||||
rated = bpy.context.scene['assets rated'].get(ad['asset_base_id'])
|
||||
# originally hidden for allready rated assets
|
||||
# originally hidden for already rated assets
|
||||
return True, rated, ao, ad
|
||||
|
||||
# check also materials
|
||||
|
@ -1599,7 +1599,7 @@ class AssetBarOperator(bpy.types.Operator):
|
|||
# this sends message to the originally running operator, so it quits, and then it ends this one too.
|
||||
# If it initiated a search, the search will finish in a thread. The switch off procedure is run
|
||||
# by the 'original' operator, since if we get here, it means
|
||||
# same operator is allready running.
|
||||
# same operator is already running.
|
||||
ui_props.turn_off = True
|
||||
# if there was an error, we need to turn off these props so we can restart after 2 clicks
|
||||
ui_props.assetbar_on = False
|
||||
|
|
|
@ -631,7 +631,7 @@ def start_upload(self, context, asset_type, as_new, metadata_only):
|
|||
json_metadata["verificationStatus"] = "uploading"
|
||||
r = requests.put(url, json=json_metadata, headers=headers, verify=True) # files = files,
|
||||
props.upload_state = 'uploaded metadata'
|
||||
# parse the reqest
|
||||
# parse the request
|
||||
# print('uploaded metadata')
|
||||
# print(r.text)
|
||||
except requests.exceptions.RequestException as e:
|
||||
|
@ -714,7 +714,7 @@ class ModelUploadOperator(Operator):
|
|||
|
||||
as_new: BoolProperty(
|
||||
name="upload as new",
|
||||
description="delets asset id and uploads as new file",
|
||||
description="deletes asset id and uploads as new file",
|
||||
default=False,
|
||||
options={'SKIP_SAVE'}
|
||||
)
|
||||
|
|
|
@ -184,7 +184,7 @@ def save_prefs(self, context):
|
|||
# first check context, so we don't do this on registration or blender startup
|
||||
if not bpy.app.background: #(hasattr kills blender)
|
||||
user_preferences = bpy.context.preferences.addons['blenderkit'].preferences
|
||||
# we test the api key for lenght, so not a random accidentaly typed sequence gets saved.
|
||||
# we test the api key for length, so not a random accidentally typed sequence gets saved.
|
||||
lk = len(user_preferences.api_key)
|
||||
if 0 < lk < 25:
|
||||
# reset the api key in case the user writes some nonsense, e.g. a search string instead of the Key
|
||||
|
|
|
@ -161,7 +161,7 @@ def write_armature(
|
|||
"pose_mat",
|
||||
# Blender rest matrix (armature space).
|
||||
"rest_arm_mat",
|
||||
# Blender rest batrix (local space).
|
||||
# Blender rest matrix (local space).
|
||||
"rest_local_mat",
|
||||
# Pose_mat inverted.
|
||||
"pose_imat",
|
||||
|
|
|
@ -347,7 +347,7 @@ def readtexturefolder(objekti, mat_list, texturelist, is_new, udim_textures): #r
|
|||
coat3D.remove_path = True
|
||||
createnodes(index_mat, texcoat, create_group_node, tile_list, objekti, ind, is_new)
|
||||
|
||||
def createnodes(active_mat,texcoat, create_group_node, tile_list, objekti, ind, is_new): # Cretes new nodes and link textures into them
|
||||
def createnodes(active_mat,texcoat, create_group_node, tile_list, objekti, ind, is_new): # Creates new nodes and link textures into them
|
||||
bring_color = True # Meaning of these is to check if we can only update textures or do we need to create new nodes
|
||||
bring_metalness = True
|
||||
bring_roughness = True
|
||||
|
@ -366,7 +366,7 @@ def createnodes(active_mat,texcoat, create_group_node, tile_list, objekti, ind,
|
|||
main_material = coatMat.node_tree
|
||||
applink_group_node = False
|
||||
|
||||
# First go throug all image nodes and let's check if it starts with 3DC and reload if needed
|
||||
# First go through all image nodes and let's check if it starts with 3DC and reload if needed
|
||||
|
||||
for node in coatMat.node_tree.nodes:
|
||||
if (node.type == 'OUTPUT_MATERIAL'):
|
||||
|
|
|
@ -216,7 +216,7 @@ class Unfolder:
|
|||
|
||||
def save(self, properties):
|
||||
"""Export the document"""
|
||||
# Note about scale: input is direcly in blender length
|
||||
# Note about scale: input is directly in blender length
|
||||
# Mesh.scale_islands multiplies everything by a user-defined ratio
|
||||
# exporters (SVG or PDF) multiply everything by 1000 (output in millimeters)
|
||||
Exporter = SVG if properties.file_format == 'SVG' else PDF
|
||||
|
@ -438,7 +438,7 @@ class Mesh:
|
|||
def generate_stickers(self, default_width, do_create_numbers=True):
|
||||
"""Add sticker faces where they are needed."""
|
||||
def uvedge_priority(uvedge):
|
||||
"""Retuns whether it is a good idea to stick something on this edge's face"""
|
||||
"""Returns whether it is a good idea to stick something on this edge's face"""
|
||||
# TODO: it should take into account overlaps with faces and with other stickers
|
||||
face = uvedge.uvface.face
|
||||
return face.calc_area() / face.calc_perimeter()
|
||||
|
|
|
@ -390,7 +390,7 @@ def modify_objects(action_type,
|
|||
break
|
||||
|
||||
|
||||
# Separating atoms from a dupliverts strucutre.
|
||||
# Separating atoms from a dupliverts structure.
|
||||
def separate_atoms(scn):
|
||||
|
||||
# Get the mesh.
|
||||
|
|
|
@ -2972,7 +2972,7 @@ def save_single(operator, scene, depsgraph, filepath="",
|
|||
path_mode,
|
||||
os.path.dirname(bpy.data.filepath), # base_src
|
||||
os.path.dirname(filepath), # base_dst
|
||||
# Local dir where to put images (medias), using FBX conventions.
|
||||
# Local dir where to put images (media), using FBX conventions.
|
||||
os.path.splitext(os.path.basename(filepath))[0] + ".fbm", # subdir
|
||||
embed_textures,
|
||||
set(), # copy_set
|
||||
|
|
|
@ -14,7 +14,7 @@
|
|||
|
||||
|
||||
def get_output_node(node_tree):
|
||||
"""Retrive output node."""
|
||||
"""Retrieve output node."""
|
||||
output = [node for node in node_tree.nodes if node.type == 'OUTPUT_MATERIAL'][0]
|
||||
return output
|
||||
|
||||
|
|
|
@ -239,7 +239,7 @@ def __gather_mesh(blender_object, export_settings):
|
|||
|
||||
armature_modifiers = {}
|
||||
if export_settings[gltf2_blender_export_keys.SKINS]:
|
||||
# temprorary disable Armature modifiers if exporting skins
|
||||
# temporarily disable Armature modifiers if exporting skins
|
||||
for idx, modifier in enumerate(blender_object.modifiers):
|
||||
if modifier.type == 'ARMATURE':
|
||||
armature_modifiers[idx] = modifier.show_viewport
|
||||
|
|
|
@ -106,7 +106,7 @@ class BlenderNodeAnim():
|
|||
if channel.target.path in ['translation', 'rotation', 'scale']:
|
||||
|
||||
# There is an animation on object
|
||||
# We can't remove Yup2Zup oject
|
||||
# We can't remove Yup2Zup object
|
||||
gltf.animation_object = True
|
||||
|
||||
if animation.samplers[channel.sampler].interpolation == "CUBICSPLINE":
|
||||
|
|
|
@ -131,7 +131,7 @@ class BlenderPrimitive():
|
|||
elif gltf.import_settings['import_shading'] == "SMOOTH":
|
||||
poly.use_smooth = True
|
||||
else:
|
||||
pass # Should not happend
|
||||
pass # Should not happen
|
||||
|
||||
offset = offset + pyprimitive.vertices_length
|
||||
return offset
|
||||
|
|
|
@ -159,7 +159,7 @@ class BlenderScene():
|
|||
#bpy.context.scene.collection.objects.unlink(obj_rotation)
|
||||
bpy.data.objects.remove(obj_rotation)
|
||||
|
||||
# Restore collection hiden / disabled values
|
||||
# Restore collection hidden / disabled values
|
||||
if gltf.blender_active_collection is not None:
|
||||
bpy.data.collections[gltf.blender_active_collection].hide_viewport = gltf.collection_hide_viewport
|
||||
# TODO restore visibility when expose in bpy
|
||||
|
|
|
@ -199,7 +199,7 @@ def __compress_primitive(primitive, dll, export_settings):
|
|||
# it can finally be compressed.
|
||||
if dll.compress(compressor):
|
||||
|
||||
# Compression was successfull.
|
||||
# Compression was successful.
|
||||
# Move compressed data into a bytes object,
|
||||
# which is referenced by a 'gltf2_io_binary_data.BinaryData':
|
||||
#
|
||||
|
|
|
@ -2896,7 +2896,7 @@ def importShape_LoadAppearance(vrmlname, appr, ancestry, node, is_vcol):
|
|||
USE on an Appearance node and USE on a Material node
|
||||
call for different approaches.
|
||||
|
||||
Tools generate repeating, idential material definitions.
|
||||
Tools generate repeating, identical material definitions.
|
||||
Can't rely on USE alone. Repeating texture definitions
|
||||
are entirely possible, too.
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
######################################################################################################
|
||||
# An simple add-on to auto cut in two and mirror an object #
|
||||
# Actualy partialy uncommented (see further version) #
|
||||
# Author: Lapineige, Bookyakuno #
|
||||
# A simple add-on to auto cut in two and mirror an object #
|
||||
# Actually partially uncommented (see further version) #
|
||||
# Author: Lapineige, Bookyakuno #
|
||||
# License: GPL v3 #
|
||||
######################################################################################################
|
||||
# 2.8 update by Bookyakuno, meta-androcto
|
||||
|
|
|
@ -3457,8 +3457,8 @@ class GPENCIL_OT_SURFSK_add_surface(Operator):
|
|||
class GPENCIL_OT_SURFSK_init(Operator):
|
||||
bl_idname = "gpencil.surfsk_init"
|
||||
bl_label = "Bsurfaces initialize"
|
||||
bl_description = "Bsurfaces initialiaze"
|
||||
|
||||
bl_description = "Bsurfaces initialize"
|
||||
|
||||
active_object: PointerProperty(type=bpy.types.Object)
|
||||
|
||||
def execute(self, context):
|
||||
|
|
|
@ -815,7 +815,7 @@ def _EMatch(er):
|
|||
return (er, er[1][1])
|
||||
i = random.randint(0, len(er) - 1)
|
||||
eri = (wi, _, tl, tr) = er[i]
|
||||
# case a: include eri. exlude other edges that touch tl or tr
|
||||
# case a: include eri. exclude other edges that touch tl or tr
|
||||
a = _CopyExcluding(er, tl, tr)
|
||||
a.append(eri)
|
||||
(amatch, wa) = _DCMatch(a)
|
||||
|
|
|
@ -4207,7 +4207,7 @@ class Relax(Operator):
|
|||
class Space(Operator):
|
||||
bl_idname = "mesh.looptools_space"
|
||||
bl_label = "Space"
|
||||
bl_description = "Space the vertices in a regular distrubtion on the loop"
|
||||
bl_description = "Space the vertices in a regular distribution on the loop"
|
||||
bl_options = {'REGISTER', 'UNDO'}
|
||||
|
||||
influence: FloatProperty(
|
||||
|
|
|
@ -210,7 +210,7 @@ class SnapUtilitiesLine(SnapUtilities, bpy.types.Operator):
|
|||
wait_for_input : bpy.props.BoolProperty(name="Wait for Input", default=True)
|
||||
|
||||
def _exit(self, context):
|
||||
#avoids unpredictable crashs
|
||||
#avoids unpredictable crashes
|
||||
del self.main_snap_obj
|
||||
del self.main_bm
|
||||
del self.list_edges
|
||||
|
|
|
@ -122,7 +122,7 @@ def do_vtx_if_appropriate(bm, edges):
|
|||
if not coplanar:
|
||||
return {'NON_PLANAR_EDGES'}
|
||||
|
||||
# point must lie on an edge or the virtual extention of an edge
|
||||
# point must lie on an edge or the virtual extension of an edge
|
||||
bm = perform_vtx(bm, point, edges, (p1, p2, p3, p4), vertex_indices)
|
||||
return bm
|
||||
|
||||
|
|
|
@ -18,10 +18,10 @@
|
|||
|
||||
#-------------------------- COLORS / GROUPS EXCHANGER -------------------------#
|
||||
# #
|
||||
# Vertex Color to Vertex Group allow you to convert colors channles to weight #
|
||||
# Vertex Color to Vertex Group allow you to convert colors channels to weight #
|
||||
# maps. #
|
||||
# The main purpose is to use vertex colors to store information when importing #
|
||||
# files from other softwares. The script works with the active vertex color #
|
||||
# files from other software. The script works with the active vertex color #
|
||||
# slot. #
|
||||
# For use the command "Vertex Clors to Vertex Groups" use the search bar #
|
||||
# (space bar). #
|
||||
|
|
|
@ -2964,7 +2964,7 @@ class TISSUE_PT_tessellate_object(Panel):
|
|||
if props.bool_multi_components:
|
||||
col2.enabled = False
|
||||
|
||||
# TRANFER DATA ### OFF
|
||||
# TRANSFER DATA ### OFF
|
||||
if props.fill_mode != 'PATCH' and False:
|
||||
col = layout.column(align=True)
|
||||
col.label(text="Component Data:")
|
||||
|
|
|
@ -78,7 +78,7 @@ def read_weight(_weight, vertex_group):
|
|||
#for t in processes: t.join()
|
||||
return weight
|
||||
|
||||
#Recursivly transverse layer_collection for a particular name
|
||||
#Recursively transverse layer_collection for a particular name
|
||||
def recurLayerCollection(layerColl, collName):
|
||||
found = None
|
||||
if (layerColl.name == collName):
|
||||
|
|
|
@ -63,7 +63,7 @@ def draw_string(self, color1, color2, left, bottom, text, max_option, divide = 1
|
|||
line_height = (blf.dimensions(font_id, "gM")[1] * 1.45)
|
||||
y_offset = 5
|
||||
|
||||
# Test if the text is a list formated like : ('option', 'key')
|
||||
# Test if the text is a list formatted like : ('option', 'key')
|
||||
if isinstance(text,list):
|
||||
for string in text:
|
||||
blf.position(font_id, (left), (bottom + y_offset), 0)
|
||||
|
@ -76,7 +76,7 @@ def draw_string(self, color1, color2, left, bottom, text, max_option, divide = 1
|
|||
blf.draw(font_id, string[1])
|
||||
y_offset += line_height
|
||||
else:
|
||||
# The text is formated like : ('option')
|
||||
# The text is formatted like : ('option')
|
||||
blf.position(font_id, left, (bottom + y_offset), 0)
|
||||
blf.color(font_id, *color1)
|
||||
blf.draw(font_id, text)
|
||||
|
|
|
@ -167,7 +167,7 @@ def object_colors_calc(rules, objects):
|
|||
if is_set is False:
|
||||
obj_color = color
|
||||
else:
|
||||
# prevent mixing colors loosing saturation
|
||||
# prevent mixing colors losing saturation
|
||||
obj_color_s = obj_color.s
|
||||
obj_color = (obj_color * blend[0]) + (color * blend[1])
|
||||
obj_color.s = (obj_color_s * blend[0]) + (color.s * blend[1])
|
||||
|
|
|
@ -249,7 +249,7 @@ def cell_fracture_objects(context, obj,
|
|||
except RuntimeError:
|
||||
import traceback
|
||||
traceback.print_exc()
|
||||
# Smooth faces will remain only inner faces, after appling boolean modifier.
|
||||
# Smooth faces will remain only inner faces, after applying boolean modifier.
|
||||
if use_smooth_faces:
|
||||
for bm_face in bm.faces:
|
||||
bm_face.smooth = True
|
||||
|
|
|
@ -143,7 +143,7 @@ class RigifyPreferences(AddonPreferences):
|
|||
print('Reloading external metarigs...')
|
||||
metarig_menu.get_external_metarigs(set_list)
|
||||
|
||||
# Re-register rig paramaters
|
||||
# Re-register rig parameters
|
||||
register_rig_parameters()
|
||||
|
||||
legacy_mode: BoolProperty(
|
||||
|
|
|
@ -354,7 +354,7 @@ def obj_to_bone(obj, rig, bone_name):
|
|||
|
||||
def create_circle_polygon(number_verts, axis, radius=1.0, head_tail=0.0):
|
||||
""" Creates a basic circle around of an axis selected.
|
||||
number_verts: number of vertices of the poligon
|
||||
number_verts: number of vertices of the polygon
|
||||
axis: axis normal to the circle
|
||||
radius: the radius of the circle
|
||||
head_tail: where along the length of the bone the circle is (0.0=head, 1.0=tail)
|
||||
|
|
|
@ -526,7 +526,7 @@ def ik2fk_leg(obj, fk, ik):
|
|||
|
||||
else:
|
||||
# Stretch
|
||||
if 'stretch_lenght' in footi.keys() and 'stretch_lenght' in thigh.keys():
|
||||
if 'stretch_length' in footi.keys() and 'stretch_length' in thigh.keys():
|
||||
# Kept for compat with legacy rigify Human
|
||||
footi['stretch_length'] = thigh['stretch_length']
|
||||
|
||||
|
|
|
@ -98,7 +98,7 @@ def create_widget(rig, bone_name, bone_transform_name=None):
|
|||
|
||||
def create_circle_polygon(number_verts, axis, radius=1.0, head_tail=0.0):
|
||||
""" Creates a basic circle around of an axis selected.
|
||||
number_verts: number of vertices of the poligon
|
||||
number_verts: number of vertices of the polygon
|
||||
axis: axis normal to the circle
|
||||
radius: the radius of the circle
|
||||
head_tail: where along the length of the bone the circle is (0.0=head, 1.0=tail)
|
||||
|
|
|
@ -141,7 +141,7 @@ def align_function(subject, active_too, consistent, self_or_active, loc_x, loc_y
|
|||
|
||||
me = obj.data
|
||||
co_list = []
|
||||
# let's get all the points coodinates
|
||||
# let's get all the points coordinates
|
||||
if space == "global":
|
||||
ok = False
|
||||
obj_mtx = obj.matrix_world
|
||||
|
@ -626,7 +626,7 @@ class OBJECT_OT_align_tools(Operator):
|
|||
name="Selection reference",
|
||||
description="Moved objects reference point"
|
||||
)
|
||||
# Active Oject Option:
|
||||
# Active Object Option:
|
||||
ref2: EnumProperty(
|
||||
items=(("3", "Max", "Align to the maximum point"),
|
||||
("1", "Center", "Align to the center point"),
|
||||
|
|
|
@ -144,7 +144,7 @@ def pLoopExec(self, context, funk):
|
|||
funk(bone, active, context)
|
||||
|
||||
|
||||
# The following functions are used o copy attributes from active to bone
|
||||
# The following functions are used to copy attributes from active to bone
|
||||
|
||||
def pLocLocExec(bone, active, context):
|
||||
bone.location = active.location
|
||||
|
@ -316,7 +316,7 @@ def world_to_basis(active, ob, context):
|
|||
return(mat)
|
||||
|
||||
|
||||
# The following functions are used o copy attributes from
|
||||
# The following functions are used to copy attributes from
|
||||
# active to selected object
|
||||
|
||||
def obLoc(ob, active, context):
|
||||
|
|
|
@ -246,7 +246,7 @@ class MathVis(PropertyGroup):
|
|||
in_front: BoolProperty(
|
||||
name="Always In Front",
|
||||
default=True,
|
||||
description="Draw Points and lines alwasy in front",
|
||||
description="Draw Points and lines always in front",
|
||||
update=call_console_hook
|
||||
)
|
||||
|
||||
|
|
Loading…
Reference in New Issue