Merge branch 'master' into blender2.8
Conflicts: source/blender/editors/animation/anim_draw.c
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
height="640"
|
||||
id="svg2"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.91 r"
|
||||
inkscape:version="0.91 r13725"
|
||||
version="1.0"
|
||||
sodipodi:docname="blender_icons.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
@@ -31338,6 +31338,26 @@
|
||||
d="m 125.5,433.5 23,0 0,41 -33,0 0,-31 10,-10 z"
|
||||
style="display:inline;fill:url(#linearGradient13110);fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:1;marker:none" />
|
||||
</clipPath>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient1610-6"
|
||||
id="linearGradient18199"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="189.76083"
|
||||
y1="248.13905"
|
||||
x2="116.05637"
|
||||
y2="183.6826" />
|
||||
<radialGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient22562"
|
||||
id="radialGradient23167-6"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(0.99220964,-0.12457927,0.11585516,0.92272644,-34.13325,22.766225)"
|
||||
cx="-0.78262758"
|
||||
cy="294.63174"
|
||||
fx="-0.78262758"
|
||||
fy="294.63174"
|
||||
r="6.6750002" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
@@ -31349,16 +31369,16 @@
|
||||
objecttolerance="10000"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="14.413868"
|
||||
inkscape:cx="480.24726"
|
||||
inkscape:cy="269.95478"
|
||||
inkscape:zoom="19.997864"
|
||||
inkscape:cx="462.52244"
|
||||
inkscape:cy="435.14241"
|
||||
inkscape:document-units="px"
|
||||
inkscape:current-layer="layer1"
|
||||
inkscape:current-layer="g23149-4"
|
||||
showgrid="true"
|
||||
inkscape:window-width="1680"
|
||||
inkscape:window-height="1020"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="30"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1025"
|
||||
inkscape:window-x="-8"
|
||||
inkscape:window-y="-8"
|
||||
inkscape:snap-nodes="true"
|
||||
inkscape:snap-bbox="true"
|
||||
showguides="true"
|
||||
@@ -92660,6 +92680,56 @@
|
||||
style="opacity:0.51999996;fill:url(#radialGradient21448-8-143);fill-opacity:1;fill-rule:evenodd;stroke:none" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
transform="translate(335.99871,21.048284)"
|
||||
style="display:inline;enable-background:new"
|
||||
id="ICON_ROTATE-7">
|
||||
<rect
|
||||
y="178"
|
||||
x="110"
|
||||
height="16"
|
||||
width="16"
|
||||
id="rect37989-8"
|
||||
style="display:inline;overflow:visible;visibility:visible;opacity:0;fill:#b3b3b3;fill-opacity:1;fill-rule:evenodd;stroke:none;stroke-width:2.79999995;marker:none;enable-background:accumulate" />
|
||||
<path
|
||||
style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#000000;stroke-width:2.4000001;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:new"
|
||||
d="m 114.5,192.5 -3,0 0,-3 m 13,0 0,3 -3,0 m -0.25,-13 3.25,0 0,3 m -13,0 0,-3 3,0"
|
||||
id="path37498-7"
|
||||
sodipodi:nodetypes="cccccccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="cccccccccccc"
|
||||
id="rect38140-7"
|
||||
d="m 114.5,192.5 -3,0 0,-3 m 13,0 0,3 -3,0 m -0.25,-13 3.25,0 0,3 m -13,0 0,-3 3,0"
|
||||
style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:url(#linearGradient18199);stroke-width:1;stroke-linecap:square;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:new"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
transform="matrix(0.59971056,0,0,0.59971056,116.78278,9.7425599)"
|
||||
style="display:inline;enable-background:new"
|
||||
id="g23145-9">
|
||||
<g
|
||||
id="g23149-4">
|
||||
<path
|
||||
id="path39832-9"
|
||||
style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#1a1a1a;stroke-width:4.66725159;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
d="m -4.3682386,287.81345 1.5,0 c 0.999089,0 2.07885534,1.30514 2.50490386,2.78207 1.06592652,3.69512 2.80867074,9.82446 5.88525404,9.96406 2.6782554,0 1.6181317,-5.11535 3.1736046,-5.26275 l 0.25,0"
|
||||
sodipodi:nodetypes="cssccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
sodipodi:nodetypes="ccscc"
|
||||
d="m 9.3647983,295.22328 -0.4793018,0 c -2.2335161,0 0.1796731,4.94901 -3.4398065,5.09984 -4.44796752,0.18536 -5.37272213,-12.59185 -8.0767581,-12.56237 l -2,0"
|
||||
style="display:inline;overflow:visible;visibility:visible;fill:none;stroke:#a8df84;stroke-width:2.93474906;stroke-linecap:square;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
id="path39834-2"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<path
|
||||
id="path39836-9"
|
||||
style="display:inline;overflow:visible;visibility:visible;opacity:0.35;fill:none;stroke:url(#radialGradient23167-6);stroke-width:3.53503864;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none;enable-background:accumulate"
|
||||
d="M 5.6770841,300.48165 C 0.7393262,300.21066 0.54777814,287.99792 -2.9522219,287.99792"
|
||||
sodipodi:nodetypes="cc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
inkscape:groupmode="layer"
|
||||
|
Before Width: | Height: | Size: 4.4 MiB After Width: | Height: | Size: 4.4 MiB |
BIN
release/datafiles/blender_icons16/icon16_normalize_fcurves.dat
Normal file
BIN
release/datafiles/blender_icons16/icon16_normalize_fcurves.dat
Normal file
Binary file not shown.
BIN
release/datafiles/blender_icons32/icon32_normalize_fcurves.dat
Normal file
BIN
release/datafiles/blender_icons32/icon32_normalize_fcurves.dat
Normal file
Binary file not shown.
@@ -1170,6 +1170,7 @@ class Seed:
|
||||
|
||||
_seed = Seed()
|
||||
|
||||
|
||||
def get_dashed_pattern(linestyle):
|
||||
"""Extracts the dashed pattern from the various UI options """
|
||||
pattern = []
|
||||
@@ -1185,6 +1186,15 @@ def get_dashed_pattern(linestyle):
|
||||
return pattern
|
||||
|
||||
|
||||
def get_grouped_objects(group):
|
||||
for ob in group.objects:
|
||||
if ob.dupli_type == 'GROUP' and ob.dupli_group is not None:
|
||||
for dupli in get_grouped_objects(ob.dupli_group):
|
||||
yield dupli
|
||||
else:
|
||||
yield ob
|
||||
|
||||
|
||||
integration_types = {
|
||||
'MEAN': IntegrationType.MEAN,
|
||||
'MIN': IntegrationType.MIN,
|
||||
@@ -1267,7 +1277,7 @@ def process(layer_name, lineset_name):
|
||||
# prepare selection criteria by group of objects
|
||||
if lineset.select_by_group:
|
||||
if lineset.group is not None:
|
||||
names = {getQualifiedObjectName(ob): True for ob in lineset.group.objects}
|
||||
names = {getQualifiedObjectName(ob): True for ob in get_grouped_objects(lineset.group)}
|
||||
upred = ObjectNamesUP1D(names, lineset.group_negation == 'EXCLUSIVE')
|
||||
selection_criteria.append(upred)
|
||||
# prepare selection criteria by image border
|
||||
|
@@ -1320,7 +1320,9 @@ class DATA_PT_modifiers(ModifierButtonsPanel, Panel):
|
||||
row.prop(md, "thickness_vertex_group", text="Factor")
|
||||
|
||||
col.prop(md, "use_crease", text="Crease Edges")
|
||||
col.prop(md, "crease_weight", text="Crease Weight")
|
||||
row = col.row()
|
||||
row.active = md.use_crease
|
||||
row.prop(md, "crease_weight", text="Crease Weight")
|
||||
|
||||
col = split.column()
|
||||
|
||||
|
@@ -152,6 +152,33 @@ class OBJECT_PT_relations(ObjectButtonsPanel, Panel):
|
||||
sub.active = (parent is not None)
|
||||
|
||||
|
||||
class OBJECT_PT_relations_extras(ObjectButtonsPanel, Panel):
|
||||
bl_label = "Relations Extras"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
ob = context.object
|
||||
|
||||
split = layout.split()
|
||||
|
||||
if context.scene.render.engine != 'BLENDER_GAME':
|
||||
col = split.column()
|
||||
col.label(text="Tracking Axes:")
|
||||
col.prop(ob, "track_axis", text="Axis")
|
||||
col.prop(ob, "up_axis", text="Up Axis")
|
||||
|
||||
col = split.column()
|
||||
col.prop(ob, "use_slow_parent")
|
||||
row = col.row()
|
||||
row.active = ((ob.parent is not None) and (ob.use_slow_parent))
|
||||
row.prop(ob, "slow_parent_offset", text="Offset")
|
||||
|
||||
layout.prop(ob, "use_extra_recalc_object")
|
||||
layout.prop(ob, "use_extra_recalc_data")
|
||||
|
||||
|
||||
class GROUP_MT_specials(Menu):
|
||||
bl_label = "Group Specials"
|
||||
|
||||
@@ -296,33 +323,6 @@ class OBJECT_PT_duplication(ObjectButtonsPanel, Panel):
|
||||
layout.prop(ob, "dupli_group", text="Group")
|
||||
|
||||
|
||||
class OBJECT_PT_relations_extras(ObjectButtonsPanel, Panel):
|
||||
bl_label = "Relations Extras"
|
||||
bl_options = {'DEFAULT_CLOSED'}
|
||||
|
||||
def draw(self, context):
|
||||
layout = self.layout
|
||||
|
||||
ob = context.object
|
||||
|
||||
split = layout.split()
|
||||
|
||||
if context.scene.render.engine != 'BLENDER_GAME':
|
||||
col = split.column()
|
||||
col.label(text="Tracking Axes:")
|
||||
col.prop(ob, "track_axis", text="Axis")
|
||||
col.prop(ob, "up_axis", text="Up Axis")
|
||||
|
||||
col = split.column()
|
||||
col.prop(ob, "use_slow_parent")
|
||||
row = col.row()
|
||||
row.active = ((ob.parent is not None) and (ob.use_slow_parent))
|
||||
row.prop(ob, "slow_parent_offset", text="Offset")
|
||||
|
||||
layout.prop(ob, "use_extra_recalc_object")
|
||||
layout.prop(ob, "use_extra_recalc_data")
|
||||
|
||||
|
||||
from bl_ui.properties_animviz import (
|
||||
MotionPathButtonsPanel,
|
||||
OnionSkinButtonsPanel,
|
||||
|
@@ -42,10 +42,11 @@ class GRAPH_HT_header(Header):
|
||||
|
||||
dopesheet_filter(layout, context)
|
||||
|
||||
layout.prop(st, "use_normalization", text="Normalize")
|
||||
row = layout.row()
|
||||
row.active = st.use_normalization
|
||||
row.prop(st, "use_auto_normalization", text="Auto")
|
||||
row = layout.row(align=True)
|
||||
row.prop(st, "use_normalization", icon='NORMALIZE_FCURVES', text="Normalize", toggle=True)
|
||||
sub = row.row(align=True)
|
||||
sub.active = st.use_normalization
|
||||
sub.prop(st, "use_auto_normalization", icon='FILE_REFRESH', text="", toggle=True)
|
||||
|
||||
row = layout.row(align=True)
|
||||
|
||||
|
@@ -652,17 +652,39 @@ class SEQUENCER_PT_effect(SequencerButtonsPanel, Panel):
|
||||
col.prop(strip, "rotation_start", text="Rotation")
|
||||
|
||||
elif strip.type == 'MULTICAM':
|
||||
layout.prop(strip, "multicam_source")
|
||||
col = layout.column(align=True)
|
||||
strip_channel = strip.channel
|
||||
|
||||
row = layout.row(align=True)
|
||||
sub = row.row(align=True)
|
||||
sub.scale_x = 2.0
|
||||
col.prop(strip, "multicam_source", text="Source Channel")
|
||||
|
||||
sub.operator("screen.animation_play", text="", icon='PAUSE' if context.screen.is_animation_playing else 'PLAY')
|
||||
# The multicam strip needs at least 2 strips to be useful
|
||||
if strip_channel > 2:
|
||||
BT_ROW = 4
|
||||
|
||||
col.label("Cut To:")
|
||||
row = col.row()
|
||||
|
||||
for i in range(1, strip_channel):
|
||||
if (i % BT_ROW) == 1:
|
||||
row = col.row(align=True)
|
||||
|
||||
# Workaround - .active has to have a separate UI block to work
|
||||
if i == strip.multicam_source:
|
||||
sub = row.row(align=True)
|
||||
sub.active = False
|
||||
sub.operator("sequencer.cut_multicam", text="%d" % i).camera = i
|
||||
else:
|
||||
sub_1 = row.row(align=True)
|
||||
sub_1.active = True
|
||||
sub_1.operator("sequencer.cut_multicam", text="%d" % i).camera = i
|
||||
|
||||
if strip.channel > BT_ROW and (strip_channel - 1) % BT_ROW:
|
||||
for i in range(strip.channel, strip_channel + ((BT_ROW + 1 - strip_channel) % BT_ROW)):
|
||||
row.label("")
|
||||
else:
|
||||
col.separator()
|
||||
col.label(text="Two or more channels are needed below this strip.", icon="INFO")
|
||||
|
||||
row.label("Cut To")
|
||||
for i in range(1, strip.channel):
|
||||
row.operator("sequencer.cut_multicam", text="%d" % i).camera = i
|
||||
|
||||
elif strip.type == 'TEXT':
|
||||
col = layout.column()
|
||||
|
@@ -49,7 +49,10 @@ class TIME_HT_header(Header):
|
||||
row.prop(scene, "frame_preview_start", text="Start")
|
||||
row.prop(scene, "frame_preview_end", text="End")
|
||||
|
||||
layout.prop(scene, "frame_current", text="")
|
||||
if scene.show_subframe:
|
||||
layout.prop(scene, "frame_float", text="")
|
||||
else:
|
||||
layout.prop(scene, "frame_current", text="")
|
||||
|
||||
layout.separator()
|
||||
|
||||
@@ -135,6 +138,7 @@ class TIME_MT_view(Menu):
|
||||
|
||||
layout.prop(st, "show_frame_indicator")
|
||||
layout.prop(scene, "show_keys_from_selected_only")
|
||||
layout.prop(scene, "show_subframe")
|
||||
|
||||
layout.separator()
|
||||
|
||||
|
@@ -1722,6 +1722,7 @@ class VIEW3D_MT_brush_paint_modes(Menu):
|
||||
layout.prop(brush, "use_paint_weight", text="Weight Paint")
|
||||
layout.prop(brush, "use_paint_image", text="Texture Paint")
|
||||
|
||||
|
||||
# ********** Vertex paint menu **********
|
||||
|
||||
|
||||
@@ -1791,6 +1792,7 @@ class VIEW3D_MT_vertex_group(Menu):
|
||||
layout.operator("object.vertex_group_remove", text="Remove Active Group").all = False
|
||||
layout.operator("object.vertex_group_remove", text="Remove All Groups").all = True
|
||||
|
||||
|
||||
# ********** Weight paint menu **********
|
||||
|
||||
|
||||
@@ -1829,6 +1831,7 @@ class VIEW3D_MT_paint_weight(Menu):
|
||||
|
||||
layout.operator("paint.weight_set")
|
||||
|
||||
|
||||
# ********** Sculpt menu **********
|
||||
|
||||
|
||||
@@ -1982,6 +1985,7 @@ class VIEW3D_MT_particle_specials(Menu):
|
||||
class VIEW3D_MT_particle_showhide(ShowHideMenu, Menu):
|
||||
_operator_name = "particle"
|
||||
|
||||
|
||||
# ********** Pose Menu **********
|
||||
|
||||
|
||||
@@ -2255,6 +2259,7 @@ class VIEW3D_MT_bone_options_disable(Menu, BoneOptions):
|
||||
bl_label = "Disable Bone Options"
|
||||
type = 'DISABLE'
|
||||
|
||||
|
||||
# ********** Edit Menus, suffix from ob.type **********
|
||||
|
||||
|
||||
@@ -2422,6 +2427,7 @@ class VIEW3D_MT_edit_mesh_vertices(Menu):
|
||||
with_bullet = bpy.app.build_options.bullet
|
||||
|
||||
layout.operator("mesh.merge")
|
||||
layout.operator("mesh.remove_doubles")
|
||||
layout.operator("mesh.rip_move")
|
||||
layout.operator("mesh.rip_move_fill")
|
||||
layout.operator("mesh.rip_edge_move")
|
||||
@@ -2444,7 +2450,6 @@ class VIEW3D_MT_edit_mesh_vertices(Menu):
|
||||
if with_bullet:
|
||||
layout.operator("mesh.convex_hull")
|
||||
layout.operator("mesh.vertices_smooth")
|
||||
layout.operator("mesh.remove_doubles")
|
||||
|
||||
layout.operator("mesh.blend_from_shape")
|
||||
|
||||
@@ -2601,6 +2606,7 @@ class VIEW3D_MT_edit_mesh_clean(Menu):
|
||||
layout.operator("mesh.face_make_planar")
|
||||
layout.operator("mesh.vert_connect_nonplanar")
|
||||
layout.operator("mesh.vert_connect_concave")
|
||||
layout.operator("mesh.remove_doubles")
|
||||
layout.operator("mesh.fill_holes")
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user