Correct mathutils documentation, also correct some python spelling errors and add makefile target check_spelling

This commit is contained in:
Campbell Barton 2012-02-08 04:37:37 +00:00
parent 9467ddb903
commit 1f74789d12
29 changed files with 63 additions and 85 deletions

@ -169,6 +169,7 @@ help:
@echo " * check_cppcheck - run blender source through cppcheck (C & C++)" @echo " * check_cppcheck - run blender source through cppcheck (C & C++)"
@echo " * check_splint - run blenders source through splint (C only)" @echo " * check_splint - run blenders source through splint (C only)"
@echo " * check_sparse - run blenders source through sparse (C only)" @echo " * check_sparse - run blenders source through sparse (C only)"
@echo " * check_spelling - check for spelling errors (Python only for now)"
@echo "" @echo ""
@echo "Documentation Targets (not assosiated with building blender)" @echo "Documentation Targets (not assosiated with building blender)"
@echo " * doc_py - generate sphinx python api docs" @echo " * doc_py - generate sphinx python api docs"
@ -242,6 +243,9 @@ check_sparse:
$(CMAKE_CONFIG) $(CMAKE_CONFIG)
cd $(BUILD_DIR) ; python3 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_sparse.py cd $(BUILD_DIR) ; python3 $(BLENDER_DIR)/build_files/cmake/cmake_static_check_sparse.py
check_spelling:
cd $(BUILD_DIR) ; PYTHONIOENCODING=utf_8 python3 $(BLENDER_DIR)/source/tools/spell_check_source.py `find $(BLENDER_DIR)/release/scripts -name "*.py" | sort`
# ----------------------------------------------------------------------------- # -----------------------------------------------------------------------------
# Documentation # Documentation

@ -158,7 +158,7 @@ def bake_action(frame_start,
# ------------------------------------------------------------------------- # -------------------------------------------------------------------------
# Create action # Create action
# in case animation data hassnt been created # in case animation data hasn't been created
atd = obj.animation_data_create() atd = obj.animation_data_create()
if action is None: if action is None:
action = bpy.data.actions.new("Action") action = bpy.data.actions.new("Action")

@ -167,7 +167,7 @@ def edge_loops_from_faces(mesh, faces=None, seams=()):
flipped = False flipped = False
while 1: while 1:
# from knowing the last 2, look for th next. # from knowing the last 2, look for the next.
ed_adj = edges[context_loop[-1]] ed_adj = edges[context_loop[-1]]
if len(ed_adj) != 2: if len(ed_adj) != 2:
# the original edge had 2 other edges # the original edge had 2 other edges
@ -175,7 +175,7 @@ def edge_loops_from_faces(mesh, faces=None, seams=()):
flipped = True # only flip the list once flipped = True # only flip the list once
context_loop.reverse() context_loop.reverse()
ed_adj[:] = [] ed_adj[:] = []
context_loop.append(other_dir) # save 1 lookiup context_loop.append(other_dir) # save 1 look-up
ed_adj = edges[context_loop[-1]] ed_adj = edges[context_loop[-1]]
if len(ed_adj) != 2: if len(ed_adj) != 2:
@ -375,7 +375,7 @@ def ngon_tesselate(from_data, indices, fix_loops=True):
if s1[0][1] == s1[-1][1]: # remove endpoints double if s1[0][1] == s1[-1][1]: # remove endpoints double
s1.pop() s1.pop()
s2[:] = [] # Empty this segment s2 so we dont use it again. s2[:] = [] # Empty this segment s2 so we don't use it again.
return True return True
joining_segments = True joining_segments = True

@ -44,7 +44,7 @@ changes have been made:
import os import os
import sys import sys
TIMEOUT_STORAGE = 3 # Time in secs after which the rootmodules will be stored TIMEOUT_STORAGE = 3 # Time in secs after which the root-modules will be stored
TIMEOUT_GIVEUP = 20 # Time in secs after which we give up TIMEOUT_GIVEUP = 20 # Time in secs after which we give up
ROOT_MODULES = None ROOT_MODULES = None
@ -53,7 +53,7 @@ ROOT_MODULES = None
def get_root_modules(): def get_root_modules():
""" """
Returns a list containing the names of all the modules available in the Returns a list containing the names of all the modules available in the
folders of the pythonpath. folders of the python-path.
:returns: modules :returns: modules
:rtype: list :rtype: list

@ -227,7 +227,7 @@ class BakeAction(Operator):
class ClearUselessActions(Operator): class ClearUselessActions(Operator):
"""Mark actions with no F-Curves for deletion after save+reload of """ \ """Mark actions with no F-Curves for deletion after save & reload of """ \
"""file preserving \"action libraries\"""" """file preserving \"action libraries\""""
bl_idname = "anim.clear_useless_actions" bl_idname = "anim.clear_useless_actions"
bl_label = "Clear Useless Actions" bl_label = "Clear Useless Actions"

@ -275,8 +275,8 @@ class CLIP_OT_delete_proxy(Operator):
class CLIP_OT_set_viewport_background(Operator): class CLIP_OT_set_viewport_background(Operator):
"""Set current movie clip as a camera background in 3D viewport \ """Set current movie clip as a camera background in 3D view-port """ \
(works only when a 3D viewport is visible)""" """(works only when a 3D view-port is visible)"""
bl_idname = "clip.set_viewport_background" bl_idname = "clip.set_viewport_background"
bl_label = "Set as Background" bl_label = "Set as Background"
@ -314,9 +314,9 @@ object's movement caused by this constraint"""
frame_current = scene.frame_current frame_current = scene.frame_current
matrices = [] matrices = []
# Find constraint which would eb converting # Find constraint which would be converting
# TODO: several camera solvers and track followers would fail, # TODO: several camera solvers and track followers would fail,
# but can't think about eal workflow where it'll be useful # but can't think about real work-flow where it'll be useful
for x in ob.constraints: for x in ob.constraints:
if x.type in {'CAMERA_SOLVER', 'FOLLOW_TRACK', 'OBJECT_SOLVER'}: if x.type in {'CAMERA_SOLVER', 'FOLLOW_TRACK', 'OBJECT_SOLVER'}:
con = x con = x
@ -368,7 +368,7 @@ object's movement caused by this constraint"""
ob.animation_data_create() ob.animation_data_create()
# Apply matrices on object and insert keyframes # Apply matrices on object and insert key-frames
i = 0 i = 0
for x in range(sfra, efra + 1): for x in range(sfra, efra + 1):
scene.frame_set(x) scene.frame_set(x)
@ -791,7 +791,7 @@ class CLIP_OT_setup_tracking_scene(Operator):
all_layers = self._mergeLayers(fg.layers, bg.layers) all_layers = self._mergeLayers(fg.layers, bg.layers)
# enshure all lamps are active on foreground and background # ensure all lamps are active on foreground and background
has_lamp = False has_lamp = False
has_mesh = False has_mesh = False
for ob in scene.objects: for ob in scene.objects:

@ -128,7 +128,7 @@ class SaveDirty(Operator):
class ProjectEdit(Operator): class ProjectEdit(Operator):
"""Edit a snapshot of the viewport in an external image editor""" """Edit a snapshot of the view-port in an external image editor"""
bl_idname = "image.project_edit" bl_idname = "image.project_edit"
bl_label = "Project Edit" bl_label = "Project Edit"
bl_options = {'REGISTER'} bl_options = {'REGISTER'}

@ -334,8 +334,8 @@ class ShapeTransfer(Operator):
orig_shape_coords = me_cos(ob_act.active_shape_key.data) orig_shape_coords = me_cos(ob_act.active_shape_key.data)
orig_normals = me_nos(me.vertices) orig_normals = me_nos(me.vertices)
# the actual mverts location isn't as reliable as the base shape :S # actual mesh vertex location isn't as reliable as the base shape :S
# orig_coords = me_cos(me.vertices) #~ orig_coords = me_cos(me.vertices)
orig_coords = me_cos(me.shape_keys.key_blocks[0].data) orig_coords = me_cos(me.shape_keys.key_blocks[0].data)
for ob_other in objects: for ob_other in objects:
@ -653,8 +653,8 @@ class MakeDupliFace(Operator):
class IsolateTypeRender(Operator): class IsolateTypeRender(Operator):
'''Hide unselected render objects of same type as active ''' \ """Hide unselected render objects of same type as active """ \
'''by setting the hide render flag''' """by setting the hide render flag"""
bl_idname = "object.isolate_type_render" bl_idname = "object.isolate_type_render"
bl_label = "Restrict Render Unselected" bl_label = "Restrict Render Unselected"
bl_options = {'REGISTER', 'UNDO'} bl_options = {'REGISTER', 'UNDO'}

@ -427,7 +427,7 @@ class AddPresetInterfaceTheme(AddPresetBase, Operator):
class AddPresetKeyconfig(AddPresetBase, Operator): class AddPresetKeyconfig(AddPresetBase, Operator):
'''Add a Keyconfig Preset''' '''Add a Key-config Preset'''
bl_idname = "wm.keyconfig_preset_add" bl_idname = "wm.keyconfig_preset_add"
bl_label = "Add Keyconfig Preset" bl_label = "Add Keyconfig Preset"
preset_menu = "USERPREF_MT_keyconfigs" preset_menu = "USERPREF_MT_keyconfigs"

@ -25,7 +25,7 @@ from bpy.props import IntProperty
class SequencerCrossfadeSounds(Operator): class SequencerCrossfadeSounds(Operator):
'''Do crossfading volume animation of two selected sound strips''' '''Do cross-fading volume animation of two selected sound strips'''
bl_idname = "sequencer.crossfade_sounds" bl_idname = "sequencer.crossfade_sounds"
bl_label = "Crossfade sounds" bl_label = "Crossfade sounds"
@ -76,7 +76,7 @@ class SequencerCrossfadeSounds(Operator):
class SequencerCutMulticam(Operator): class SequencerCutMulticam(Operator):
'''Cut multicam strip and select camera''' '''Cut multi-cam strip and select camera'''
bl_idname = "sequencer.cut_multicam" bl_idname = "sequencer.cut_multicam"
bl_label = "Cut multicam" bl_label = "Cut multicam"

@ -99,7 +99,7 @@ def extend(obj, operator, EXTEND_MODE):
iA = 1 iA = 1
iB = 0 iB = 0
# Set the target UV's touching source face, no tricky calc needed, # Set the target UV's touching source face, no tricky calculations needed,
uvs_vhash_target[edgepair_inner_target[0]][:] = uvs_vhash_source[edgepair_inner_source[iA]] uvs_vhash_target[edgepair_inner_target[0]][:] = uvs_vhash_source[edgepair_inner_source[iA]]
uvs_vhash_target[edgepair_inner_target[1]][:] = uvs_vhash_source[edgepair_inner_source[iB]] uvs_vhash_target[edgepair_inner_target[1]][:] = uvs_vhash_source[edgepair_inner_source[iB]]
@ -156,8 +156,8 @@ def extend(obj, operator, EXTEND_MODE):
return return
# Modes # Modes
# 0 unsearched # 0 not yet searched for.
# 1:mapped, use search from this face. - removed!! # 1:mapped, use search from this face - removed!
# 2:all siblings have been searched. don't search again. # 2:all siblings have been searched. don't search again.
face_modes = [0] * len(face_sel) face_modes = [0] * len(face_sel)
face_modes[face_act_local_index] = 1 # extend UV's from this face. face_modes[face_act_local_index] = 1 # extend UV's from this face.

@ -246,10 +246,10 @@ def lightmap_uvpack(meshes,
pretty_faces = [prettyface(f) for f in face_sel if len(f.vertices) == 4] pretty_faces = [prettyface(f) for f in face_sel if len(f.vertices) == 4]
# Do we have any tri's # Do we have any triangles?
if len(pretty_faces) != len(face_sel): if len(pretty_faces) != len(face_sel):
# Now add tri's, not so simple because we need to pair them up. # Now add triangles, not so simple because we need to pair them up.
def trylens(f): def trylens(f):
# f must be a tri # f must be a tri

@ -71,7 +71,7 @@ def pointInTri2D(v, v1, v2, v3):
mtx = Matrix((side1, side2, nor)) mtx = Matrix((side1, side2, nor))
# Zero area 2d tri, even tho we throw away zerop area faces # Zero area 2d tri, even tho we throw away zero area faces
# the projection UV can result in a zero area UV. # the projection UV can result in a zero area UV.
if not mtx.determinant(): if not mtx.determinant():
dict_matrix[key] = None dict_matrix[key] = None
@ -162,7 +162,7 @@ def island2Edge(island):
return length_sorted_edges, [v.to_3d() for v in unique_points.values()] return length_sorted_edges, [v.to_3d() for v in unique_points.values()]
# ========================= NOT WORKING???? # ========================= NOT WORKING????
# Find if a points inside an edge loop, un-ordered. # Find if a points inside an edge loop, unordered.
# pt is and x/y # pt is and x/y
# edges are a non ordered loop of edges. # edges are a non ordered loop of edges.
# offsets are the edge x and y offset. # offsets are the edge x and y offset.

@ -21,15 +21,6 @@
# <pep8 compliant> # <pep8 compliant>
# History
#
# Originally written by Campbell Barton aka ideasman42
#
# 2009-11-01: * 2.5 port by Keith "Wahooney" Boshoff
# * Replaced old method with my own, speed is similar (about 0.001 sec on Suzanne)
# but results are far more accurate
#
def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, dirt_only): def applyVertexDirt(me, blur_iterations, blur_strength, clamp_dirt, clamp_clean, dirt_only):
from mathutils import Vector from mathutils import Vector

@ -397,7 +397,7 @@ class WM_OT_context_cycle_int(Operator):
exec("context.%s = value" % data_path) exec("context.%s = value" % data_path)
if value != eval("context.%s" % data_path): if value != eval("context.%s" % data_path):
# relies on rna clamping int's out of the range # relies on rna clamping integers out of the range
if self.reverse: if self.reverse:
value = (1 << 31) - 1 value = (1 << 31) - 1
else: else:
@ -731,7 +731,7 @@ class WM_OT_context_modal_mouse(Operator):
class WM_OT_url_open(Operator): class WM_OT_url_open(Operator):
"Open a website in the Webbrowser" "Open a website in the web-browser"
bl_idname = "wm.url_open" bl_idname = "wm.url_open"
bl_label = "" bl_label = ""
@ -1180,7 +1180,7 @@ class WM_OT_copy_prev_settings(Operator):
class WM_OT_blenderplayer_start(Operator): class WM_OT_blenderplayer_start(Operator):
'''Launch the Blenderplayer with the current blendfile''' '''Launch the blender-player with the current blend-file'''
bl_idname = "wm.blenderplayer_start" bl_idname = "wm.blenderplayer_start"
bl_label = "Start" bl_label = "Start"
@ -1202,7 +1202,7 @@ class WM_OT_blenderplayer_start(Operator):
class WM_OT_keyconfig_test(Operator): class WM_OT_keyconfig_test(Operator):
"Test keyconfig for conflicts" "Test key-config for conflicts"
bl_idname = "wm.keyconfig_test" bl_idname = "wm.keyconfig_test"
bl_label = "Test Key Configuration for Conflicts" bl_label = "Test Key Configuration for Conflicts"

@ -217,7 +217,7 @@ class DATA_PT_active_spline(CurveButtonsPanelActive, Panel):
if is_poly: if is_poly:
# These settings are below but its easier to have # These settings are below but its easier to have
# poly's set aside since they use so few settings # polys set aside since they use so few settings
row = layout.row() row = layout.row()
row.label(text="Cyclic:") row.label(text="Cyclic:")
row.prop(act_spline, "use_cyclic_u", text="U") row.prop(act_spline, "use_cyclic_u", text="U")
@ -250,7 +250,7 @@ class DATA_PT_active_spline(CurveButtonsPanelActive, Panel):
col = split.column() col = split.column()
col.prop(act_spline, "use_cyclic_v", text="V") col.prop(act_spline, "use_cyclic_v", text="V")
# its a surface, assume its a nurb. # its a surface, assume its a nurbs
sub = col.column() sub = col.column()
sub.active = (not act_spline.use_cyclic_v) sub.active = (not act_spline.use_cyclic_v)
sub.prop(act_spline, "use_bezier_v", text="V") sub.prop(act_spline, "use_bezier_v", text="V")

@ -215,7 +215,7 @@ class PHYSICS_PT_dp_canvas_output(PhysicButtonsPanel, Panel):
# toggle active preview # toggle active preview
layout.prop(surface, "preview_id") layout.prop(surface, "preview_id")
# paintmap output # paint-map output
row = layout.row() row = layout.row()
row.prop_search(surface, "output_name_a", ob.data, "vertex_colors", text="Paintmap layer: ") row.prop_search(surface, "output_name_a", ob.data, "vertex_colors", text="Paintmap layer: ")
if surface.output_exists(object=ob, index=0): if surface.output_exists(object=ob, index=0):
@ -225,7 +225,7 @@ class PHYSICS_PT_dp_canvas_output(PhysicButtonsPanel, Panel):
row.operator("dpaint.output_toggle", icon=ic, text="").output = 'A' row.operator("dpaint.output_toggle", icon=ic, text="").output = 'A'
# wetmap output # wet-map output
row = layout.row() row = layout.row()
row.prop_search(surface, "output_name_b", ob.data, "vertex_colors", text="Wetmap layer: ") row.prop_search(surface, "output_name_b", ob.data, "vertex_colors", text="Wetmap layer: ")
if surface.output_exists(object=ob, index=1): if surface.output_exists(object=ob, index=1):

@ -824,7 +824,6 @@ class TEXTURE_PT_mapping(TextureSlotPanel, Panel):
idblock = context_tex_datablock(context) idblock = context_tex_datablock(context)
tex = context.texture_slot tex = context.texture_slot
# textype = context.texture
if not isinstance(idblock, Brush): if not isinstance(idblock, Brush):
split = layout.split(percentage=0.3) split = layout.split(percentage=0.3)
@ -912,7 +911,6 @@ class TEXTURE_PT_influence(TextureSlotPanel, Panel):
idblock = context_tex_datablock(context) idblock = context_tex_datablock(context)
# textype = context.texture
tex = context.texture_slot tex = context.texture_slot
def factor_but(layout, toggle, factor, name): def factor_but(layout, toggle, factor, name):

@ -273,7 +273,7 @@ class INFO_MT_add(Menu):
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
# note, dont use 'EXEC_SCREEN' or operators wont get the 'v3d' context. # note, don't use 'EXEC_SCREEN' or operators wont get the 'v3d' context.
layout.operator_context = 'EXEC_AREA' layout.operator_context = 'EXEC_AREA'

@ -49,8 +49,8 @@ class LOGIC_PT_properties(Panel):
sub.prop(prop, "name", text="") sub.prop(prop, "name", text="")
row.prop(prop, "type", text="") row.prop(prop, "type", text="")
# get the property from the body, not the game property # get the property from the body, not the game property
# note, don't do this - it's too slow and body can potentually be a really long string. # note, don't do this - it's too slow and body can potentially be a really long string.
# row.prop(ob.data, "body", text="") #~ row.prop(ob.data, "body", text="")
row.label("See Text Object") row.label("See Text Object")
else: else:
props = layout.operator("object.game_property_new", text="Add Text Game Property", icon='ZOOMIN') props = layout.operator("object.game_property_new", text="Add Text Game Property", icon='ZOOMIN')

@ -143,7 +143,7 @@ class NLA_MT_edit(Menu):
layout.operator_menu_enum("anim.channels_move", "direction", text="Track Ordering...") layout.operator_menu_enum("anim.channels_move", "direction", text="Track Ordering...")
layout.separator() layout.separator()
# TODO: names of these tools for 'tweakmode' need changing? # TODO: names of these tools for 'tweak-mode' need changing?
if scene.is_nla_tweakmode: if scene.is_nla_tweakmode:
layout.operator("nla.tweakmode_exit", text="Stop Tweaking Strip Actions") layout.operator("nla.tweakmode_exit", text="Stop Tweaking Strip Actions")
else: else:

@ -293,7 +293,7 @@ class USERPREF_PT_edit(Panel):
col.label(text="Grease Pencil:") col.label(text="Grease Pencil:")
col.prop(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance") col.prop(edit, "grease_pencil_manhattan_distance", text="Manhattan Distance")
col.prop(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance") col.prop(edit, "grease_pencil_euclidean_distance", text="Euclidean Distance")
#col.prop(edit, "use_grease_pencil_simplify_stroke", text="Simplify Stroke") #~ col.prop(edit, "use_grease_pencil_simplify_stroke", text="Simplify Stroke")
col.prop(edit, "grease_pencil_eraser_radius", text="Eraser Radius") col.prop(edit, "grease_pencil_eraser_radius", text="Eraser Radius")
col.prop(edit, "use_grease_pencil_smooth_stroke", text="Smooth Stroke") col.prop(edit, "use_grease_pencil_smooth_stroke", text="Smooth Stroke")
col.separator() col.separator()
@ -316,7 +316,7 @@ class USERPREF_PT_edit(Panel):
sub = col.column() sub = col.column()
# sub.active = edit.use_keyframe_insert_auto # incorrect, timeline can enable #~ sub.active = edit.use_keyframe_insert_auto # incorrect, time-line can enable
sub.prop(edit, "use_keyframe_insert_available", text="Only Insert Available") sub.prop(edit, "use_keyframe_insert_available", text="Only Insert Available")
col.separator() col.separator()
@ -833,7 +833,7 @@ from .space_userpref_keymap import InputKeyMapPanel
class USERPREF_MT_ndof_settings(Menu): class USERPREF_MT_ndof_settings(Menu):
# accessed from the window keybindings in C (only) # accessed from the window key-bindings in C (only)
bl_label = "3D Mouse Settings" bl_label = "3D Mouse Settings"
def draw(self, context): def draw(self, context):
@ -965,7 +965,7 @@ class USERPREF_PT_input(Panel, InputKeyMapPanel):
class USERPREF_MT_addons_dev_guides(Menu): class USERPREF_MT_addons_dev_guides(Menu):
bl_label = "Development Guides" bl_label = "Development Guides"
# menu to open webpages with addons development guides # menu to open web-pages with addons development guides
def draw(self, context): def draw(self, context):
layout = self.layout layout = self.layout
layout.operator("wm.url_open", text="API Concepts", icon='URL').url = "http://wiki.blender.org/index.php/Dev:2.5/Py/API/Intro" layout.operator("wm.url_open", text="API Concepts", icon='URL').url = "http://wiki.blender.org/index.php/Dev:2.5/Py/API/Intro"
@ -1097,7 +1097,7 @@ class USERPREF_PT_addons(Panel):
else: else:
row.operator("wm.addon_enable", icon='CHECKBOX_DEHLT', text="", emboss=False).module = module_name row.operator("wm.addon_enable", icon='CHECKBOX_DEHLT', text="", emboss=False).module = module_name
# Expanded UI (only if additional infos are available) # Expanded UI (only if additional info is available)
if info["show_expanded"]: if info["show_expanded"]:
if info["description"]: if info["description"]:
split = colsub.row().split(percentage=0.15) split = colsub.row().split(percentage=0.15)

@ -180,7 +180,7 @@ class InputKeyMapPanel:
sub.prop(kmi, "propvalue", text="") sub.prop(kmi, "propvalue", text="")
else: else:
# One day... # One day...
# sub.prop_search(kmi, "idname", bpy.context.window_manager, "operators_all", text="") #~ sub.prop_search(kmi, "idname", bpy.context.window_manager, "operators_all", text="")
sub.prop(kmi, "idname", text="") sub.prop(kmi, "idname", text="")
sub = split.column() sub = split.column()

@ -1637,8 +1637,8 @@ class VIEW3D_MT_edit_mesh_edges(Menu):
layout.operator("TRANSFORM_OT_edge_crease") layout.operator("TRANSFORM_OT_edge_crease")
layout.operator("mesh.loop_multi_select", text="Edge Loop").ring = False layout.operator("mesh.loop_multi_select", text="Edge Loop").ring = False
# uiItemO(layout, "Loopcut", 0, "mesh.loop_cut"); // CutEdgeloop(em, 1); #~ uiItemO(layout, "Loopcut", 0, "mesh.loop_cut"); // CutEdgeloop(em, 1);
# uiItemO(layout, "Edge Slide", 0, "mesh.edge_slide"); // EdgeSlide(em, 0,0.0); #~ uiItemO(layout, "Edge Slide", 0, "mesh.edge_slide"); // EdgeSlide(em, 0,0.0);
layout.operator("mesh.loop_multi_select", text="Edge Ring").ring = True layout.operator("mesh.loop_multi_select", text="Edge Ring").ring = True

@ -1051,10 +1051,10 @@ class VIEW3D_PT_tools_weightpaint_options(Panel, View3DPaintPanel):
self.unified_paint_settings(col, context) self.unified_paint_settings(col, context)
# Commented out because the Apply button isn't an operator yet, making these settings useless # Commented out because the Apply button isn't an operator yet, making these settings useless
# col.label(text="Gamma:") #~ col.label(text="Gamma:")
# col.prop(wpaint, "gamma", text="") #~ col.prop(wpaint, "gamma", text="")
# col.label(text="Multiply:") #~ col.label(text="Multiply:")
# col.prop(wpaint, "mul", text="") #~ col.prop(wpaint, "mul", text="")
# Also missing now: # Also missing now:
# Soft, Vertex-Group, X-Mirror and "Clear" Operator. # Soft, Vertex-Group, X-Mirror and "Clear" Operator.
@ -1081,10 +1081,10 @@ class VIEW3D_PT_tools_vertexpaint(Panel, View3DPaintPanel):
self.unified_paint_settings(col, context) self.unified_paint_settings(col, context)
# Commented out because the Apply button isn't an operator yet, making these settings useless # Commented out because the Apply button isn't an operator yet, making these settings useless
# col.label(text="Gamma:") #~ col.label(text="Gamma:")
# col.prop(vpaint, "gamma", text="") #~ col.prop(vpaint, "gamma", text="")
# col.label(text="Multiply:") #~ col.label(text="Multiply:")
# col.prop(vpaint, "mul", text="") #~ col.prop(vpaint, "mul", text="")
# ********** default tools for texture-paint **************** # ********** default tools for texture-paint ****************

@ -326,7 +326,7 @@ class BUILTIN_KSI_WholeCharacter(KeyingSetInfo):
for i in range(3): for i in range(3):
if not bone.lock_rotation[i]: if not bone.lock_rotation[i]:
ksi.addProp(ks, bone, prop, i + 1) # i + 1, since here x,y,z = 1,2,3, and w=0 ksi.addProp(ks, bone, prop, i + 1) # i + 1, since here x/y/z = 1,2,3, and w=0
elif True not in bone.lock_rotation: elif True not in bone.lock_rotation:
# if axis-angle rotations get locked as eulers, then it's too messy to allow anything # if axis-angle rotations get locked as eulers, then it's too messy to allow anything
# other than all open unless we keyframe the whole lot # other than all open unless we keyframe the whole lot

@ -15,7 +15,7 @@ class CustomMenu(bpy.types.Menu):
layout.label(text="Hello world!", icon='WORLD_DATA') layout.label(text="Hello world!", icon='WORLD_DATA')
# use an operator enum property to populate a submenu # use an operator enum property to populate a sub-menu
layout.operator_menu_enum("object.select_by_type", layout.operator_menu_enum("object.select_by_type",
property="type", property="type",
text="Select All by Type...", text="Select All by Type...",

@ -232,7 +232,7 @@ StructRNA *rna_PropertyGroup_register(Main *UNUSED(bmain), ReportList *reports,
/* note: it looks like there is no length limit on the srna id since its /* note: it looks like there is no length limit on the srna id since its
* just a char pointer, but take care here, also be careful that python * just a char pointer, but take care here, also be careful that python
* owns the string pointer which it could potentually free while blender * owns the string pointer which it could potentially free while blender
* is running. */ * is running. */
if(BLI_strnlen(identifier, MAX_IDPROP_NAME) == MAX_IDPROP_NAME) { if(BLI_strnlen(identifier, MAX_IDPROP_NAME) == MAX_IDPROP_NAME) {
BKE_reportf(reports, RPT_ERROR, "registering id property class: '%s' is too long, maximum length is " STRINGIFY(MAX_IDPROP_NAME), identifier); BKE_reportf(reports, RPT_ERROR, "registering id property class: '%s' is too long, maximum length is " STRINGIFY(MAX_IDPROP_NAME), identifier);

@ -378,9 +378,6 @@ PyDoc_STRVAR(Vector_resize_doc,
".. method:: resize(size=3)\n" ".. method:: resize(size=3)\n"
"\n" "\n"
" Resize the vector to have size number of elements.\n" " Resize the vector to have size number of elements.\n"
"\n"
" :return: an instance of itself\n"
" :rtype: :class:`Vector`\n"
); );
static PyObject *Vector_resize(VectorObject *self, PyObject *value) static PyObject *Vector_resize(VectorObject *self, PyObject *value)
{ {
@ -473,9 +470,6 @@ PyDoc_STRVAR(Vector_resize_2d_doc,
".. method:: resize_2d()\n" ".. method:: resize_2d()\n"
"\n" "\n"
" Resize the vector to 2D (x, y).\n" " Resize the vector to 2D (x, y).\n"
"\n"
" :return: an instance of itself\n"
" :rtype: :class:`Vector`\n"
); );
static PyObject *Vector_resize_2d(VectorObject *self) static PyObject *Vector_resize_2d(VectorObject *self)
{ {
@ -508,9 +502,6 @@ PyDoc_STRVAR(Vector_resize_3d_doc,
".. method:: resize_3d()\n" ".. method:: resize_3d()\n"
"\n" "\n"
" Resize the vector to 3D (x, y, z).\n" " Resize the vector to 3D (x, y, z).\n"
"\n"
" :return: an instance of itself\n"
" :rtype: :class:`Vector`\n"
); );
static PyObject *Vector_resize_3d(VectorObject *self) static PyObject *Vector_resize_3d(VectorObject *self)
{ {
@ -546,9 +537,6 @@ PyDoc_STRVAR(Vector_resize_4d_doc,
".. method:: resize_4d()\n" ".. method:: resize_4d()\n"
"\n" "\n"
" Resize the vector to 4D (x, y, z, w).\n" " Resize the vector to 4D (x, y, z, w).\n"
"\n"
" :return: an instance of itself\n"
" :rtype: :class:`Vector`\n"
); );
static PyObject *Vector_resize_4d(VectorObject *self) static PyObject *Vector_resize_4d(VectorObject *self)
{ {
@ -2676,9 +2664,6 @@ PyDoc_STRVAR(Vector_negate_doc,
".. method:: negate()\n" ".. method:: negate()\n"
"\n" "\n"
" Set all values to their negative.\n" " Set all values to their negative.\n"
"\n"
" :return: an instance of itself\n"
" :rtype: :class:`Vector`\n"
); );
static PyObject *Vector_negate(VectorObject *self) static PyObject *Vector_negate(VectorObject *self)
{ {