Use_gpencil_draw_onback Toggle

"Fossies" - the Fresh Open Source Software Archive

Member "blender-3.0.0/release/scripts/startup/bl_ui/space_view3d.py" (9 Nov 2021, 257549 Bytes) of package /linux/misc/blender-3.0.0.tar.xz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) Python source code syntax highlighting (style: standard) with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. For more information about "space_view3d.py" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 2.93.6_vs_3.0.0.


                              1                    # ##### BEGIN GPL LICENSE BLOCK #####                                      2                    #                                      3                    #  This program is free software; you can redistribute it and/or                                      4                    #  modify it under the terms of the GNU General Public License                                      5                    #  as published by the Free Software Foundation; either version 2                                      6                    #  of the License, or (at your option) any later version.                                      7                    #                                      8                    #  This program is distributed in the hope that it will be useful,                                      9                    #  but WITHOUT ANY WARRANTY; without even the implied warranty of                                      10                    #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                      11                    #  GNU General Public License for more details.                                      12                    #                                      13                    #  You should have received a copy of the GNU General Public License                                      14                    #  along with this program; if not, write to the Free Software Foundation,                                      15                    #  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.                                      16                    #                                      17                    # ##### END GPL LICENSE BLOCK #####                                      18                                                19                    # <pep8 compliant>                                      20                    import          bpy                              21                    from          bpy.types          import          (                                      22                    Header,                                      23                    Menu,                                      24                    Panel,                                      25                    )                                      26                    from          bl_ui.properties_paint_common          import          (                                      27                    UnifiedPaintPanel,                                      28                    brush_basic_texpaint_settings,                                      29                    )                                      30                    from          bl_ui.properties_grease_pencil_common          import          (                                      31                    AnnotationDataPanel,                                      32                    AnnotationOnionSkin,                                      33                    GreasePencilMaterialsPanel,                                      34                    GreasePencilVertexcolorPanel,                                      35                    )                                      36                    from          bl_ui.space_toolsystem_common          import          (                                      37                    ToolActivePanelHelper,                                      38                    )                                      39                    from          bpy.app.translations          import          contexts          as          i18n_contexts                              40                                                41                                                42                    class          VIEW3D_HT_tool_header          (Header):                                      43                    bl_space_type          =          'VIEW_3D'                                      44                    bl_region_type          =          'TOOL_HEADER'                                      45                                                46                    def          draw          (self,          context):                                      47                    layout          =          self.layout                              48                                                49                    self.          draw_tool_settings          (context)                                      50                                                51                    layout.          separator_spacer          ()                                      52                                                53                    self.          draw_mode_settings          (context)                                      54                                                55                    def          draw_tool_settings          (self,          context):                                      56                    layout          =          self.layout                              57                    tool_mode          =          context.mode                              58                                                59                    # Active Tool                                      60                    # -----------                                      61                    from          bl_ui.space_toolsystem_common          import          ToolSelectPanelHelper                              62                    tool          =          ToolSelectPanelHelper.          draw_active_tool_header          (                                      63                    context,          layout,                                      64                    tool_key=(          'VIEW_3D'          ,          tool_mode),                                      65                    )                                      66                    # Object Mode Options                                      67                    # -------------------                                      68                                                69                    # Example of how tool_settings can be accessed as pop-overs.                                      70                                                71                    # TODO(campbell): editing options should be after active tool options                                      72                    # (obviously separated for from the users POV)                                      73                    draw_fn          =          getattr          (_draw_tool_settings_context_mode,          tool_mode,          None          )                                      74                    if          draw_fn          is not None          :                                      75                    is_valid_context          =          draw_fn          (context,          layout,          tool)                                      76                                                77                    def          draw_3d_brush_settings          (layout,          tool_mode):                                      78                    layout.          popover          (          "VIEW3D_PT_tools_brush_settings_advanced"          ,          text=          "Brush"          )                                      79                    if          tool_mode          !=          'PAINT_WEIGHT'          :                                      80                    layout.          popover          (          "VIEW3D_PT_tools_brush_texture"          )                                      81                    if          tool_mode          ==          'PAINT_TEXTURE'          :                                      82                    layout.          popover          (          "VIEW3D_PT_tools_mask_texture"          )                                      83                    layout.          popover          (          "VIEW3D_PT_tools_brush_stroke"          )                                      84                    layout.          popover          (          "VIEW3D_PT_tools_brush_falloff"          )                                      85                    layout.          popover          (          "VIEW3D_PT_tools_brush_display"          )                                      86                                                87                    # Note: general mode options should be added to 'draw_mode_settings'.                                      88                    if          tool_mode          ==          'SCULPT'          :                                      89                    if          is_valid_context:                                      90                    draw_3d_brush_settings          (layout,          tool_mode)                                      91                    elif          tool_mode          ==          'PAINT_VERTEX'          :                                      92                    if          is_valid_context:                                      93                    draw_3d_brush_settings          (layout,          tool_mode)                                      94                    elif          tool_mode          ==          'PAINT_WEIGHT'          :                                      95                    if          is_valid_context:                                      96                    draw_3d_brush_settings          (layout,          tool_mode)                                      97                    elif          tool_mode          ==          'PAINT_TEXTURE'          :                                      98                    if          is_valid_context:                                      99                    draw_3d_brush_settings          (layout,          tool_mode)                                      100                    elif          tool_mode          ==          'EDIT_ARMATURE'          :                                      101                    pass                                      102                    elif          tool_mode          ==          'EDIT_CURVE'          :                                      103                    pass                                      104                    elif          tool_mode          ==          'EDIT_MESH'          :                                      105                    pass                                      106                    elif          tool_mode          ==          'POSE'          :                                      107                    pass                                      108                    elif          tool_mode          ==          'PARTICLE'          :                                      109                    # Disable, only shows "Brush" panel, which is already in the top-bar.                                      110                    # if tool.has_datablock:                                      111                    #     layout.popover_group(context=".paint_common", **popover_kw)                                      112                    pass                                      113                    elif          tool_mode          ==          'PAINT_GPENCIL'          :                                      114                    if          is_valid_context:                                      115                    brush          =          context.tool_settings.gpencil_paint.brush                              116                    if          brush.gpencil_tool          !=          'ERASE'          :                                      117                    if          brush.gpencil_tool          !=          'TINT'          :                                      118                    layout.          popover          (          "VIEW3D_PT_tools_grease_pencil_brush_advanced"          )                                      119                                                120                    if          brush.gpencil_tool          not in          {          'FILL'          ,          'TINT'          }:                                      121                    layout.          popover          (          "VIEW3D_PT_tools_grease_pencil_brush_stroke"          )                                      122                                                123                    layout.          popover          (          "VIEW3D_PT_tools_grease_pencil_paint_appearance"          )                                      124                    elif          tool_mode          ==          'SCULPT_GPENCIL'          :                                      125                    if          is_valid_context:                                      126                    brush          =          context.tool_settings.gpencil_sculpt_paint.brush                              127                    tool          =          brush.gpencil_tool                              128                    if          tool          in          {          'SMOOTH'          ,          'RANDOMIZE'          }:                                      129                    layout.          popover          (          "VIEW3D_PT_tools_grease_pencil_sculpt_options"          )                                      130                    layout.          popover          (          "VIEW3D_PT_tools_grease_pencil_sculpt_appearance"          )                                      131                    elif          tool_mode          ==          'WEIGHT_GPENCIL'          :                                      132                    if          is_valid_context:                                      133                    layout.          popover          (          "VIEW3D_PT_tools_grease_pencil_weight_appearance"          )                                      134                    elif          tool_mode          ==          'VERTEX_GPENCIL'          :                                      135                    if          is_valid_context:                                      136                    layout.          popover          (          "VIEW3D_PT_tools_grease_pencil_vertex_appearance"          )                                      137                                                138                    def          draw_mode_settings          (self,          context):                                      139                    layout          =          self.layout                              140                    mode_string          =          context.mode                              141                                                142                    def          row_for_mirror          ():                                      143                    row          =          layout.          row          (align=          True          )                                      144                    row.          label          (icon=          'MOD_MIRROR'          )                                      145                    sub          =          row.          row          (align=          True          )                                      146                    sub.scale_x          =          0.6                                      147                    return          row,          sub                              148                                                149                    if          mode_string          ==          'EDIT_ARMATURE'          :                                      150                    _row,          sub          =          row_for_mirror          ()                                      151                    sub.          prop          (context.          object          .data,          "use_mirror_x"          ,          text=          "X"          ,          toggle=          True          )                                      152                    elif          mode_string          ==          'POSE'          :                                      153                    _row,          sub          =          row_for_mirror          ()                                      154                    sub.          prop          (context.          object          .pose,          "use_mirror_x"          ,          text=          "X"          ,          toggle=          True          )                                      155                    elif          mode_string          in          {          'EDIT_MESH'          ,          'PAINT_WEIGHT'          ,          'SCULPT'          ,          'PAINT_VERTEX'          ,          'PAINT_TEXTURE'          }:                                      156                    # Mesh Modes, Use Mesh Symmetry                                      157                    row,          sub          =          row_for_mirror          ()                                      158                    sub.          prop          (context.          object          ,          "use_mesh_mirror_x"          ,          text=          "X"          ,          toggle=          True          )                                      159                    sub.          prop          (context.          object          ,          "use_mesh_mirror_y"          ,          text=          "Y"          ,          toggle=          True          )                                      160                    sub.          prop          (context.          object          ,          "use_mesh_mirror_z"          ,          text=          "Z"          ,          toggle=          True          )                                      161                    if          mode_string          ==          'EDIT_MESH'          :                                      162                    tool_settings          =          context.tool_settings                              163                    layout.          prop          (tool_settings,          "use_mesh_automerge"          ,          text=          ""          )                                      164                    elif          mode_string          ==          'PAINT_WEIGHT'          :                                      165                    row.          popover          (panel=          "VIEW3D_PT_tools_weightpaint_symmetry_for_topbar"          ,          text=          ""          )                                      166                    elif          mode_string          ==          'SCULPT'          :                                      167                    row.          popover          (panel=          "VIEW3D_PT_sculpt_symmetry_for_topbar"          ,          text=          ""          )                                      168                    elif          mode_string          ==          'PAINT_VERTEX'          :                                      169                    row.          popover          (panel=          "VIEW3D_PT_tools_vertexpaint_symmetry_for_topbar"          ,          text=          ""          )                                      170                                                171                    # Expand panels from the side-bar as popovers.                                      172                    popover_kw          = {          "space_type"          :          'VIEW_3D'          ,          "region_type"          :          'UI'          ,          "category"          :          "Tool"          }                                      173                                                174                    if          mode_string          ==          'SCULPT'          :                                      175                    layout.          popover_group          (context=          ".sculpt_mode"          , **popover_kw)                                      176                    elif          mode_string          ==          'PAINT_VERTEX'          :                                      177                    layout.          popover_group          (context=          ".vertexpaint"          , **popover_kw)                                      178                    elif          mode_string          ==          'PAINT_WEIGHT'          :                                      179                    layout.          popover_group          (context=          ".weightpaint"          , **popover_kw)                                      180                    elif          mode_string          ==          'PAINT_TEXTURE'          :                                      181                    layout.          popover_group          (context=          ".imagepaint"          , **popover_kw)                                      182                    elif          mode_string          ==          'EDIT_TEXT'          :                                      183                    layout.          popover_group          (context=          ".text_edit"          , **popover_kw)                                      184                    elif          mode_string          ==          'EDIT_ARMATURE'          :                                      185                    layout.          popover_group          (context=          ".armature_edit"          , **popover_kw)                                      186                    elif          mode_string          ==          'EDIT_METABALL'          :                                      187                    layout.          popover_group          (context=          ".mball_edit"          , **popover_kw)                                      188                    elif          mode_string          ==          'EDIT_LATTICE'          :                                      189                    layout.          popover_group          (context=          ".lattice_edit"          , **popover_kw)                                      190                    elif          mode_string          ==          'EDIT_CURVE'          :                                      191                    layout.          popover_group          (context=          ".curve_edit"          , **popover_kw)                                      192                    elif          mode_string          ==          'EDIT_MESH'          :                                      193                    layout.          popover_group          (context=          ".mesh_edit"          , **popover_kw)                                      194                    elif          mode_string          ==          'POSE'          :                                      195                    layout.          popover_group          (context=          ".posemode"          , **popover_kw)                                      196                    elif          mode_string          ==          'PARTICLE'          :                                      197                    layout.          popover_group          (context=          ".particlemode"          , **popover_kw)                                      198                    elif          mode_string          ==          'OBJECT'          :                                      199                    layout.          popover_group          (context=          ".objectmode"          , **popover_kw)                                      200                    elif          mode_string          in          {          'PAINT_GPENCIL'          ,          'EDIT_GPENCIL'          ,          'SCULPT_GPENCIL'          ,          'WEIGHT_GPENCIL'          }:                                      201                    # Grease pencil layer.                                      202                    gpl          =          context.active_gpencil_layer                              203                    if          gpl          and          gpl.info          is not None          :                                      204                    text          =          gpl.info                              205                    maxw          =          25                                      206                    if          len          (text) >          maxw:                                      207                    text          =          text[:maxw          -          5          ] +          '..'          +          text[-          3          :]                                      208                    else          :                                      209                    text          =          ""                                      210                                                211                    layout.          label          (text=          "Layer:"          )                                      212                    sub          =          layout.          row          ()                                      213                    sub.ui_units_x          =          8                                      214                    sub.          popover          (                                      215                    panel=          "TOPBAR_PT_gpencil_layers"          ,                                      216                    text=text,                                      217                    )                                      218                                                219                                                220                    class          _draw_tool_settings_context_mode:                                      221                    @staticmethod                                      222                    def          SCULPT          (context,          layout,          tool):                                      223                    if          (tool          is None          )          or          (          not          tool.has_datablock):                                      224                    return False                                      225                                                226                    paint          =          context.tool_settings.sculpt                              227                    layout.          template_ID_preview          (paint,          "brush"          ,          rows=          3          ,          cols=          8          ,          hide_buttons=          True          )                                      228                                                229                    brush          =          paint.brush                              230                    if          brush          is None          :                                      231                    return False                                      232                                                233                    tool_settings          =          context.tool_settings                              234                    capabilities          =          brush.sculpt_capabilities                              235                                                236                    ups          =          tool_settings.unified_paint_settings                              237                                                238                    size          =          "size"                                      239                    size_owner          =          ups          if          ups.use_unified_size          else          brush                              240                    if          size_owner.use_locked_size          ==          'SCENE'          :                                      241                    size          =          "unprojected_radius"                                      242                                                243                    UnifiedPaintPanel.          prop_unified          (                                      244                    layout,                                      245                    context,                                      246                    brush,                                      247                    size,                                      248                    pressure_name=          "use_pressure_size"          ,                                      249                    unified_name=          "use_unified_size"          ,                                      250                    text=          "Radius"          ,                                      251                    slider=          True          ,                                      252                    header=          True                                      253                    )                                      254                                                255                    # strength, use_strength_pressure                                      256                    pressure_name          =          "use_pressure_strength"          if          capabilities.has_strength_pressure          else None                                      257                    UnifiedPaintPanel.          prop_unified          (                                      258                    layout,                                      259                    context,                                      260                    brush,                                      261                    "strength"          ,                                      262                    pressure_name=pressure_name,                                      263                    unified_name=          "use_unified_strength"          ,                                      264                    text=          "Strength"          ,                                      265                    header=          True                                      266                    )                                      267                                                268                    # direction                                      269                    if not          capabilities.has_direction:                                      270                    layout.          row          ().          prop          (brush,          "direction"          ,          expand=          True          ,          text=          ""          )                                      271                                                272                    if          capabilities.has_color:                                      273                    UnifiedPaintPanel.          prop_unified_color          (layout,          context,          brush,          "color"          ,          text=          ""          )                                      274                    layout.          prop          (brush,          "blend"          ,          text=          ""          ,          expand=          False          )                                      275                                                276                    return True                                      277                                                278                    @staticmethod                                      279                    def          PAINT_TEXTURE          (context,          layout,          tool):                                      280                    if          (tool          is None          )          or          (          not          tool.has_datablock):                                      281                    return False                                      282                                                283                    paint          =          context.tool_settings.image_paint                              284                    layout.          template_ID_preview          (paint,          "brush"          ,          rows=          3          ,          cols=          8          ,          hide_buttons=          True          )                                      285                                                286                    brush          =          paint.brush                              287                    if          brush          is None          :                                      288                    return False                                      289                                                290                    brush_basic_texpaint_settings          (layout,          context,          brush,          compact=          True          )                                      291                                                292                    return True                                      293                                                294                    @staticmethod                                      295                    def          PAINT_VERTEX          (context,          layout,          tool):                                      296                    if          (tool          is None          )          or          (          not          tool.has_datablock):                                      297                    return False                                      298                                                299                    paint          =          context.tool_settings.vertex_paint                              300                    layout.          template_ID_preview          (paint,          "brush"          ,          rows=          3          ,          cols=          8          ,          hide_buttons=          True          )                                      301                                                302                    brush          =          paint.brush                              303                    if          brush          is None          :                                      304                    return False                                      305                                                306                    brush_basic_texpaint_settings          (layout,          context,          brush,          compact=          True          )                                      307                                                308                    return True                                      309                                                310                    @staticmethod                                      311                    def          PAINT_WEIGHT          (context,          layout,          tool):                                      312                    if          (tool          is None          )          or          (          not          tool.has_datablock):                                      313                    return False                                      314                                                315                    paint          =          context.tool_settings.weight_paint                              316                    layout.          template_ID_preview          (paint,          "brush"          ,          rows=          3          ,          cols=          8          ,          hide_buttons=          True          )                                      317                    brush          =          paint.brush                              318                    if          brush          is None          :                                      319                    return False                                      320                                                321                    capabilities          =          brush.weight_paint_capabilities                              322                    if          capabilities.has_weight:                                      323                    UnifiedPaintPanel.          prop_unified          (                                      324                    layout,                                      325                    context,                                      326                    brush,                                      327                    "weight"          ,                                      328                    unified_name=          "use_unified_weight"          ,                                      329                    slider=          True          ,                                      330                    header=          True                                      331                    )                                      332                                                333                    UnifiedPaintPanel.          prop_unified          (                                      334                    layout,                                      335                    context,                                      336                    brush,                                      337                    "size"          ,                                      338                    pressure_name=          "use_pressure_size"          ,                                      339                    unified_name=          "use_unified_size"          ,                                      340                    slider=          True          ,                                      341                    text=          "Radius"          ,                                      342                    header=          True                                      343                    )                                      344                    UnifiedPaintPanel.          prop_unified          (                                      345                    layout,                                      346                    context,                                      347                    brush,                                      348                    "strength"          ,                                      349                    pressure_name=          "use_pressure_strength"          ,                                      350                    unified_name=          "use_unified_strength"          ,                                      351                    header=          True                                      352                    )                                      353                                                354                    return True                                      355                                                356                    @staticmethod                                      357                    def          PAINT_GPENCIL          (context,          layout,          tool):                                      358                    if          tool          is None          :                                      359                    return False                                      360                                                361                    if          tool.idname          ==          "builtin.cutter"          :                                      362                    row          =          layout.          row          (align=          True          )                                      363                    row.          prop          (context.tool_settings.gpencil_sculpt,          "intersection_threshold"          )                                      364                    return False                                      365                    elif not          tool.has_datablock:                                      366                    return False                                      367                                                368                    paint          =          context.tool_settings.gpencil_paint                              369                    brush          =          paint.brush                              370                    if          brush          is None          :                                      371                    return False                                      372                                                373                    gp_settings          =          brush.gpencil_settings                              374                                                375                    row          =          layout.          row          (align=          True          )                                      376                    tool_settings          =          context.scene.tool_settings                              377                    settings          =          tool_settings.gpencil_paint                              378                    row.          template_ID_preview          (settings,          "brush"          ,          rows=          3          ,          cols=          8          ,          hide_buttons=          True          )                                      379                                                380                    if          context.          object          and          brush.gpencil_tool          in          {          'FILL'          ,          'DRAW'          }:                                      381                    from          bl_ui.properties_paint_common          import          (                                      382                    brush_basic__draw_color_selector,                                      383                    )                                      384                    brush_basic__draw_color_selector          (context,          layout,          brush,          gp_settings,          None          )                                      385                                                386                    if          context.          object          and          brush.gpencil_tool          ==          'TINT'          :                                      387                    row.          separator          (factor=          0.4          )                                      388                    row.          prop_with_popover          (brush,          "color"          ,          text=          ""          ,          panel=          "TOPBAR_PT_gpencil_vertexcolor"          )                                      389                                                390                    from          bl_ui.properties_paint_common          import          (                                      391                    brush_basic_gpencil_paint_settings,                                      392                    )                                      393                    brush_basic_gpencil_paint_settings          (layout,          context,          brush,          compact=          True          )                                      394                                                395                    return True                                      396                                                397                    @staticmethod                                      398                    def          SCULPT_GPENCIL          (context,          layout,          tool):                                      399                    if          (tool          is None          )          or          (          not          tool.has_datablock):                                      400                    return False                                      401                    paint          =          context.tool_settings.gpencil_sculpt_paint                              402                    brush          =          paint.brush                              403                                                404                    from          bl_ui.properties_paint_common          import          (                                      405                    brush_basic_gpencil_sculpt_settings,                                      406                    )                                      407                    brush_basic_gpencil_sculpt_settings          (layout,          context,          brush,          compact=          True          )                                      408                                                409                    return True                                      410                                                411                    @staticmethod                                      412                    def          WEIGHT_GPENCIL          (context,          layout,          tool):                                      413                    if          (tool          is None          )          or          (          not          tool.has_datablock):                                      414                    return False                                      415                    paint          =          context.tool_settings.gpencil_weight_paint                              416                    brush          =          paint.brush                              417                                                418                    from          bl_ui.properties_paint_common          import          (                                      419                    brush_basic_gpencil_weight_settings,                                      420                    )                                      421                    brush_basic_gpencil_weight_settings          (layout,          context,          brush,          compact=          True          )                                      422                                                423                    return True                                      424                                                425                    @staticmethod                                      426                    def          VERTEX_GPENCIL          (context,          layout,          tool):                                      427                    if          (tool          is None          )          or          (          not          tool.has_datablock):                                      428                    return False                                      429                                                430                    paint          =          context.tool_settings.gpencil_vertex_paint                              431                    brush          =          paint.brush                              432                                                433                    row          =          layout.          row          (align=          True          )                                      434                    tool_settings          =          context.scene.tool_settings                              435                    settings          =          tool_settings.gpencil_vertex_paint                              436                    row.          template_ID_preview          (settings,          "brush"          ,          rows=          3          ,          cols=          8          ,          hide_buttons=          True          )                                      437                                                438                    if          brush.gpencil_vertex_tool          not in          {          'BLUR'          ,          'AVERAGE'          ,          'SMEAR'          }:                                      439                    row.          separator          (factor=          0.4          )                                      440                    row.          prop_with_popover          (brush,          "color"          ,          text=          ""          ,          panel=          "TOPBAR_PT_gpencil_vertexcolor"          )                                      441                                                442                    from          bl_ui.properties_paint_common          import          (                                      443                    brush_basic_gpencil_vertex_settings,                                      444                    )                                      445                                                446                    brush_basic_gpencil_vertex_settings          (layout,          context,          brush,          compact=          True          )                                      447                                                448                    return True                                      449                                                450                    @staticmethod                                      451                    def          PARTICLE          (context,          layout,          tool):                                      452                    if          (tool          is None          )          or          (          not          tool.has_datablock):                                      453                    return False                                      454                                                455                    # See: 'VIEW3D_PT_tools_brush', basically a duplicate                                      456                    settings          =          context.tool_settings.particle_edit                              457                    brush          =          settings.brush                              458                    tool          =          settings.tool                              459                    if          tool          ==          'NONE'          :                                      460                    return False                                      461                                                462                    layout.          prop          (brush,          "size"          ,          slider=          True          )                                      463                    if          tool          ==          'ADD'          :                                      464                    layout.          prop          (brush,          "count"          )                                      465                                                466                    layout.          prop          (settings,          "use_default_interpolate"          )                                      467                    layout.          prop          (brush,          "steps"          ,          slider=          True          )                                      468                    layout.          prop          (settings,          "default_key_count"          ,          slider=          True          )                                      469                    else          :                                      470                    layout.          prop          (brush,          "strength"          ,          slider=          True          )                                      471                                                472                    if          tool          ==          'LENGTH'          :                                      473                    layout.          row          ().          prop          (brush,          "length_mode"          ,          expand=          True          )                                      474                    elif          tool          ==          'PUFF'          :                                      475                    layout.          row          ().          prop          (brush,          "puff_mode"          ,          expand=          True          )                                      476                    layout.          prop          (brush,          "use_puff_volume"          )                                      477                    elif          tool          ==          'COMB'          :                                      478                    row          =          layout.          row          ()                                      479                    row.active          =          settings.is_editable                              480                    row.          prop          (settings,          "use_emitter_deflect"          ,          text=          "Deflect Emitter"          )                                      481                    sub          =          row.          row          (align=          True          )                                      482                    sub.active          =          settings.use_emitter_deflect                              483                    sub.          prop          (settings,          "emitter_distance"          ,          text=          "Distance"          )                                      484                                                485                    return True                                      486                                                487                                                488                    class          VIEW3D_HT_header          (Header):                                      489                    bl_space_type          =          'VIEW_3D'                                      490                                                491                    @staticmethod                                      492                    def          draw_xform_template          (layout,          context):                                      493                    obj          =          context.active_object                              494                    object_mode          =          'OBJECT'          if          obj          is None else          obj.mode                              495                    has_pose_mode          = (                                      496                    (object_mode          ==          'POSE'          )          or                                      497                    (object_mode          ==          'WEIGHT_PAINT'          and          context.pose_object          is not None          )                                      498                    )                                      499                                                500                    tool_settings          =          context.tool_settings                              501                                                502                    # Mode & Transform Settings                                      503                    scene          =          context.scene                              504                                                505                    # Orientation                                      506                    if          object_mode          in          {          'OBJECT'          ,          'EDIT'          ,          'EDIT_GPENCIL'          }          or          has_pose_mode:                                      507                    orient_slot          =          scene.transform_orientation_slots[          0          ]                                      508                    row          =          layout.          row          (align=          True          )                                      509                                                510                    sub          =          row.          row          ()                                      511                    sub.ui_units_x          =          4                                      512                    sub.          prop_with_popover          (                                      513                    orient_slot,                                      514                    "type"          ,                                      515                    text=          ""          ,                                      516                    panel=          "VIEW3D_PT_transform_orientations"          ,                                      517                    )                                      518                                                519                    # Pivot                                      520                    if          object_mode          in          {          'OBJECT'          ,          'EDIT'          ,          'EDIT_GPENCIL'          ,          'SCULPT_GPENCIL'          }          or          has_pose_mode:                                      521                    layout.          prop          (tool_settings,          "transform_pivot_point"          ,          text=          ""          ,          icon_only=          True          )                                      522                                                523                    # Snap                                      524                    show_snap          =          False                                      525                    if          obj          is None          :                                      526                    show_snap          =          True                                      527                    else          :                                      528                    if          (object_mode          not in          {                                      529                    'SCULPT'          ,          'VERTEX_PAINT'          ,          'WEIGHT_PAINT'          ,          'TEXTURE_PAINT'          ,                                      530                    'PAINT_GPENCIL'          ,          'SCULPT_GPENCIL'          ,          'WEIGHT_GPENCIL'          ,          'VERTEX_GPENCIL'                                      531                    })          or          has_pose_mode:                                      532                    show_snap          =          True                                      533                    else          :                                      534                                                535                    paint_settings          =          UnifiedPaintPanel.          paint_settings          (context)                                      536                                                537                    if          paint_settings:                                      538                    brush          =          paint_settings.brush                              539                    if          brush          and          hasattr          (brush,          "stroke_method"          )          and          brush.stroke_method          ==          'CURVE'          :                                      540                    show_snap          =          True                                      541                                                542                    if          show_snap:                                      543                    snap_items          =          bpy.types.ToolSettings.bl_rna.properties[          "snap_elements"          ].enum_items                              544                    snap_elements          =          tool_settings.snap_elements                              545                    if          len          (snap_elements) ==          1          :                                      546                    text          =          ""                                      547                    for          elem          in          snap_elements:                                      548                    icon          =          snap_items[elem].icon                              549                    break                                      550                    else          :                                      551                    text          =          "Mix"                                      552                    icon          =          'NONE'                                      553                    del          snap_items,          snap_elements                              554                                                555                    row          =          layout.          row          (align=          True          )                                      556                    row.          prop          (tool_settings,          "use_snap"          ,          text=          ""          )                                      557                                                558                    sub          =          row.          row          (align=          True          )                                      559                    sub.          popover          (                                      560                    panel=          "VIEW3D_PT_snapping"          ,                                      561                    icon=icon,                                      562                    text=text,                                      563                    )                                      564                                                565                    # Proportional editing                                      566                    if          object_mode          in          {          'EDIT'          ,          'PARTICLE_EDIT'          ,          'SCULPT_GPENCIL'          ,          'EDIT_GPENCIL'          ,          'OBJECT'          }:                                      567                    row          =          layout.          row          (align=          True          )                                      568                    kw          = {}                                      569                    if          object_mode          ==          'OBJECT'          :                                      570                    attr          =          "use_proportional_edit_objects"                                      571                    else          :                                      572                    attr          =          "use_proportional_edit"                                      573                                                574                    if          tool_settings.use_proportional_edit:                                      575                    if          tool_settings.use_proportional_connected:                                      576                    kw[          "icon"          ] =          'PROP_CON'                                      577                    elif          tool_settings.use_proportional_projected:                                      578                    kw[          "icon"          ] =          'PROP_PROJECTED'                                      579                    else          :                                      580                    kw[          "icon"          ] =          'PROP_ON'                                      581                    else          :                                      582                    kw[          "icon"          ] =          'PROP_OFF'                                      583                                                584                    row.          prop          (tool_settings,          attr,          icon_only=          True          , **kw)                                      585                    sub          =          row.          row          (align=          True          )                                      586                    sub.active          =          getattr          (tool_settings,          attr)                                      587                    sub.          prop_with_popover          (                                      588                    tool_settings,                                      589                    "proportional_edit_falloff"          ,                                      590                    text=          ""          ,                                      591                    icon_only=          True          ,                                      592                    panel=          "VIEW3D_PT_proportional_edit"          ,                                      593                    )                                      594                                                595                    def          draw          (self,          context):                                      596                    layout          =          self.layout                              597                                                598                    tool_settings          =          context.tool_settings                              599                    view          =          context.space_data                              600                    shading          =          view.shading                              601                                                602                    layout.          row          (align=          True          ).          template_header          ()                                      603                                                604                    row          =          layout.          row          (align=          True          )                                      605                    obj          =          context.active_object                              606                    # mode_string = context.mode                                      607                    object_mode          =          'OBJECT'          if          obj          is None else          obj.mode                              608                    has_pose_mode          = (                                      609                    (object_mode          ==          'POSE'          )          or                                      610                    (object_mode          ==          'WEIGHT_PAINT'          and          context.pose_object          is not None          )                                      611                    )                                      612                                                613                    # Note: This is actually deadly in case enum_items have to be dynamically generated                                      614                    #       (because internal RNA array iterator will free everything immediately...).                                      615                    # XXX This is an RNA internal issue, not sure how to fix it.                                      616                    # Note: Tried to add an accessor to get translated UI strings instead of manual call                                      617                    #       to pgettext_iface below, but this fails because translated enumitems                                      618                    #       are always dynamically allocated.                                      619                    act_mode_item          =          bpy.types.Object.bl_rna.properties[          "mode"          ].enum_items[object_mode]                                      620                    act_mode_i18n_context          =          bpy.types.Object.bl_rna.properties[          "mode"          ].translation_context                              621                                                622                    sub          =          row.          row          (align=          True          )                                      623                    sub.ui_units_x          =          5.5                                      624                    sub.          operator_menu_enum          (                                      625                    "object.mode_set"          ,          "mode"          ,                                      626                    text=bpy.app.translations.          pgettext_iface          (act_mode_item.name,          act_mode_i18n_context),                                      627                    icon=act_mode_item.icon,                                      628                    )                                      629                    del          act_mode_item                              630                                                631                    layout.          template_header_3D_mode          ()                                      632                                                633                    # Contains buttons like Mode, Pivot, Layer, Mesh Select Mode...                                      634                    if          obj:                                      635                    # Particle edit                                      636                    if          object_mode          ==          'PARTICLE_EDIT'          :                                      637                    row          =          layout.          row          ()                                      638                    row.          prop          (tool_settings.particle_edit,          "select_mode"          ,          text=          ""          ,          expand=          True          )                                      639                                                640                    # Grease Pencil                                      641                    if          obj          and          obj.          type          ==          'GPENCIL'          and          context.gpencil_data:                                      642                    gpd          =          context.gpencil_data                              643                                                644                    if          gpd.is_stroke_paint_mode:                                      645                    row          =          layout.          row          ()                                      646                    sub          =          row.          row          (align=          True          )                                      647                    sub.          prop          (tool_settings,          "use_gpencil_draw_onback"          ,          text=          ""          ,          icon=          'MOD_OPACITY'          )                                      648                    sub.          separator          (factor=          0.4          )                                      649                    sub.          prop          (tool_settings,          "use_gpencil_automerge_strokes"          ,          text=          ""          )                                      650                    sub.          separator          (factor=          0.4          )                                      651                    sub.          prop          (tool_settings,          "use_gpencil_weight_data_add"          ,          text=          ""          ,          icon=          'WPAINT_HLT'          )                                      652                    sub.          separator          (factor=          0.4          )                                      653                    sub.          prop          (tool_settings,          "use_gpencil_draw_additive"          ,          text=          ""          ,          icon=          'FREEZE'          )                                      654                                                655                    # Select mode for Editing                                      656                    if          gpd.use_stroke_edit_mode:                                      657                    row          =          layout.          row          (align=          True          )                                      658                    row.          prop_enum          (tool_settings,          "gpencil_selectmode_edit"          ,          text=          ""          ,          value=          'POINT'          )                                      659                    row.          prop_enum          (tool_settings,          "gpencil_selectmode_edit"          ,          text=          ""          ,          value=          'STROKE'          )                                      660                                                661                    subrow          =          row.          row          (align=          True          )                                      662                    subrow.enabled          =          not          gpd.use_curve_edit                              663                    subrow.          prop_enum          (tool_settings,          "gpencil_selectmode_edit"          ,          text=          ""          ,          value=          'SEGMENT'          )                                      664                                                665                    # Curve edit submode                                      666                    row          =          layout.          row          (align=          True          )                                      667                    row.          prop          (gpd,          "use_curve_edit"          ,          text=          ""          ,                                      668                    icon=          'IPO_BEZIER'          )                                      669                    sub          =          row.          row          (align=          True          )                                      670                    sub.active          =          gpd.use_curve_edit                              671                    sub.          popover          (                                      672                    panel=          "VIEW3D_PT_gpencil_curve_edit"          ,                                      673                    text=          "Curve Editing"          ,                                      674                    )                                      675                                                676                    # Select mode for Sculpt                                      677                    if          gpd.is_stroke_sculpt_mode:                                      678                    row          =          layout.          row          (align=          True          )                                      679                    row.          prop          (tool_settings,          "use_gpencil_select_mask_point"          ,          text=          ""          )                                      680                    row.          prop          (tool_settings,          "use_gpencil_select_mask_stroke"          ,          text=          ""          )                                      681                    row.          prop          (tool_settings,          "use_gpencil_select_mask_segment"          ,          text=          ""          )                                      682                                                683                    # Select mode for Vertex Paint                                      684                    if          gpd.is_stroke_vertex_mode:                                      685                    row          =          layout.          row          (align=          True          )                                      686                    row.          prop          (tool_settings,          "use_gpencil_vertex_select_mask_point"          ,          text=          ""          )                                      687                    row.          prop          (tool_settings,          "use_gpencil_vertex_select_mask_stroke"          ,          text=          ""          )                                      688                    row.          prop          (tool_settings,          "use_gpencil_vertex_select_mask_segment"          ,          text=          ""          )                                      689                                                690                    if          gpd.is_stroke_paint_mode:                                      691                    row          =          layout.          row          (align=          True          )                                      692                    row.          prop          (gpd,          "use_multiedit"          ,          text=          ""          ,          icon=          'GP_MULTIFRAME_EDITING'          )                                      693                                                694                    if          (                                      695                    gpd.use_stroke_edit_mode          or                                      696                    gpd.is_stroke_sculpt_mode          or                                      697                    gpd.is_stroke_weight_mode          or                                      698                    gpd.is_stroke_vertex_mode                              699                    ):                                      700                    row          =          layout.          row          (align=          True          )                                      701                    row.          prop          (gpd,          "use_multiedit"          ,          text=          ""          ,          icon=          'GP_MULTIFRAME_EDITING'          )                                      702                                                703                    sub          =          row.          row          (align=          True          )                                      704                    sub.enabled          =          gpd.use_multiedit                              705                    sub.          popover          (                                      706                    panel=          "VIEW3D_PT_gpencil_multi_frame"          ,                                      707                    text=          "Multiframe"          ,                                      708                    )                                      709                                                710                    overlay          =          view.overlay                              711                                                712                    VIEW3D_MT_editor_menus.          draw_collapsible          (context,          layout)                                      713                                                714                    layout.          separator_spacer          ()                                      715                                                716                    if          object_mode          in          {          'PAINT_GPENCIL'          ,          'SCULPT_GPENCIL'          }:                                      717                    # Grease pencil                                      718                    if          object_mode          ==          'PAINT_GPENCIL'          :                                      719                    layout.          prop_with_popover          (                                      720                    tool_settings,                                      721                    "gpencil_stroke_placement_view3d"          ,                                      722                    text=          ""          ,                                      723                    panel=          "VIEW3D_PT_gpencil_origin"          ,                                      724                    )                                      725                                                726                    if          object_mode          in          {          'PAINT_GPENCIL'          ,          'SCULPT_GPENCIL'          }:                                      727                    layout.          prop_with_popover          (                                      728                    tool_settings.gpencil_sculpt,                                      729                    "lock_axis"          ,                                      730                    text=          ""          ,                                      731                    panel=          "VIEW3D_PT_gpencil_lock"          ,                                      732                    )                                      733                                                734                    if          object_mode          ==          'PAINT_GPENCIL'          :                                      735                    # FIXME: this is bad practice!                                      736                    # Tool options are to be displayed in the topbar.                                      737                    if          context.workspace.tools.          from_space_view3d_mode          (object_mode).idname          ==          "builtin_brush.Draw"          :                                      738                    settings          =          tool_settings.gpencil_sculpt.guide                              739                    row          =          layout.          row          (align=          True          )                                      740                    row.          prop          (settings,          "use_guide"          ,          text=          ""          ,          icon=          'GRID'          )                                      741                    sub          =          row.          row          (align=          True          )                                      742                    sub.active          =          settings.use_guide                              743                    sub.          popover          (                                      744                    panel=          "VIEW3D_PT_gpencil_guide"          ,                                      745                    text=          "Guides"          ,                                      746                    )                                      747                                                748                    layout.          separator_spacer          ()                                      749                    else          :                                      750                    # Transform settings depending on tool header visibility                                      751                    VIEW3D_HT_header.          draw_xform_template          (layout,          context)                                      752                                                753                    layout.          separator_spacer          ()                                      754                                                755                    # Viewport Settings                                      756                    layout.          popover          (                                      757                    panel=          "VIEW3D_PT_object_type_visibility"          ,                                      758                    icon_value=view.icon_from_show_object_viewport,                                      759                    text=          ""          ,                                      760                    )                                      761                                                762                    # Gizmo toggle & popover.                                      763                    row          =          layout.          row          (align=          True          )                                      764                    # FIXME: place-holder icon.                                      765                    row.          prop          (view,          "show_gizmo"          ,          text=          ""          ,          toggle=          True          ,          icon=          'GIZMO'          )                                      766                    sub          =          row.          row          (align=          True          )                                      767                    sub.active          =          view.show_gizmo                              768                    sub.          popover          (                                      769                    panel=          "VIEW3D_PT_gizmo_display"          ,                                      770                    text=          ""          ,                                      771                    )                                      772                                                773                    # Overlay toggle & popover.                                      774                    row          =          layout.          row          (align=          True          )                                      775                    row.          prop          (overlay,          "show_overlays"          ,          icon=          'OVERLAY'          ,          text=          ""          )                                      776                    sub          =          row.          row          (align=          True          )                                      777                    sub.active          =          overlay.show_overlays                              778                    sub.          popover          (panel=          "VIEW3D_PT_overlay"          ,          text=          ""          )                                      779                                                780                    row          =          layout.          row          ()                                      781                    row.active          = (object_mode          ==          'EDIT'          )          or          (shading.          type          in          {          'WIREFRAME'          ,          'SOLID'          })                                      782                                                783                    # While exposing 'shading.show_xray(_wireframe)' is correct.                                      784                    # this hides the key shortcut from users: T70433.                                      785                    if          has_pose_mode:                                      786                    draw_depressed          =          overlay.show_xray_bone                              787                    elif          shading.          type          ==          'WIREFRAME'          :                                      788                    draw_depressed          =          shading.show_xray_wireframe                              789                    else          :                                      790                    draw_depressed          =          shading.show_xray                              791                    row.          operator          (                                      792                    "view3d.toggle_xray"          ,                                      793                    text=          ""          ,                                      794                    icon=          'XRAY'          ,                                      795                    depress=draw_depressed,                                      796                    )                                      797                                                798                    row          =          layout.          row          (align=          True          )                                      799                    row.          prop          (shading,          "type"          ,          text=          ""          ,          expand=          True          )                                      800                    sub          =          row.          row          (align=          True          )                                      801                    # TODO, currently render shading type ignores mesh two-side, until it's supported                                      802                    # show the shading popover which shows double-sided option.                                      803                                                804                    # sub.enabled = shading.type != 'RENDERED'                                      805                    sub.          popover          (panel=          "VIEW3D_PT_shading"          ,          text=          ""          )                                      806                                                807                                                808                    class          VIEW3D_MT_editor_menus          (Menu):                                      809                    bl_label          =          ""                                      810                                                811                    def          draw          (self,          context):                                      812                    layout          =          self.layout                              813                    obj          =          context.active_object                              814                    mode_string          =          context.mode                              815                    edit_object          =          context.edit_object                              816                    gp_edit          =          obj          and          obj.mode          in          {          'EDIT_GPENCIL'          ,          'PAINT_GPENCIL'          ,          'SCULPT_GPENCIL'          ,                                      817                    'WEIGHT_GPENCIL'          ,          'VERTEX_GPENCIL'          }                                      818                    ts          =          context.scene.tool_settings                              819                                                820                    layout.          menu          (          "VIEW3D_MT_view"          )                                      821                                                822                    # Select Menu                                      823                    if          gp_edit:                                      824                    if          mode_string          not in          {          'PAINT_GPENCIL'          ,          'WEIGHT_GPENCIL'          }:                                      825                    if          (                                      826                    mode_string          ==          'SCULPT_GPENCIL'          and                                      827                    (ts.use_gpencil_select_mask_point          or                                      828                    ts.use_gpencil_select_mask_stroke          or                                      829                    ts.use_gpencil_select_mask_segment)                                      830                    ):                                      831                    layout.          menu          (          "VIEW3D_MT_select_gpencil"          )                                      832                    elif          mode_string          ==          'EDIT_GPENCIL'          :                                      833                    layout.          menu          (          "VIEW3D_MT_select_gpencil"          )                                      834                    elif          mode_string          ==          'VERTEX_GPENCIL'          :                                      835                    layout.          menu          (          "VIEW3D_MT_select_gpencil"          )                                      836                    elif          mode_string          in          {          'PAINT_WEIGHT'          ,          'PAINT_VERTEX'          ,          'PAINT_TEXTURE'          }:                                      837                    mesh          =          obj.data                              838                    if          mesh.use_paint_mask:                                      839                    layout.          menu          (          "VIEW3D_MT_select_paint_mask"          )                                      840                    elif          mesh.use_paint_mask_vertex          and          mode_string          in          {          'PAINT_WEIGHT'          ,          'PAINT_VERTEX'          }:                                      841                    layout.          menu          (          "VIEW3D_MT_select_paint_mask_vertex"          )                                      842                    elif          mode_string          !=          'SCULPT'          :                                      843                    layout.          menu          (          "VIEW3D_MT_select_          %s          "          %          mode_string.          lower          ())                                      844                                                845                    if          gp_edit:                                      846                    pass                                      847                    elif          mode_string          ==          'OBJECT'          :                                      848                    layout.          menu          (          "VIEW3D_MT_add"          ,          text=          "Add"          ,          text_ctxt=i18n_contexts.operator_default)                                      849                    elif          mode_string          ==          'EDIT_MESH'          :                                      850                    layout.          menu          (          "VIEW3D_MT_mesh_add"          ,          text=          "Add"          ,          text_ctxt=i18n_contexts.operator_default)                                      851                    elif          mode_string          ==          'EDIT_CURVE'          :                                      852                    layout.          menu          (          "VIEW3D_MT_curve_add"          ,          text=          "Add"          ,          text_ctxt=i18n_contexts.operator_default)                                      853                    elif          mode_string          ==          'EDIT_SURFACE'          :                                      854                    layout.          menu          (          "VIEW3D_MT_surface_add"          ,          text=          "Add"          ,          text_ctxt=i18n_contexts.operator_default)                                      855                    elif          mode_string          ==          'EDIT_METABALL'          :                                      856                    layout.          menu          (          "VIEW3D_MT_metaball_add"          ,          text=          "Add"          ,          text_ctxt=i18n_contexts.operator_default)                                      857                    elif          mode_string          ==          'EDIT_ARMATURE'          :                                      858                    layout.          menu          (          "TOPBAR_MT_edit_armature_add"          ,          text=          "Add"          ,          text_ctxt=i18n_contexts.operator_default)                                      859                                                860                    if          gp_edit:                                      861                    if          obj          and          obj.mode          ==          'PAINT_GPENCIL'          :                                      862                    layout.          menu          (          "VIEW3D_MT_draw_gpencil"          )                                      863                    elif          obj          and          obj.mode          ==          'EDIT_GPENCIL'          :                                      864                    layout.          menu          (          "VIEW3D_MT_edit_gpencil"          )                                      865                    layout.          menu          (          "VIEW3D_MT_edit_gpencil_stroke"          )                                      866                    layout.          menu          (          "VIEW3D_MT_edit_gpencil_point"          )                                      867                    elif          obj          and          obj.mode          ==          'WEIGHT_GPENCIL'          :                                      868                    layout.          menu          (          "VIEW3D_MT_weight_gpencil"          )                                      869                    if          obj          and          obj.mode          ==          'VERTEX_GPENCIL'          :                                      870                    layout.          menu          (          "VIEW3D_MT_paint_gpencil"          )                                      871                                                872                    elif          edit_object:                                      873                    layout.          menu          (          "VIEW3D_MT_edit_          %s          "          %          edit_object.          type          .          lower          ())                                      874                                                875                    if          mode_string          ==          'EDIT_MESH'          :                                      876                    layout.          menu          (          "VIEW3D_MT_edit_mesh_vertices"          )                                      877                    layout.          menu          (          "VIEW3D_MT_edit_mesh_edges"          )                                      878                    layout.          menu          (          "VIEW3D_MT_edit_mesh_faces"          )                                      879                    layout.          menu          (          "VIEW3D_MT_uv_map"          ,          text=          "UV"          )                                      880                    elif          mode_string          in          {          'EDIT_CURVE'          ,          'EDIT_SURFACE'          }:                                      881                    layout.          menu          (          "VIEW3D_MT_edit_curve_ctrlpoints"          )                                      882                    layout.          menu          (          "VIEW3D_MT_edit_curve_segments"          )                                      883                                                884                    elif          obj:                                      885                    if          mode_string          !=          'PAINT_TEXTURE'          :                                      886                    layout.          menu          (          "VIEW3D_MT_          %s          "          %          mode_string.          lower          ())                                      887                    if          mode_string          ==          'SCULPT'          :                                      888                    layout.          menu          (          "VIEW3D_MT_mask"          )                                      889                    layout.          menu          (          "VIEW3D_MT_face_sets"          )                                      890                                                891                    else          :                                      892                    layout.          menu          (          "VIEW3D_MT_object"          )                                      893                                                894                                                895                    # ********** Menu **********                                      896                                                897                                                898                    # ********** Utilities **********                                      899                                                900                                                901                    class          ShowHideMenu:                                      902                    bl_label          =          "Show/Hide"                                      903                    _operator_name          =          ""                                      904                                                905                    def          draw          (self,          _context):                                      906                    layout          =          self.layout                              907                                                908                    layout.          operator          (          "          %s          .reveal"          %          self._operator_name)                                      909                    layout.          operator          (          "          %s          .hide"          %          self._operator_name,          text=          "Hide Selected"          ).unselected          =          False                                      910                    layout.          operator          (          "          %s          .hide"          %          self._operator_name,          text=          "Hide Unselected"          ).unselected          =          True                                      911                                                912                                                913                    # Standard transforms which apply to all cases (mix-in class, not used directly).                                      914                    class          VIEW3D_MT_transform_base:                                      915                    bl_label          =          "Transform"                                      916                    bl_category          =          "View"                                      917                                                918                    # TODO: get rid of the custom text strings?                                      919                    def          draw          (self,          context):                                      920                    layout          =          self.layout                              921                                                922                    layout.          operator          (          "transform.translate"          )                                      923                    layout.          operator          (          "transform.rotate"          )                                      924                    layout.          operator          (          "transform.resize"          ,          text=          "Scale"          )                                      925                                                926                    layout.          separator          ()                                      927                                                928                    layout.          operator          (          "transform.tosphere"          ,          text=          "To Sphere"          )                                      929                    layout.          operator          (          "transform.shear"          ,          text=          "Shear"          )                                      930                    layout.          operator          (          "transform.bend"          ,          text=          "Bend"          )                                      931                    layout.          operator          (          "transform.push_pull"          ,          text=          "Push/Pull"          )                                      932                                                933                    if          context.mode          in          {          'EDIT_MESH'          ,          'EDIT_ARMATURE'          ,          'EDIT_SURFACE'          ,          'EDIT_CURVE'          ,                                      934                    'EDIT_LATTICE'          ,          'EDIT_METABALL'          }:                                      935                    layout.          operator          (          "transform.vertex_warp"          ,          text=          "Warp"          )                                      936                    layout.operator_context          =          'EXEC_REGION_WIN'                                      937                    layout.          operator          (          "transform.vertex_random"          ,          text=          "Randomize"          ).offset          =          0.1                                      938                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      939                                                940                                                941                    # Generic transform menu - geometry types                                      942                    class          VIEW3D_MT_transform          (VIEW3D_MT_transform_base,          Menu):                                      943                    def          draw          (self,          context):                                      944                    # base menu                                      945                    VIEW3D_MT_transform_base.          draw          (self,          context)                                      946                                                947                    # generic...                                      948                    layout          =          self.layout                              949                    if          context.mode          ==          'EDIT_MESH'          :                                      950                    layout.          operator          (          "transform.shrink_fatten"          ,          text=          "Shrink/Fatten"          )                                      951                    layout.          operator          (          "transform.skin_resize"          )                                      952                    elif          context.mode          ==          'EDIT_CURVE'          :                                      953                    layout.          operator          (          "transform.transform"          ,          text=          "Radius"          ).mode          =          'CURVE_SHRINKFATTEN'                                      954                                                955                    layout.          separator          ()                                      956                                                957                    layout.          operator          (          "transform.translate"          ,          text=          "Move Texture Space"          ).texture_space          =          True                                      958                    layout.          operator          (          "transform.resize"          ,          text=          "Scale Texture Space"          ).texture_space          =          True                                      959                                                960                                                961                    # Object-specific extensions to Transform menu                                      962                    class          VIEW3D_MT_transform_object          (VIEW3D_MT_transform_base,          Menu):                                      963                    def          draw          (self,          context):                                      964                    layout          =          self.layout                              965                                                966                    # base menu                                      967                    VIEW3D_MT_transform_base.          draw          (self,          context)                                      968                                                969                    # object-specific option follow...                                      970                    layout.          separator          ()                                      971                                                972                    layout.          operator          (          "transform.translate"          ,          text=          "Move Texture Space"          ).texture_space          =          True                                      973                    layout.          operator          (          "transform.resize"          ,          text=          "Scale Texture Space"          ).texture_space          =          True                                      974                                                975                    layout.          separator          ()                                      976                                                977                    layout.operator_context          =          'EXEC_REGION_WIN'                                      978                    # XXX see alignmenu() in edit.c of b2.4x to get this working                                      979                    layout.          operator          (          "transform.transform"          ,          text=          "Align to Transform Orientation"          ).mode          =          'ALIGN'                                      980                                                981                    layout.          separator          ()                                      982                                                983                    layout.          operator          (          "object.randomize_transform"          )                                      984                    layout.          operator          (          "object.align"          )                                      985                                                986                    # TODO: there is a strange context bug here.                                      987                    """                                      988                                layout.operator_context = 'INVOKE_REGION_WIN'                                      989                                layout.operator("object.transform_axis_target")                                      990                                """                                      991                                                992                                                993                    # Armature EditMode extensions to Transform menu                                      994                    class          VIEW3D_MT_transform_armature          (VIEW3D_MT_transform_base,          Menu):                                      995                    def          draw          (self,          context):                                      996                    layout          =          self.layout                              997                                                998                    # base menu                                      999                    VIEW3D_MT_transform_base.          draw          (self,          context)                                      1000                                                1001                    # armature specific extensions follow...                                      1002                    obj          =          context.          object                                      1003                    if          obj.          type          ==          'ARMATURE'          and          obj.mode          in          {          'EDIT'          ,          'POSE'          }:                                      1004                    if          obj.data.display_type          ==          'BBONE'          :                                      1005                    layout.          separator          ()                                      1006                                                1007                    layout.          operator          (          "transform.transform"          ,          text=          "Scale BBone"          ).mode          =          'BONE_SIZE'                                      1008                    elif          obj.data.display_type          ==          'ENVELOPE'          :                                      1009                    layout.          separator          ()                                      1010                                                1011                    layout.          operator          (          "transform.transform"          ,          text=          "Scale Envelope Distance"          ).mode          =          'BONE_SIZE'                                      1012                    layout.          operator          (          "transform.transform"          ,          text=          "Scale Radius"          ).mode          =          'BONE_ENVELOPE'                                      1013                                                1014                    if          context.edit_object          and          context.edit_object.          type          ==          'ARMATURE'          :                                      1015                    layout.          separator          ()                                      1016                                                1017                    layout.          operator          (          "armature.align"          )                                      1018                                                1019                                                1020                    class          VIEW3D_MT_mirror          (Menu):                                      1021                    bl_label          =          "Mirror"                                      1022                                                1023                    def          draw          (self,          _context):                                      1024                    layout          =          self.layout                              1025                                                1026                    layout.          operator          (          "transform.mirror"          ,          text=          "Interactive Mirror"          )                                      1027                                                1028                    layout.          separator          ()                                      1029                                                1030                    layout.operator_context          =          'EXEC_REGION_WIN'                                      1031                                                1032                    for          (space_name,          space_id)          in          ((          "Global"          ,          'GLOBAL'          ), (          "Local"          ,          'LOCAL'          )):                                      1033                    for          axis_index,          axis_name          in          enumerate          (          "XYZ"          ):                                      1034                    props          =          layout.          operator          (          "transform.mirror"          ,          text=          "          %s %s          "          % (axis_name,          space_name))                                      1035                    props.constraint_axis[axis_index] =          True                                      1036                    props.orient_type          =          space_id                              1037                                                1038                    if          space_id          ==          'GLOBAL'          :                                      1039                    layout.          separator          ()                                      1040                                                1041                                                1042                    class          VIEW3D_MT_snap          (Menu):                                      1043                    bl_label          =          "Snap"                                      1044                                                1045                    def          draw          (self,          _context):                                      1046                    layout          =          self.layout                              1047                                                1048                    layout.          operator          (          "view3d.snap_selected_to_grid"          ,          text=          "Selection to Grid"          )                                      1049                    layout.          operator          (          "view3d.snap_selected_to_cursor"          ,          text=          "Selection to Cursor"          ).use_offset          =          False                                      1050                    layout.          operator          (          "view3d.snap_selected_to_cursor"          ,          text=          "Selection to Cursor (Keep Offset)"          ).use_offset          =          True                                      1051                    layout.          operator          (          "view3d.snap_selected_to_active"          ,          text=          "Selection to Active"          )                                      1052                                                1053                    layout.          separator          ()                                      1054                                                1055                    layout.          operator          (          "view3d.snap_cursor_to_selected"          ,          text=          "Cursor to Selected"          )                                      1056                    layout.          operator          (          "view3d.snap_cursor_to_center"          ,          text=          "Cursor to World Origin"          )                                      1057                    layout.          operator          (          "view3d.snap_cursor_to_grid"          ,          text=          "Cursor to Grid"          )                                      1058                    layout.          operator          (          "view3d.snap_cursor_to_active"          ,          text=          "Cursor to Active"          )                                      1059                                                1060                                                1061                    class          VIEW3D_MT_uv_map          (Menu):                                      1062                    bl_label          =          "UV Mapping"                                      1063                                                1064                    def          draw          (self,          _context):                                      1065                    layout          =          self.layout                              1066                                                1067                    layout.          operator          (          "uv.unwrap"          )                                      1068                                                1069                    layout.          separator          ()                                      1070                                                1071                    layout.operator_context          =          'INVOKE_DEFAULT'                                      1072                    layout.          operator          (          "uv.smart_project"          )                                      1073                    layout.          operator          (          "uv.lightmap_pack"          )                                      1074                    layout.          operator          (          "uv.follow_active_quads"          )                                      1075                                                1076                    layout.          separator          ()                                      1077                                                1078                    layout.operator_context          =          'EXEC_REGION_WIN'                                      1079                    layout.          operator          (          "uv.cube_project"          )                                      1080                    layout.          operator          (          "uv.cylinder_project"          )                                      1081                    layout.          operator          (          "uv.sphere_project"          )                                      1082                                                1083                    layout.          separator          ()                                      1084                                                1085                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      1086                    layout.          operator          (          "uv.project_from_view"          ).scale_to_bounds          =          False                                      1087                    layout.          operator          (          "uv.project_from_view"          ,          text=          "Project from View (Bounds)"          ).scale_to_bounds          =          True                                      1088                                                1089                    layout.          separator          ()                                      1090                                                1091                    layout.          operator          (          "mesh.mark_seam"          ).clear          =          False                                      1092                    layout.          operator          (          "mesh.mark_seam"          ,          text=          "Clear Seam"          ).clear          =          True                                      1093                                                1094                    layout.          separator          ()                                      1095                                                1096                    layout.          operator          (          "uv.reset"          )                                      1097                                                1098                                                1099                    # ********** View menus **********                                      1100                                                1101                                                1102                    class          VIEW3D_MT_view          (Menu):                                      1103                    bl_label          =          "View"                                      1104                                                1105                    def          draw          (self,          context):                                      1106                    layout          =          self.layout                              1107                    view          =          context.space_data                              1108                                                1109                    layout.          prop          (view,          "show_region_toolbar"          )                                      1110                    layout.          prop          (view,          "show_region_ui"          )                                      1111                    layout.          prop          (view,          "show_region_tool_header"          )                                      1112                    layout.          prop          (view,          "show_region_hud"          )                                      1113                                                1114                    layout.          separator          ()                                      1115                                                1116                    layout.          operator          (          "view3d.view_selected"          ,          text=          "Frame Selected"          ).use_all_regions          =          False                                      1117                    if          view.region_quadviews:                                      1118                    layout.          operator          (          "view3d.view_selected"          ,          text=          "Frame Selected (Quad View)"          ).use_all_regions          =          True                                      1119                                                1120                    layout.          operator          (          "view3d.view_all"          ).center          =          False                                      1121                    layout.          operator          (          "view3d.view_persportho"          ,          text=          "Perspective/Orthographic"          )                                      1122                    layout.          menu          (          "VIEW3D_MT_view_local"          )                                      1123                                                1124                    layout.          separator          ()                                      1125                                                1126                    layout.          menu          (          "VIEW3D_MT_view_cameras"          ,          text=          "Cameras"          )                                      1127                                                1128                    layout.          separator          ()                                      1129                    layout.          menu          (          "VIEW3D_MT_view_viewpoint"          )                                      1130                    layout.          menu          (          "VIEW3D_MT_view_navigation"          )                                      1131                    layout.          menu          (          "VIEW3D_MT_view_align"          )                                      1132                                                1133                    layout.          separator          ()                                      1134                                                1135                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      1136                    layout.          menu          (          "VIEW3D_MT_view_regions"          ,          text=          "View Regions"          )                                      1137                                                1138                    layout.          separator          ()                                      1139                                                1140                    layout.          operator          (          "screen.animation_play"          ,          text=          "Play Animation"          )                                      1141                                                1142                    layout.          separator          ()                                      1143                                                1144                    layout.          operator          (          "render.opengl"          ,          text=          "Viewport Render Image"          ,          icon=          'RENDER_STILL'          )                                      1145                    layout.          operator          (          "render.opengl"          ,          text=          "Viewport Render Animation"          ,          icon=          'RENDER_ANIMATION'          ).animation          =          True                                      1146                    props          =          layout.          operator          (          "render.opengl"          ,                                      1147                    text=          "Viewport Render Keyframes"          ,                                      1148                    icon=          'RENDER_ANIMATION'          ,                                      1149                    )                                      1150                    props.animation          =          True                                      1151                    props.render_keyed_only          =          True                                      1152                                                1153                    layout.          separator          ()                                      1154                                                1155                    layout.          menu          (          "INFO_MT_area"          )                                      1156                                                1157                                                1158                    class          VIEW3D_MT_view_local          (Menu):                                      1159                    bl_label          =          "Local View"                                      1160                                                1161                    def          draw          (self,          _context):                                      1162                    layout          =          self.layout                              1163                                                1164                    layout.          operator          (          "view3d.localview"          ,          text=          "Toggle Local View"          )                                      1165                    layout.          operator          (          "view3d.localview_remove_from"          )                                      1166                                                1167                                                1168                    class          VIEW3D_MT_view_cameras          (Menu):                                      1169                    bl_label          =          "Cameras"                                      1170                                                1171                    def          draw          (self,          _context):                                      1172                    layout          =          self.layout                              1173                                                1174                    layout.          operator          (          "view3d.object_as_camera"          )                                      1175                    layout.          operator          (          "view3d.view_camera"          ,          text=          "Active Camera"          )                                      1176                    layout.          operator          (          "view3d.view_center_camera"          )                                      1177                                                1178                                                1179                    class          VIEW3D_MT_view_viewpoint          (Menu):                                      1180                    bl_label          =          "Viewpoint"                                      1181                                                1182                    def          draw          (self,          _context):                                      1183                    layout          =          self.layout                              1184                                                1185                    layout.          operator          (          "view3d.view_camera"          ,          text=          "Camera"          )                                      1186                                                1187                    layout.          separator          ()                                      1188                                                1189                    layout.          operator          (          "view3d.view_axis"          ,          text=          "Top"          ).          type          =          'TOP'                                      1190                    layout.          operator          (          "view3d.view_axis"          ,          text=          "Bottom"          ).          type          =          'BOTTOM'                                      1191                                                1192                    layout.          separator          ()                                      1193                                                1194                    layout.          operator          (          "view3d.view_axis"          ,          text=          "Front"          ).          type          =          'FRONT'                                      1195                    layout.          operator          (          "view3d.view_axis"          ,          text=          "Back"          ).          type          =          'BACK'                                      1196                                                1197                    layout.          separator          ()                                      1198                                                1199                    layout.          operator          (          "view3d.view_axis"          ,          text=          "Right"          ).          type          =          'RIGHT'                                      1200                    layout.          operator          (          "view3d.view_axis"          ,          text=          "Left"          ).          type          =          'LEFT'                                      1201                                                1202                                                1203                    class          VIEW3D_MT_view_navigation          (Menu):                                      1204                    bl_label          =          "Navigation"                                      1205                                                1206                    def          draw          (self,          _context):                                      1207                    from          math          import          pi                              1208                    layout          =          self.layout                              1209                                                1210                    layout.          operator_enum          (          "view3d.view_orbit"          ,          "type"          )                                      1211                    props          =          layout.          operator          (          "view3d.view_orbit"          ,          text=          "Orbit Opposite"          )                                      1212                    props.          type          =          'ORBITRIGHT'                                      1213                    props.angle          =          pi                              1214                                                1215                    layout.          separator          ()                                      1216                                                1217                    layout.          operator          (          "view3d.view_roll"          ,          text=          "Roll Left"          ).          type          =          'LEFT'                                      1218                    layout.          operator          (          "view3d.view_roll"          ,          text=          "Roll Right"          ).          type          =          'RIGHT'                                      1219                                                1220                    layout.          separator          ()                                      1221                                                1222                    layout.          operator_enum          (          "view3d.view_pan"          ,          "type"          )                                      1223                                                1224                    layout.          separator          ()                                      1225                                                1226                    layout.          operator          (          "view3d.zoom"          ,          text=          "Zoom In"          ).delta          =          1                                      1227                    layout.          operator          (          "view3d.zoom"          ,          text=          "Zoom Out"          ).delta          = -          1                                      1228                    layout.          operator          (          "view3d.zoom_border"          ,          text=          "Zoom Region..."          )                                      1229                    layout.          operator          (          "view3d.zoom_camera_1_to_1"          ,          text=          "Zoom Camera 1:1"          )                                      1230                                                1231                    layout.          separator          ()                                      1232                                                1233                    layout.          operator          (          "view3d.fly"          )                                      1234                    layout.          operator          (          "view3d.walk"          )                                      1235                                                1236                                                1237                    class          VIEW3D_MT_view_align          (Menu):                                      1238                    bl_label          =          "Align View"                                      1239                                                1240                    def          draw          (self,          _context):                                      1241                    layout          =          self.layout                              1242                                                1243                    layout.          menu          (          "VIEW3D_MT_view_align_selected"          )                                      1244                                                1245                    layout.          separator          ()                                      1246                                                1247                    layout.          operator          (          "view3d.camera_to_view"          ,          text=          "Align Active Camera to View"          )                                      1248                    layout.          operator          (          "view3d.camera_to_view_selected"          ,          text=          "Align Active Camera to Selected"          )                                      1249                                                1250                    layout.          separator          ()                                      1251                                                1252                    layout.          operator          (          "view3d.view_all"          ,          text=          "Center Cursor and Frame All"          ).center          =          True                                      1253                    layout.          operator          (          "view3d.view_center_cursor"          )                                      1254                                                1255                    layout.          separator          ()                                      1256                                                1257                    layout.          operator          (          "view3d.view_lock_to_active"          )                                      1258                    layout.          operator          (          "view3d.view_lock_clear"          )                                      1259                                                1260                                                1261                    class          VIEW3D_MT_view_align_selected          (Menu):                                      1262                    bl_label          =          "Align View to Active"                                      1263                                                1264                    def          draw          (self,          _context):                                      1265                    layout          =          self.layout                              1266                                                1267                    props          =          layout.          operator          (          "view3d.view_axis"          ,          text=          "Top"          )                                      1268                    props.align_active          =          True                                      1269                    props.          type          =          'TOP'                                      1270                                                1271                    props          =          layout.          operator          (          "view3d.view_axis"          ,          text=          "Bottom"          )                                      1272                    props.align_active          =          True                                      1273                    props.          type          =          'BOTTOM'                                      1274                                                1275                    layout.          separator          ()                                      1276                                                1277                    props          =          layout.          operator          (          "view3d.view_axis"          ,          text=          "Front"          )                                      1278                    props.align_active          =          True                                      1279                    props.          type          =          'FRONT'                                      1280                                                1281                    props          =          layout.          operator          (          "view3d.view_axis"          ,          text=          "Back"          )                                      1282                    props.align_active          =          True                                      1283                    props.          type          =          'BACK'                                      1284                                                1285                    layout.          separator          ()                                      1286                                                1287                    props          =          layout.          operator          (          "view3d.view_axis"          ,          text=          "Right"          )                                      1288                    props.align_active          =          True                                      1289                    props.          type          =          'RIGHT'                                      1290                                                1291                    props          =          layout.          operator          (          "view3d.view_axis"          ,          text=          "Left"          )                                      1292                    props.align_active          =          True                                      1293                    props.          type          =          'LEFT'                                      1294                                                1295                                                1296                    class          VIEW3D_MT_view_regions          (Menu):                                      1297                    bl_label          =          "View Regions"                                      1298                                                1299                    def          draw          (self,          _context):                                      1300                    layout          =          self.layout                              1301                    layout.          operator          (          "view3d.clip_border"          ,          text=          "Clipping Region..."          )                                      1302                    layout.          operator          (          "view3d.render_border"          ,          text=          "Render Region..."          )                                      1303                                                1304                    layout.          separator          ()                                      1305                                                1306                    layout.          operator          (          "view3d.clear_render_border"          )                                      1307                                                1308                                                1309                    # ********** Select menus, suffix from context.mode **********                                      1310                                                1311                    class          VIEW3D_MT_select_object_more_less          (Menu):                                      1312                    bl_label          =          "Select More/Less"                                      1313                                                1314                    def          draw          (self,          _context):                                      1315                    layout          =          self.layout                              1316                                                1317                    layout          =          self.layout                              1318                                                1319                    layout.          operator          (          "object.select_more"          ,          text=          "More"          )                                      1320                    layout.          operator          (          "object.select_less"          ,          text=          "Less"          )                                      1321                                                1322                    layout.          separator          ()                                      1323                                                1324                    props          =          layout.          operator          (          "object.select_hierarchy"          ,          text=          "Parent"          )                                      1325                    props.extend          =          False                                      1326                    props.direction          =          'PARENT'                                      1327                                                1328                    props          =          layout.          operator          (          "object.select_hierarchy"          ,          text=          "Child"          )                                      1329                    props.extend          =          False                                      1330                    props.direction          =          'CHILD'                                      1331                                                1332                    layout.          separator          ()                                      1333                                                1334                    props          =          layout.          operator          (          "object.select_hierarchy"          ,          text=          "Extend Parent"          )                                      1335                    props.extend          =          True                                      1336                    props.direction          =          'PARENT'                                      1337                                                1338                    props          =          layout.          operator          (          "object.select_hierarchy"          ,          text=          "Extend Child"          )                                      1339                    props.extend          =          True                                      1340                    props.direction          =          'CHILD'                                      1341                                                1342                                                1343                    class          VIEW3D_MT_select_object          (Menu):                                      1344                    bl_label          =          "Select"                                      1345                                                1346                    def          draw          (self,          _context):                                      1347                    layout          =          self.layout                              1348                                                1349                    layout.          operator          (          "object.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1350                    layout.          operator          (          "object.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1351                    layout.          operator          (          "object.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1352                                                1353                    layout.          separator          ()                                      1354                                                1355                    layout.          operator          (          "view3d.select_box"          )                                      1356                    layout.          operator          (          "view3d.select_circle"          )                                      1357                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1358                                                1359                    layout.          separator          ()                                      1360                                                1361                    layout.          operator_menu_enum          (          "object.select_by_type"          ,          "type"          ,          text=          "Select All by Type"          )                                      1362                    layout.          operator          (          "object.select_camera"          ,          text=          "Select Active Camera"          )                                      1363                    layout.          operator          (          "object.select_mirror"          )                                      1364                    layout.          operator          (          "object.select_random"          ,          text=          "Select Random"          )                                      1365                                                1366                    layout.          separator          ()                                      1367                                                1368                    layout.          menu          (          "VIEW3D_MT_select_object_more_less"          )                                      1369                                                1370                    layout.          separator          ()                                      1371                                                1372                    layout.          operator_menu_enum          (          "object.select_grouped"          ,          "type"          ,          text=          "Select Grouped"          )                                      1373                    layout.          operator_menu_enum          (          "object.select_linked"          ,          "type"          ,          text=          "Select Linked"          )                                      1374                    layout.          operator          (          "object.select_pattern"          ,          text=          "Select Pattern..."          )                                      1375                                                1376                                                1377                    class          VIEW3D_MT_select_pose_more_less          (Menu):                                      1378                    bl_label          =          "Select More/Less"                                      1379                                                1380                    def          draw          (self,          _context):                                      1381                    layout          =          self.layout                              1382                                                1383                    layout          =          self.layout                              1384                                                1385                    props          =          layout.          operator          (          "pose.select_hierarchy"          ,          text=          "Parent"          )                                      1386                    props.extend          =          False                                      1387                    props.direction          =          'PARENT'                                      1388                                                1389                    props          =          layout.          operator          (          "pose.select_hierarchy"          ,          text=          "Child"          )                                      1390                    props.extend          =          False                                      1391                    props.direction          =          'CHILD'                                      1392                                                1393                    layout.          separator          ()                                      1394                                                1395                    props          =          layout.          operator          (          "pose.select_hierarchy"          ,          text=          "Extend Parent"          )                                      1396                    props.extend          =          True                                      1397                    props.direction          =          'PARENT'                                      1398                                                1399                    props          =          layout.          operator          (          "pose.select_hierarchy"          ,          text=          "Extend Child"          )                                      1400                    props.extend          =          True                                      1401                    props.direction          =          'CHILD'                                      1402                                                1403                                                1404                    class          VIEW3D_MT_select_pose          (Menu):                                      1405                    bl_label          =          "Select"                                      1406                                                1407                    def          draw          (self,          _context):                                      1408                    layout          =          self.layout                              1409                                                1410                    layout.          operator          (          "pose.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1411                    layout.          operator          (          "pose.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1412                    layout.          operator          (          "pose.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1413                                                1414                    layout.          separator          ()                                      1415                                                1416                    layout.          operator          (          "view3d.select_box"          )                                      1417                    layout.          operator          (          "view3d.select_circle"          )                                      1418                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1419                                                1420                    layout.          separator          ()                                      1421                                                1422                    layout.          operator          (          "pose.select_mirror"          )                                      1423                                                1424                    layout.          separator          ()                                      1425                                                1426                    layout.          operator          (          "pose.select_constraint_target"          ,          text=          "Constraint Target"          )                                      1427                    layout.          operator          (          "pose.select_linked"          ,          text=          "Linked"          )                                      1428                                                1429                    layout.          separator          ()                                      1430                                                1431                    layout.          menu          (          "VIEW3D_MT_select_pose_more_less"          )                                      1432                                                1433                    layout.          separator          ()                                      1434                                                1435                    layout.          operator_menu_enum          (          "pose.select_grouped"          ,          "type"          ,          text=          "Grouped"          )                                      1436                    layout.          operator          (          "object.select_pattern"          ,          text=          "Select Pattern..."          )                                      1437                                                1438                                                1439                    class          VIEW3D_MT_select_particle          (Menu):                                      1440                    bl_label          =          "Select"                                      1441                                                1442                    def          draw          (self,          _context):                                      1443                    layout          =          self.layout                              1444                                                1445                    layout.          operator          (          "particle.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1446                    layout.          operator          (          "particle.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1447                    layout.          operator          (          "particle.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1448                                                1449                    layout.          separator          ()                                      1450                                                1451                    layout.          operator          (          "view3d.select_box"          )                                      1452                    layout.          operator          (          "view3d.select_circle"          )                                      1453                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1454                                                1455                    layout.          separator          ()                                      1456                                                1457                    layout.          operator          (          "particle.select_linked"          ,          text=          "Select Linked"          )                                      1458                                                1459                    layout.          separator          ()                                      1460                                                1461                    layout.          operator          (          "particle.select_more"          )                                      1462                    layout.          operator          (          "particle.select_less"          )                                      1463                                                1464                    layout.          separator          ()                                      1465                                                1466                    layout.          operator          (          "particle.select_random"          )                                      1467                                                1468                    layout.          separator          ()                                      1469                                                1470                    layout.          operator          (          "particle.select_roots"          ,          text=          "Roots"          )                                      1471                    layout.          operator          (          "particle.select_tips"          ,          text=          "Tips"          )                                      1472                                                1473                                                1474                    class          VIEW3D_MT_edit_mesh_select_similar          (Menu):                                      1475                    bl_label          =          "Select Similar"                                      1476                                                1477                    def          draw          (self,          _context):                                      1478                    layout          =          self.layout                              1479                                                1480                    layout.          operator_enum          (          "mesh.select_similar"          ,          "type"          )                                      1481                                                1482                    layout.          separator          ()                                      1483                                                1484                    layout.          operator          (          "mesh.select_similar_region"          ,          text=          "Face Regions"          )                                      1485                                                1486                                                1487                    class          VIEW3D_MT_edit_mesh_select_by_trait          (Menu):                                      1488                    bl_label          =          "Select All by Trait"                                      1489                                                1490                    def          draw          (self,          context):                                      1491                    layout          =          self.layout                              1492                    tool_settings          =          context.tool_settings                              1493                    if          tool_settings.mesh_select_mode[          2          ]          is False          :                                      1494                    layout.          operator          (          "mesh.select_non_manifold"          ,          text=          "Non Manifold"          )                                      1495                    layout.          operator          (          "mesh.select_loose"          ,          text=          "Loose Geometry"          )                                      1496                    layout.          operator          (          "mesh.select_interior_faces"          ,          text=          "Interior Faces"          )                                      1497                    layout.          operator          (          "mesh.select_face_by_sides"          ,          text=          "Faces by Sides"          )                                      1498                                                1499                    layout.          separator          ()                                      1500                                                1501                    layout.          operator          (          "mesh.select_ungrouped"          ,          text=          "Ungrouped Vertices"          )                                      1502                                                1503                                                1504                    class          VIEW3D_MT_edit_mesh_select_more_less          (Menu):                                      1505                    bl_label          =          "Select More/Less"                                      1506                                                1507                    def          draw          (self,          _context):                                      1508                    layout          =          self.layout                              1509                                                1510                    layout.          operator          (          "mesh.select_more"          ,          text=          "More"          )                                      1511                    layout.          operator          (          "mesh.select_less"          ,          text=          "Less"          )                                      1512                                                1513                    layout.          separator          ()                                      1514                                                1515                    layout.          operator          (          "mesh.select_next_item"          ,          text=          "Next Active"          )                                      1516                    layout.          operator          (          "mesh.select_prev_item"          ,          text=          "Previous Active"          )                                      1517                                                1518                                                1519                    class          VIEW3D_MT_edit_mesh_select_linked          (Menu):                                      1520                    bl_label          =          "Select Linked"                                      1521                                                1522                    def          draw          (self,          _context):                                      1523                    layout          =          self.layout                              1524                                                1525                    layout.          operator          (          "mesh.select_linked"          ,          text=          "Linked"          )                                      1526                    layout.          operator          (          "mesh.shortest_path_select"          ,          text=          "Shortest Path"          )                                      1527                    layout.          operator          (          "mesh.faces_select_linked_flat"          ,          text=          "Linked Flat Faces"          )                                      1528                                                1529                                                1530                    class          VIEW3D_MT_edit_mesh_select_loops          (Menu):                                      1531                    bl_label          =          "Select Loops"                                      1532                                                1533                    def          draw          (self,          _context):                                      1534                    layout          =          self.layout                              1535                                                1536                    layout.          operator          (          "mesh.loop_multi_select"          ,          text=          "Edge Loops"          ).ring          =          False                                      1537                    layout.          operator          (          "mesh.loop_multi_select"          ,          text=          "Edge Rings"          ).ring          =          True                                      1538                                                1539                    layout.          separator          ()                                      1540                                                1541                    layout.          operator          (          "mesh.loop_to_region"          )                                      1542                    layout.          operator          (          "mesh.region_to_loop"          )                                      1543                                                1544                                                1545                    class          VIEW3D_MT_select_edit_mesh          (Menu):                                      1546                    bl_label          =          "Select"                                      1547                                                1548                    def          draw          (self,          _context):                                      1549                    layout          =          self.layout                              1550                                                1551                    # primitive                                      1552                    layout.          operator          (          "mesh.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1553                    layout.          operator          (          "mesh.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1554                    layout.          operator          (          "mesh.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1555                                                1556                    layout.          separator          ()                                      1557                                                1558                    layout.          operator          (          "view3d.select_box"          )                                      1559                    layout.          operator          (          "view3d.select_circle"          )                                      1560                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1561                                                1562                    layout.          separator          ()                                      1563                                                1564                    # numeric                                      1565                    layout.          operator          (          "mesh.select_random"          ,          text=          "Select Random"          )                                      1566                    layout.          operator          (          "mesh.select_nth"          )                                      1567                                                1568                    layout.          separator          ()                                      1569                                                1570                    # geometric                                      1571                    layout.          operator          (          "mesh.edges_select_sharp"          ,          text=          "Select Sharp Edges"          )                                      1572                                                1573                    layout.          separator          ()                                      1574                                                1575                    # other ...                                      1576                    layout.          menu          (          "VIEW3D_MT_edit_mesh_select_similar"          )                                      1577                                                1578                    layout.          separator          ()                                      1579                                                1580                    layout.          menu          (          "VIEW3D_MT_edit_mesh_select_by_trait"          )                                      1581                                                1582                    layout.          separator          ()                                      1583                                                1584                    layout.          menu          (          "VIEW3D_MT_edit_mesh_select_more_less"          )                                      1585                                                1586                    layout.          separator          ()                                      1587                                                1588                    layout.          menu          (          "VIEW3D_MT_edit_mesh_select_loops"          )                                      1589                                                1590                    layout.          separator          ()                                      1591                                                1592                    layout.          menu          (          "VIEW3D_MT_edit_mesh_select_linked"          )                                      1593                                                1594                    layout.          separator          ()                                      1595                                                1596                    layout.          operator          (          "mesh.select_axis"          ,          text=          "Side of Active"          )                                      1597                    layout.          operator          (          "mesh.select_mirror"          )                                      1598                                                1599                                                1600                    class          VIEW3D_MT_select_edit_curve          (Menu):                                      1601                    bl_label          =          "Select"                                      1602                                                1603                    def          draw          (self,          _context):                                      1604                    layout          =          self.layout                              1605                                                1606                    layout.          operator          (          "curve.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1607                    layout.          operator          (          "curve.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1608                    layout.          operator          (          "curve.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1609                                                1610                    layout.          separator          ()                                      1611                                                1612                    layout.          operator          (          "view3d.select_box"          )                                      1613                    layout.          operator          (          "view3d.select_circle"          )                                      1614                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1615                                                1616                    layout.          separator          ()                                      1617                                                1618                    layout.          operator          (          "curve.select_random"          )                                      1619                    layout.          operator          (          "curve.select_nth"          )                                      1620                    layout.          operator          (          "curve.select_linked"          ,          text=          "Select Linked"          )                                      1621                    layout.          operator          (          "curve.select_similar"          ,          text=          "Select Similar"          )                                      1622                                                1623                    layout.          separator          ()                                      1624                                                1625                    layout.          operator          (          "curve.de_select_first"          )                                      1626                    layout.          operator          (          "curve.de_select_last"          )                                      1627                    layout.          operator          (          "curve.select_next"          )                                      1628                    layout.          operator          (          "curve.select_previous"          )                                      1629                                                1630                    layout.          separator          ()                                      1631                                                1632                    layout.          operator          (          "curve.select_more"          )                                      1633                    layout.          operator          (          "curve.select_less"          )                                      1634                                                1635                                                1636                    class          VIEW3D_MT_select_edit_surface          (Menu):                                      1637                    bl_label          =          "Select"                                      1638                                                1639                    def          draw          (self,          _context):                                      1640                    layout          =          self.layout                              1641                                                1642                    layout.          operator          (          "curve.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1643                    layout.          operator          (          "curve.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1644                    layout.          operator          (          "curve.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1645                                                1646                    layout.          separator          ()                                      1647                                                1648                    layout.          operator          (          "view3d.select_box"          )                                      1649                    layout.          operator          (          "view3d.select_circle"          )                                      1650                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1651                                                1652                    layout.          separator          ()                                      1653                                                1654                    layout.          operator          (          "curve.select_random"          )                                      1655                    layout.          operator          (          "curve.select_nth"          )                                      1656                    layout.          operator          (          "curve.select_linked"          ,          text=          "Select Linked"          )                                      1657                    layout.          operator          (          "curve.select_similar"          ,          text=          "Select Similar"          )                                      1658                                                1659                    layout.          separator          ()                                      1660                                                1661                    layout.          operator          (          "curve.select_row"          )                                      1662                                                1663                    layout.          separator          ()                                      1664                                                1665                    layout.          operator          (          "curve.select_more"          )                                      1666                    layout.          operator          (          "curve.select_less"          )                                      1667                                                1668                                                1669                    class          VIEW3D_MT_select_edit_text          (Menu):                                      1670                    bl_label          =          "Select"                                      1671                                                1672                    def          draw          (self,          _context):                                      1673                    layout          =          self.layout                              1674                                                1675                    layout.          operator          (          "font.select_all"          ,          text=          "All"          )                                      1676                                                1677                    layout.          separator          ()                                      1678                                                1679                    layout.          operator          (          "font.move_select"          ,          text=          "Previous Block"          ).          type          =          'PREVIOUS_PAGE'                                      1680                    layout.          operator          (          "font.move_select"          ,          text=          "Next Block"          ).          type          =          'NEXT_PAGE'                                      1681                                                1682                    layout.          separator          ()                                      1683                                                1684                    layout.          operator          (          "font.move_select"          ,          text=          "Line Begin"          ).          type          =          'LINE_BEGIN'                                      1685                    layout.          operator          (          "font.move_select"          ,          text=          "Line End"          ).          type          =          'LINE_END'                                      1686                                                1687                    layout.          separator          ()                                      1688                                                1689                    layout.          operator          (          "font.move_select"          ,          text=          "Previous Line"          ).          type          =          'PREVIOUS_LINE'                                      1690                    layout.          operator          (          "font.move_select"          ,          text=          "Next Line"          ).          type          =          'NEXT_LINE'                                      1691                                                1692                    layout.          separator          ()                                      1693                                                1694                    layout.          operator          (          "font.move_select"          ,          text=          "Previous Word"          ).          type          =          'PREVIOUS_WORD'                                      1695                    layout.          operator          (          "font.move_select"          ,          text=          "Next Word"          ).          type          =          'NEXT_WORD'                                      1696                                                1697                                                1698                    class          VIEW3D_MT_select_edit_metaball          (Menu):                                      1699                    bl_label          =          "Select"                                      1700                                                1701                    def          draw          (self,          _context):                                      1702                    layout          =          self.layout                              1703                                                1704                    layout.          operator          (          "mball.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1705                    layout.          operator          (          "mball.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1706                    layout.          operator          (          "mball.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1707                                                1708                    layout.          separator          ()                                      1709                                                1710                    layout.          operator          (          "view3d.select_box"          )                                      1711                    layout.          operator          (          "view3d.select_circle"          )                                      1712                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1713                                                1714                    layout.          separator          ()                                      1715                                                1716                    layout.          operator          (          "mball.select_random_metaelems"          )                                      1717                                                1718                    layout.          separator          ()                                      1719                                                1720                    layout.          operator_menu_enum          (          "mball.select_similar"          ,          "type"          ,          text=          "Similar"          )                                      1721                                                1722                                                1723                    class          VIEW3D_MT_edit_lattice_context_menu          (Menu):                                      1724                    bl_label          =          "Lattice Context Menu"                                      1725                                                1726                    def          draw          (self,          _context):                                      1727                    layout          =          self.layout                              1728                                                1729                    layout          =          self.layout                              1730                                                1731                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      1732                    layout.          operator_menu_enum          (          "lattice.flip"          ,          "axis"          )                                      1733                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      1734                                                1735                    layout.          separator          ()                                      1736                                                1737                    layout.          operator          (          "lattice.make_regular"          )                                      1738                                                1739                                                1740                    class          VIEW3D_MT_select_edit_lattice          (Menu):                                      1741                    bl_label          =          "Select"                                      1742                                                1743                    def          draw          (self,          _context):                                      1744                    layout          =          self.layout                              1745                                                1746                    layout.          operator          (          "lattice.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1747                    layout.          operator          (          "lattice.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1748                    layout.          operator          (          "lattice.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1749                                                1750                    layout.          separator          ()                                      1751                                                1752                    layout.          operator          (          "view3d.select_box"          )                                      1753                    layout.          operator          (          "view3d.select_circle"          )                                      1754                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1755                                                1756                    layout.          separator          ()                                      1757                                                1758                    layout.          operator          (          "lattice.select_mirror"          )                                      1759                    layout.          operator          (          "lattice.select_random"          )                                      1760                                                1761                    layout.          separator          ()                                      1762                                                1763                    layout.          operator          (          "lattice.select_more"          )                                      1764                    layout.          operator          (          "lattice.select_less"          )                                      1765                                                1766                    layout.          separator          ()                                      1767                                                1768                    layout.          operator          (          "lattice.select_ungrouped"          ,          text=          "Ungrouped Vertices"          )                                      1769                                                1770                                                1771                    class          VIEW3D_MT_select_edit_armature          (Menu):                                      1772                    bl_label          =          "Select"                                      1773                                                1774                    def          draw          (self,          _context):                                      1775                    layout          =          self.layout                              1776                                                1777                    layout.          operator          (          "armature.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1778                    layout.          operator          (          "armature.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1779                    layout.          operator          (          "armature.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1780                                                1781                    layout.          separator          ()                                      1782                                                1783                    layout.          operator          (          "view3d.select_box"          )                                      1784                    layout.          operator          (          "view3d.select_circle"          )                                      1785                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1786                                                1787                    layout.          separator          ()                                      1788                                                1789                    layout.          operator          (          "armature.select_mirror"          )                                      1790                                                1791                    layout.          separator          ()                                      1792                                                1793                    layout.          operator          (          "armature.select_more"          ,          text=          "More"          )                                      1794                    layout.          operator          (          "armature.select_less"          ,          text=          "Less"          )                                      1795                                                1796                    layout.          separator          ()                                      1797                                                1798                    layout.          operator          (          "armature.select_linked"          ,          text=          "Linked"          )                                      1799                                                1800                    layout.          separator          ()                                      1801                                                1802                    props          =          layout.          operator          (          "armature.select_hierarchy"          ,          text=          "Parent"          )                                      1803                    props.extend          =          False                                      1804                    props.direction          =          'PARENT'                                      1805                                                1806                    props          =          layout.          operator          (          "armature.select_hierarchy"          ,          text=          "Child"          )                                      1807                    props.extend          =          False                                      1808                    props.direction          =          'CHILD'                                      1809                                                1810                    layout.          separator          ()                                      1811                                                1812                    props          =          layout.          operator          (          "armature.select_hierarchy"          ,          text=          "Extend Parent"          )                                      1813                    props.extend          =          True                                      1814                    props.direction          =          'PARENT'                                      1815                                                1816                    props          =          layout.          operator          (          "armature.select_hierarchy"          ,          text=          "Extend Child"          )                                      1817                    props.extend          =          True                                      1818                    props.direction          =          'CHILD'                                      1819                                                1820                    layout.          operator_menu_enum          (          "armature.select_similar"          ,          "type"          ,          text=          "Similar"          )                                      1821                    layout.          operator          (          "object.select_pattern"          ,          text=          "Select Pattern..."          )                                      1822                                                1823                                                1824                    class          VIEW3D_MT_paint_gpencil          (Menu):                                      1825                    bl_label          =          "Paint"                                      1826                                                1827                    def          draw          (self,          _context):                                      1828                    layout          =          self.layout                              1829                                                1830                    layout.          operator          (          "gpencil.vertex_color_set"          ,          text=          "Set Vertex Colors"          )                                      1831                    layout.          operator          (          "gpencil.stroke_reset_vertex_color"          )                                      1832                    layout.          separator          ()                                      1833                    layout.          operator          (          "gpencil.vertex_color_invert"          ,          text=          "Invert"          )                                      1834                    layout.          operator          (          "gpencil.vertex_color_levels"          ,          text=          "Levels"          )                                      1835                    layout.          operator          (          "gpencil.vertex_color_hsv"          ,          text=          "Hue Saturation Value"          )                                      1836                    layout.          operator          (          "gpencil.vertex_color_brightness_contrast"          ,          text=          "Bright/Contrast"          )                                      1837                                                1838                                                1839                    class          VIEW3D_MT_select_gpencil          (Menu):                                      1840                    bl_label          =          "Select"                                      1841                                                1842                    def          draw          (self,          context):                                      1843                    layout          =          self.layout                              1844                                                1845                    layout.          operator          (          "gpencil.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1846                    layout.          operator          (          "gpencil.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1847                    layout.          operator          (          "gpencil.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1848                                                1849                    layout.          separator          ()                                      1850                                                1851                    layout.          operator          (          "gpencil.select_box"          )                                      1852                    layout.          operator          (          "gpencil.select_circle"          )                                      1853                    layout.          operator_menu_enum          (          "gpencil.select_lasso"          ,          "mode"          )                                      1854                                                1855                    layout.          separator          ()                                      1856                                                1857                    layout.          operator          (          "gpencil.select_linked"          ,          text=          "Linked"          )                                      1858                    layout.          operator          (          "gpencil.select_alternate"          )                                      1859                    layout.          operator          (          "gpencil.select_random"          )                                      1860                    layout.          operator_menu_enum          (          "gpencil.select_grouped"          ,          "type"          ,          text=          "Grouped"          )                                      1861                                                1862                    if          context.mode          ==          'VERTEX_GPENCIL'          :                                      1863                    layout.          operator          (          "gpencil.select_vertex_color"          ,          text=          "Vertex Color"          )                                      1864                                                1865                    layout.          separator          ()                                      1866                                                1867                    layout.          operator          (          "gpencil.select_first"          )                                      1868                    layout.          operator          (          "gpencil.select_last"          )                                      1869                                                1870                    layout.          separator          ()                                      1871                                                1872                    layout.          operator          (          "gpencil.select_more"          )                                      1873                    layout.          operator          (          "gpencil.select_less"          )                                      1874                                                1875                                                1876                    class          VIEW3D_MT_select_paint_mask          (Menu):                                      1877                    bl_label          =          "Select"                                      1878                                                1879                    def          draw          (self,          _context):                                      1880                    layout          =          self.layout                              1881                                                1882                    layout.          operator          (          "paint.face_select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1883                    layout.          operator          (          "paint.face_select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1884                    layout.          operator          (          "paint.face_select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1885                                                1886                    layout.          separator          ()                                      1887                                                1888                    layout.          operator          (          "view3d.select_box"          )                                      1889                    layout.          operator          (          "view3d.select_circle"          )                                      1890                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1891                                                1892                    layout.          separator          ()                                      1893                                                1894                    layout.          operator          (          "paint.face_select_linked"          ,          text=          "Linked"          )                                      1895                                                1896                                                1897                    class          VIEW3D_MT_select_paint_mask_vertex          (Menu):                                      1898                    bl_label          =          "Select"                                      1899                                                1900                    def          draw          (self,          _context):                                      1901                    layout          =          self.layout                              1902                                                1903                    layout.          operator          (          "paint.vert_select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      1904                    layout.          operator          (          "paint.vert_select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      1905                    layout.          operator          (          "paint.vert_select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      1906                                                1907                    layout.          separator          ()                                      1908                                                1909                    layout.          operator          (          "view3d.select_box"          )                                      1910                    layout.          operator          (          "view3d.select_circle"          )                                      1911                    layout.          operator_menu_enum          (          "view3d.select_lasso"          ,          "mode"          )                                      1912                                                1913                    layout.          separator          ()                                      1914                                                1915                    layout.          operator          (          "paint.vert_select_ungrouped"          ,          text=          "Ungrouped Vertices"          )                                      1916                                                1917                                                1918                    class          VIEW3D_MT_angle_control          (Menu):                                      1919                    bl_label          =          "Angle Control"                                      1920                                                1921                    @classmethod                                      1922                    def          poll          (cls,          context):                                      1923                    settings          =          UnifiedPaintPanel.          paint_settings          (context)                                      1924                    if not          settings:                                      1925                    return False                                      1926                                                1927                    brush          =          settings.brush                              1928                    tex_slot          =          brush.texture_slot                              1929                                                1930                    return          tex_slot.has_texture_angle          and          tex_slot.has_texture_angle_source                              1931                                                1932                    def          draw          (self,          context):                                      1933                    layout          =          self.layout                              1934                                                1935                    settings          =          UnifiedPaintPanel.          paint_settings          (context)                                      1936                    brush          =          settings.brush                              1937                                                1938                    sculpt          = (context.sculpt_object          is not None          )                                      1939                                                1940                    tex_slot          =          brush.texture_slot                              1941                                                1942                    layout.          prop          (tex_slot,          "use_rake"          ,          text=          "Rake"          )                                      1943                                                1944                    if          brush.brush_capabilities.has_random_texture_angle          and          tex_slot.has_random_texture_angle:                                      1945                    if          sculpt:                                      1946                    if          brush.sculpt_capabilities.has_random_texture_angle:                                      1947                    layout.          prop          (tex_slot,          "use_random"          ,          text=          "Random"          )                                      1948                    else          :                                      1949                    layout.          prop          (tex_slot,          "use_random"          ,          text=          "Random"          )                                      1950                                                1951                                                1952                    class          VIEW3D_MT_mesh_add          (Menu):                                      1953                    bl_idname          =          "VIEW3D_MT_mesh_add"                                      1954                    bl_label          =          "Mesh"                                      1955                                                1956                    def          draw          (self,          _context):                                      1957                    layout          =          self.layout                              1958                                                1959                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      1960                                                1961                    layout.          operator          (          "mesh.primitive_plane_add"          ,          text=          "Plane"          ,          icon=          'MESH_PLANE'          )                                      1962                    layout.          operator          (          "mesh.primitive_cube_add"          ,          text=          "Cube"          ,          icon=          'MESH_CUBE'          )                                      1963                    layout.          operator          (          "mesh.primitive_circle_add"          ,          text=          "Circle"          ,          icon=          'MESH_CIRCLE'          )                                      1964                    layout.          operator          (          "mesh.primitive_uv_sphere_add"          ,          text=          "UV Sphere"          ,          icon=          'MESH_UVSPHERE'          )                                      1965                    layout.          operator          (          "mesh.primitive_ico_sphere_add"          ,          text=          "Ico Sphere"          ,          icon=          'MESH_ICOSPHERE'          )                                      1966                    layout.          operator          (          "mesh.primitive_cylinder_add"          ,          text=          "Cylinder"          ,          icon=          'MESH_CYLINDER'          )                                      1967                    layout.          operator          (          "mesh.primitive_cone_add"          ,          text=          "Cone"          ,          icon=          'MESH_CONE'          )                                      1968                    layout.          operator          (          "mesh.primitive_torus_add"          ,          text=          "Torus"          ,          icon=          'MESH_TORUS'          )                                      1969                                                1970                    layout.          separator          ()                                      1971                                                1972                    layout.          operator          (          "mesh.primitive_grid_add"          ,          text=          "Grid"          ,          icon=          'MESH_GRID'          )                                      1973                    layout.          operator          (          "mesh.primitive_monkey_add"          ,          text=          "Monkey"          ,          icon=          'MESH_MONKEY'          )                                      1974                                                1975                                                1976                    class          VIEW3D_MT_curve_add          (Menu):                                      1977                    bl_idname          =          "VIEW3D_MT_curve_add"                                      1978                    bl_label          =          "Curve"                                      1979                                                1980                    def          draw          (self,          _context):                                      1981                    layout          =          self.layout                              1982                                                1983                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      1984                                                1985                    layout.          operator          (          "curve.primitive_bezier_curve_add"          ,          text=          "Bezier"          ,          icon=          'CURVE_BEZCURVE'          )                                      1986                    layout.          operator          (          "curve.primitive_bezier_circle_add"          ,          text=          "Circle"          ,          icon=          'CURVE_BEZCIRCLE'          )                                      1987                                                1988                    layout.          separator          ()                                      1989                                                1990                    layout.          operator          (          "curve.primitive_nurbs_curve_add"          ,          text=          "Nurbs Curve"          ,          icon=          'CURVE_NCURVE'          )                                      1991                    layout.          operator          (          "curve.primitive_nurbs_circle_add"          ,          text=          "Nurbs Circle"          ,          icon=          'CURVE_NCIRCLE'          )                                      1992                    layout.          operator          (          "curve.primitive_nurbs_path_add"          ,          text=          "Path"          ,          icon=          'CURVE_PATH'          )                                      1993                                                1994                                                1995                    class          VIEW3D_MT_surface_add          (Menu):                                      1996                    bl_idname          =          "VIEW3D_MT_surface_add"                                      1997                    bl_label          =          "Surface"                                      1998                                                1999                    def          draw          (self,          _context):                                      2000                    layout          =          self.layout                              2001                                                2002                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2003                                                2004                    layout.          operator          (          "surface.primitive_nurbs_surface_curve_add"          ,          text=          "Nurbs Curve"          ,          icon=          'SURFACE_NCURVE'          )                                      2005                    layout.          operator          (          "surface.primitive_nurbs_surface_circle_add"          ,          text=          "Nurbs Circle"          ,          icon=          'SURFACE_NCIRCLE'          )                                      2006                    layout.          operator          (          "surface.primitive_nurbs_surface_surface_add"          ,          text=          "Nurbs Surface"          ,          icon=          'SURFACE_NSURFACE'          )                                      2007                    layout.          operator          (          "surface.primitive_nurbs_surface_cylinder_add"          ,                                      2008                    text=          "Nurbs Cylinder"          ,          icon=          'SURFACE_NCYLINDER'          )                                      2009                    layout.          operator          (          "surface.primitive_nurbs_surface_sphere_add"          ,          text=          "Nurbs Sphere"          ,          icon=          'SURFACE_NSPHERE'          )                                      2010                    layout.          operator          (          "surface.primitive_nurbs_surface_torus_add"          ,          text=          "Nurbs Torus"          ,          icon=          'SURFACE_NTORUS'          )                                      2011                                                2012                                                2013                    class          VIEW3D_MT_edit_metaball_context_menu          (Menu):                                      2014                    bl_label          =          "Metaball Context Menu"                                      2015                                                2016                    def          draw          (self,          _context):                                      2017                    layout          =          self.layout                              2018                                                2019                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2020                                                2021                    # Add                                      2022                    layout.          operator          (          "mball.duplicate_move"          )                                      2023                                                2024                    layout.          separator          ()                                      2025                                                2026                    # Modify                                      2027                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      2028                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      2029                                                2030                    layout.          separator          ()                                      2031                                                2032                    # Remove                                      2033                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2034                    layout.          operator          (          "mball.delete_metaelems"          ,          text=          "Delete"          )                                      2035                                                2036                                                2037                    class          VIEW3D_MT_metaball_add          (Menu):                                      2038                    bl_idname          =          "VIEW3D_MT_metaball_add"                                      2039                    bl_label          =          "Metaball"                                      2040                                                2041                    def          draw          (self,          _context):                                      2042                    layout          =          self.layout                              2043                                                2044                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2045                    layout.          operator_enum          (          "object.metaball_add"          ,          "type"          )                                      2046                                                2047                                                2048                    class          TOPBAR_MT_edit_curve_add          (Menu):                                      2049                    bl_idname          =          "TOPBAR_MT_edit_curve_add"                                      2050                    bl_label          =          "Add"                                      2051                    bl_translation_context          =          i18n_contexts.operator_default                              2052                                                2053                    def          draw          (self,          context):                                      2054                    is_surf          =          context.active_object.          type          ==          'SURFACE'                                      2055                                                2056                    layout          =          self.layout                              2057                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2058                                                2059                    if          is_surf:                                      2060                    VIEW3D_MT_surface_add.          draw          (self,          context)                                      2061                    else          :                                      2062                    VIEW3D_MT_curve_add.          draw          (self,          context)                                      2063                                                2064                                                2065                    class          TOPBAR_MT_edit_armature_add          (Menu):                                      2066                    bl_idname          =          "TOPBAR_MT_edit_armature_add"                                      2067                    bl_label          =          "Armature"                                      2068                                                2069                    def          draw          (self,          _context):                                      2070                    layout          =          self.layout                              2071                                                2072                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2073                    layout.          operator          (          "armature.bone_primitive_add"          ,          text=          "Single Bone"          ,          icon=          'BONE_DATA'          )                                      2074                                                2075                                                2076                    class          VIEW3D_MT_armature_add          (Menu):                                      2077                    bl_idname          =          "VIEW3D_MT_armature_add"                                      2078                    bl_label          =          "Armature"                                      2079                                                2080                    def          draw          (self,          _context):                                      2081                    layout          =          self.layout                              2082                                                2083                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2084                    layout.          operator          (          "object.armature_add"          ,          text=          "Single Bone"          ,          icon=          'BONE_DATA'          )                                      2085                                                2086                                                2087                    class          VIEW3D_MT_light_add          (Menu):                                      2088                    bl_idname          =          "VIEW3D_MT_light_add"                                      2089                    bl_label          =          "Light"                                      2090                                                2091                    def          draw          (self,          _context):                                      2092                    layout          =          self.layout                              2093                                                2094                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2095                    layout.          operator_enum          (          "object.light_add"          ,          "type"          )                                      2096                                                2097                                                2098                    class          VIEW3D_MT_lightprobe_add          (Menu):                                      2099                    bl_idname          =          "VIEW3D_MT_lightprobe_add"                                      2100                    bl_label          =          "Light Probe"                                      2101                                                2102                    def          draw          (self,          _context):                                      2103                    layout          =          self.layout                              2104                                                2105                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2106                    layout.          operator_enum          (          "object.lightprobe_add"          ,          "type"          )                                      2107                                                2108                                                2109                    class          VIEW3D_MT_camera_add          (Menu):                                      2110                    bl_idname          =          "VIEW3D_MT_camera_add"                                      2111                    bl_label          =          "Camera"                                      2112                                                2113                    def          draw          (self,          _context):                                      2114                    layout          =          self.layout                              2115                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2116                    layout.          operator          (          "object.camera_add"          ,          text=          "Camera"          ,          icon=          'OUTLINER_OB_CAMERA'          )                                      2117                                                2118                                                2119                    class          VIEW3D_MT_volume_add          (Menu):                                      2120                    bl_idname          =          "VIEW3D_MT_volume_add"                                      2121                    bl_label          =          "Volume"                                      2122                                                2123                    def          draw          (self,          _context):                                      2124                    layout          =          self.layout                              2125                    layout.          operator          (          "object.volume_import"          ,          text=          "Import OpenVDB..."          ,          icon=          'OUTLINER_DATA_VOLUME'          )                                      2126                    layout.          operator          (          "object.volume_add"          ,          text=          "Empty"          ,          icon=          'OUTLINER_DATA_VOLUME'          )                                      2127                                                2128                                                2129                    class          VIEW3D_MT_add          (Menu):                                      2130                    bl_label          =          "Add"                                      2131                    bl_translation_context          =          i18n_contexts.operator_default                              2132                                                2133                    def          draw          (self,          context):                                      2134                    layout          =          self.layout                              2135                                                2136                    # note, don't use 'EXEC_SCREEN' or operators won't get the 'v3d' context.                                      2137                                                2138                    # Note: was EXEC_AREA, but this context does not have the 'rv3d', which prevents                                      2139                    #       "align_view" to work on first call (see T32719).                                      2140                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2141                                                2142                    # layout.operator_menu_enum("object.mesh_add", "type", text="Mesh", icon='OUTLINER_OB_MESH')                                      2143                    layout.          menu          (          "VIEW3D_MT_mesh_add"          ,          icon=          'OUTLINER_OB_MESH'          )                                      2144                                                2145                    # layout.operator_menu_enum("object.curve_add", "type", text="Curve", icon='OUTLINER_OB_CURVE')                                      2146                    layout.          menu          (          "VIEW3D_MT_curve_add"          ,          icon=          'OUTLINER_OB_CURVE'          )                                      2147                    # layout.operator_menu_enum("object.surface_add", "type", text="Surface", icon='OUTLINER_OB_SURFACE')                                      2148                    layout.          menu          (          "VIEW3D_MT_surface_add"          ,          icon=          'OUTLINER_OB_SURFACE'          )                                      2149                    layout.          menu          (          "VIEW3D_MT_metaball_add"          ,          text=          "Metaball"          ,          icon=          'OUTLINER_OB_META'          )                                      2150                    layout.          operator          (          "object.text_add"          ,          text=          "Text"          ,          icon=          'OUTLINER_OB_FONT'          )                                      2151                    if          context.preferences.experimental.use_new_hair_type:                                      2152                    layout.          operator          (          "object.hair_add"          ,          text=          "Hair"          ,          icon=          'OUTLINER_OB_HAIR'          )                                      2153                    if          context.preferences.experimental.use_new_point_cloud_type:                                      2154                    layout.          operator          (          "object.pointcloud_add"          ,          text=          "Point Cloud"          ,          icon=          'OUTLINER_OB_POINTCLOUD'          )                                      2155                    layout.          menu          (          "VIEW3D_MT_volume_add"          ,          text=          "Volume"          ,          icon=          'OUTLINER_OB_VOLUME'          )                                      2156                    layout.          operator_menu_enum          (          "object.gpencil_add"          ,          "type"          ,          text=          "Grease Pencil"          ,          icon=          'OUTLINER_OB_GREASEPENCIL'          )                                      2157                                                2158                    layout.          separator          ()                                      2159                                                2160                    if          VIEW3D_MT_armature_add.          is_extended          ():                                      2161                    layout.          menu          (          "VIEW3D_MT_armature_add"          ,          icon=          'OUTLINER_OB_ARMATURE'          )                                      2162                    else          :                                      2163                    layout.          operator          (          "object.armature_add"          ,          text=          "Armature"          ,          icon=          'OUTLINER_OB_ARMATURE'          )                                      2164                                                2165                    layout.          operator          (          "object.add"          ,          text=          "Lattice"          ,          icon=          'OUTLINER_OB_LATTICE'          ).          type          =          'LATTICE'                                      2166                                                2167                    layout.          separator          ()                                      2168                                                2169                    layout.          operator_menu_enum          (          "object.empty_add"          ,          "type"          ,          text=          "Empty"          ,          icon=          'OUTLINER_OB_EMPTY'          )                                      2170                    layout.          menu          (          "VIEW3D_MT_image_add"          ,          text=          "Image"          ,          icon=          'OUTLINER_OB_IMAGE'          )                                      2171                                                2172                    layout.          separator          ()                                      2173                                                2174                    layout.          menu          (          "VIEW3D_MT_light_add"          ,          icon=          'OUTLINER_OB_LIGHT'          )                                      2175                    layout.          menu          (          "VIEW3D_MT_lightprobe_add"          ,          icon=          'OUTLINER_OB_LIGHTPROBE'          )                                      2176                                                2177                    layout.          separator          ()                                      2178                                                2179                    if          VIEW3D_MT_camera_add.          is_extended          ():                                      2180                    layout.          menu          (          "VIEW3D_MT_camera_add"          ,          icon=          'OUTLINER_OB_CAMERA'          )                                      2181                    else          :                                      2182                    VIEW3D_MT_camera_add.          draw          (self,          context)                                      2183                                                2184                    layout.          separator          ()                                      2185                                                2186                    layout.          operator          (          "object.speaker_add"          ,          text=          "Speaker"          ,          icon=          'OUTLINER_OB_SPEAKER'          )                                      2187                                                2188                    layout.          separator          ()                                      2189                                                2190                    layout.          operator_menu_enum          (          "object.effector_add"          ,          "type"          ,          text=          "Force Field"          ,          icon=          'OUTLINER_OB_FORCE_FIELD'          )                                      2191                                                2192                    layout.          separator          ()                                      2193                                                2194                    has_collections          =          bool          (bpy.data.collections)                                      2195                    col          =          layout.          column          ()                                      2196                    col.enabled          =          has_collections                              2197                                                2198                    if not          has_collections          or          len          (bpy.data.collections) >          10          :                                      2199                    col.operator_context          =          'INVOKE_REGION_WIN'                                      2200                    col.          operator          (                                      2201                    "object.collection_instance_add"          ,                                      2202                    text=          "Collection Instance..."          if          has_collections          else          "No Collections to Instance"          ,                                      2203                    icon=          'OUTLINER_OB_GROUP_INSTANCE'          ,                                      2204                    )                                      2205                    else          :                                      2206                    col.          operator_menu_enum          (                                      2207                    "object.collection_instance_add"          ,                                      2208                    "collection"          ,                                      2209                    text=          "Collection Instance"          ,                                      2210                    icon=          'OUTLINER_OB_GROUP_INSTANCE'          ,                                      2211                    )                                      2212                                                2213                                                2214                    class          VIEW3D_MT_image_add          (Menu):                                      2215                    bl_label          =          "Add Image"                                      2216                                                2217                    def          draw          (self,          _context):                                      2218                    layout          =          self.layout                              2219                    layout.          operator          (          "object.load_reference_image"          ,          text=          "Reference"          ,          icon=          'IMAGE_REFERENCE'          )                                      2220                    layout.          operator          (          "object.load_background_image"          ,          text=          "Background"          ,          icon=          'IMAGE_BACKGROUND'          )                                      2221                                                2222                                                2223                    class          VIEW3D_MT_object_relations          (Menu):                                      2224                    bl_label          =          "Relations"                                      2225                                                2226                    def          draw          (self,          _context):                                      2227                    layout          =          self.layout                              2228                                                2229                    layout.          operator          (          "object.make_override_library"          ,          text=          "Make Library Override..."          )                                      2230                                                2231                    layout.          operator          (          "object.convert_proxy_to_override"          )                                      2232                                                2233                    layout.          operator          (          "object.make_dupli_face"          )                                      2234                                                2235                    layout.          separator          ()                                      2236                                                2237                    layout.          operator_menu_enum          (          "object.make_local"          ,          "type"          ,          text=          "Make Local..."          )                                      2238                    layout.          menu          (          "VIEW3D_MT_make_single_user"          )                                      2239                                                2240                                                2241                    class          VIEW3D_MT_object          (Menu):                                      2242                    bl_context          =          "objectmode"                                      2243                    bl_label          =          "Object"                                      2244                                                2245                    def          draw          (self,          _context):                                      2246                    layout          =          self.layout                              2247                                                2248                    layout.          menu          (          "VIEW3D_MT_transform_object"          )                                      2249                    layout.          operator_menu_enum          (          "object.origin_set"          ,          text=          "Set Origin"          ,          property          =          "type"          )                                      2250                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      2251                    layout.          menu          (          "VIEW3D_MT_object_clear"          )                                      2252                    layout.          menu          (          "VIEW3D_MT_object_apply"          )                                      2253                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      2254                                                2255                    layout.          separator          ()                                      2256                                                2257                    layout.          operator          (          "object.duplicate_move"          )                                      2258                    layout.          operator          (          "object.duplicate_move_linked"          )                                      2259                    layout.          operator          (          "object.join"          )                                      2260                                                2261                    layout.          separator          ()                                      2262                                                2263                    layout.          operator          (          "view3d.copybuffer"          ,          text=          "Copy Objects"          ,          icon=          'COPYDOWN'          )                                      2264                    layout.          operator          (          "view3d.pastebuffer"          ,          text=          "Paste Objects"          ,          icon=          'PASTEDOWN'          )                                      2265                                                2266                    layout.          separator          ()                                      2267                                                2268                    layout.          menu          (          "VIEW3D_MT_object_asset"          )                                      2269                    layout.          menu          (          "VIEW3D_MT_object_parent"          )                                      2270                    layout.          menu          (          "VIEW3D_MT_object_collection"          )                                      2271                    layout.          menu          (          "VIEW3D_MT_object_relations"          )                                      2272                    layout.          menu          (          "VIEW3D_MT_object_constraints"          )                                      2273                    layout.          menu          (          "VIEW3D_MT_object_track"          )                                      2274                    layout.          menu          (          "VIEW3D_MT_make_links"          )                                      2275                                                2276                    layout.          separator          ()                                      2277                                                2278                    layout.          operator          (          "object.shade_smooth"          )                                      2279                    layout.          operator          (          "object.shade_flat"          )                                      2280                                                2281                    layout.          separator          ()                                      2282                                                2283                    layout.          menu          (          "VIEW3D_MT_object_animation"          )                                      2284                    layout.          menu          (          "VIEW3D_MT_object_rigid_body"          )                                      2285                                                2286                    layout.          separator          ()                                      2287                                                2288                    layout.          menu          (          "VIEW3D_MT_object_quick_effects"          )                                      2289                                                2290                    layout.          separator          ()                                      2291                                                2292                    layout.          menu          (          "VIEW3D_MT_object_convert"          )                                      2293                                                2294                    layout.          separator          ()                                      2295                                                2296                    layout.          menu          (          "VIEW3D_MT_object_showhide"          )                                      2297                    layout.          menu          (          "VIEW3D_MT_object_cleanup"          )                                      2298                                                2299                    layout.          separator          ()                                      2300                                                2301                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2302                    layout.          operator          (          "object.delete"          ,          text=          "Delete"          ).use_global          =          False                                      2303                    layout.          operator          (          "object.delete"          ,          text=          "Delete Global"          ).use_global          =          True                                      2304                                                2305                                                2306                    class          VIEW3D_MT_object_animation          (Menu):                                      2307                    bl_label          =          "Animation"                                      2308                                                2309                    def          draw          (self,          _context):                                      2310                    layout          =          self.layout                              2311                                                2312                    layout.          operator          (          "anim.keyframe_insert_menu"          ,          text=          "Insert Keyframe..."          )                                      2313                    layout.          operator          (          "anim.keyframe_delete_v3d"          ,          text=          "Delete Keyframes..."          )                                      2314                    layout.          operator          (          "anim.keyframe_clear_v3d"          ,          text=          "Clear Keyframes..."          )                                      2315                    layout.          operator          (          "anim.keying_set_active_set"          ,          text=          "Change Keying Set..."          )                                      2316                                                2317                    layout.          separator          ()                                      2318                                                2319                    layout.          operator          (          "nla.bake"          ,          text=          "Bake Action..."          )                                      2320                    layout.          operator          (          "gpencil.bake_mesh_animation"          ,          text=          "Bake Mesh to Grease Pencil..."          )                                      2321                    layout.          operator          (          "gpencil.bake_grease_pencil_animation"          ,          text=          "Bake Object Transform to Grease Pencil..."          )                                      2322                                                2323                                                2324                    class          VIEW3D_MT_object_rigid_body          (Menu):                                      2325                    bl_label          =          "Rigid Body"                                      2326                                                2327                    def          draw          (self,          _context):                                      2328                    layout          =          self.layout                              2329                                                2330                    layout.          operator          (          "rigidbody.objects_add"          ,          text=          "Add Active"          ).          type          =          'ACTIVE'                                      2331                    layout.          operator          (          "rigidbody.objects_add"          ,          text=          "Add Passive"          ).          type          =          'PASSIVE'                                      2332                                                2333                    layout.          separator          ()                                      2334                                                2335                    layout.          operator          (          "rigidbody.objects_remove"          ,          text=          "Remove"          )                                      2336                                                2337                    layout.          separator          ()                                      2338                                                2339                    layout.          operator          (          "rigidbody.shape_change"          ,          text=          "Change Shape"          )                                      2340                    layout.          operator          (          "rigidbody.mass_calculate"          ,          text=          "Calculate Mass"          )                                      2341                    layout.          operator          (          "rigidbody.object_settings_copy"          ,          text=          "Copy from Active"          )                                      2342                    layout.          operator          (          "object.visual_transform_apply"          ,          text=          "Apply Transformation"          )                                      2343                    layout.          operator          (          "rigidbody.bake_to_keyframes"          ,          text=          "Bake to Keyframes"          )                                      2344                                                2345                    layout.          separator          ()                                      2346                                                2347                    layout.          operator          (          "rigidbody.connect"          ,          text=          "Connect"          )                                      2348                                                2349                                                2350                    class          VIEW3D_MT_object_clear          (Menu):                                      2351                    bl_label          =          "Clear"                                      2352                                                2353                    def          draw          (self,          _context):                                      2354                    layout          =          self.layout                              2355                                                2356                    layout.          operator          (          "object.location_clear"          ,          text=          "Location"          ).clear_delta          =          False                                      2357                    layout.          operator          (          "object.rotation_clear"          ,          text=          "Rotation"          ).clear_delta          =          False                                      2358                    layout.          operator          (          "object.scale_clear"          ,          text=          "Scale"          ).clear_delta          =          False                                      2359                                                2360                    layout.          separator          ()                                      2361                                                2362                    layout.          operator          (          "object.origin_clear"          ,          text=          "Origin"          )                                      2363                                                2364                                                2365                    class          VIEW3D_MT_object_context_menu          (Menu):                                      2366                    bl_label          =          "Object Context Menu"                                      2367                                                2368                    def          draw          (self,          context):                                      2369                                                2370                    layout          =          self.layout                              2371                    view          =          context.space_data                              2372                                                2373                    obj          =          context.          object                                      2374                                                2375                    selected_objects_len          =          len          (context.selected_objects)                                      2376                                                2377                    # If nothing is selected                                      2378                    # (disabled for now until it can be made more useful).                                      2379                    '''                                      2380                                if selected_objects_len == 0:                                      2381                                                          2382                                layout.menu("VIEW3D_MT_add", text="Add", text_ctxt=i18n_contexts.operator_default)                                      2383                                layout.operator("view3d.pastebuffer", text="Paste Objects", icon='PASTEDOWN')                                      2384                                                          2385                                return                                      2386                                '''                                      2387                                                2388                    # If something is selected                                      2389                                                2390                    # Individual object types.                                      2391                    if          obj          is None          :                                      2392                    pass                                      2393                                                2394                    elif          obj.          type          ==          'CAMERA'          :                                      2395                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2396                                                2397                    layout.          operator          (          "view3d.object_as_camera"          ,          text=          "Set Active Camera"          )                                      2398                                                2399                    if          obj.data.          type          ==          'PERSP'          :                                      2400                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Focal Length"          )                                      2401                    props.data_path_iter          =          "selected_editable_objects"                                      2402                    props.data_path_item          =          "data.lens"                                      2403                    props.input_scale          =          0.1                                      2404                    if          obj.data.lens_unit          ==          'MILLIMETERS'          :                                      2405                    props.header_text          =          "Camera Focal Length: %.1fmm"                                      2406                    else          :                                      2407                    props.header_text          =          "Camera Focal Length: %.1f\u00B0"                                      2408                                                2409                    else          :                                      2410                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Camera Lens Scale"          )                                      2411                    props.data_path_iter          =          "selected_editable_objects"                                      2412                    props.data_path_item          =          "data.ortho_scale"                                      2413                    props.input_scale          =          0.01                                      2414                    props.header_text          =          "Camera Lens Scale: %.3f"                                      2415                                                2416                    if not          obj.data.dof.focus_object:                                      2417                    if          view          and          view.camera          ==          obj          and          view.region_3d.view_perspective          ==          'CAMERA'          :                                      2418                    props          =          layout.          operator          (          "ui.eyedropper_depth"          ,          text=          "DOF Distance (Pick)"          )                                      2419                    else          :                                      2420                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Focus Distance"          )                                      2421                    props.data_path_iter          =          "selected_editable_objects"                                      2422                    props.data_path_item          =          "data.dof.focus_distance"                                      2423                    props.input_scale          =          0.02                                      2424                    props.header_text          =          "Focus Distance: %.3f"                                      2425                                                2426                    layout.          separator          ()                                      2427                                                2428                    elif          obj.          type          in          {          'CURVE'          ,          'FONT'          }:                                      2429                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2430                                                2431                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Extrusion"          )                                      2432                    props.data_path_iter          =          "selected_editable_objects"                                      2433                    props.data_path_item          =          "data.extrude"                                      2434                    props.input_scale          =          0.01                                      2435                    props.header_text          =          "Extrude: %.3f"                                      2436                                                2437                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Offset"          )                                      2438                    props.data_path_iter          =          "selected_editable_objects"                                      2439                    props.data_path_item          =          "data.offset"                                      2440                    props.input_scale          =          0.01                                      2441                    props.header_text          =          "Offset: %.3f"                                      2442                                                2443                    layout.          separator          ()                                      2444                                                2445                    elif          obj.          type          ==          'EMPTY'          :                                      2446                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2447                                                2448                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Empty Display Size"          )                                      2449                    props.data_path_iter          =          "selected_editable_objects"                                      2450                    props.data_path_item          =          "empty_display_size"                                      2451                    props.input_scale          =          0.01                                      2452                    props.header_text          =          "Empty Display Size: %.3f"                                      2453                                                2454                    layout.          separator          ()                                      2455                                                2456                    if          obj.empty_display_type          ==          'IMAGE'          :                                      2457                    layout.          operator          (          "gpencil.trace_image"          )                                      2458                                                2459                    layout.          separator          ()                                      2460                                                2461                    elif          obj.          type          ==          'LIGHT'          :                                      2462                    light          =          obj.data                              2463                                                2464                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2465                                                2466                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Light Power"          )                                      2467                    props.data_path_iter          =          "selected_editable_objects"                                      2468                    props.data_path_item          =          "data.energy"                                      2469                    props.input_scale          =          1.0                                      2470                    props.header_text          =          "Light Power: %.3f"                                      2471                                                2472                    if          light.          type          ==          'AREA'          :                                      2473                    if          light.shape          in          {          'RECTANGLE'          ,          'ELLIPSE'          }:                                      2474                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Area Light X Size"          )                                      2475                    props.data_path_iter          =          "selected_editable_objects"                                      2476                    props.data_path_item          =          "data.size"                                      2477                    props.header_text          =          "Light Size X: %.3f"                                      2478                                                2479                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Area Light Y Size"          )                                      2480                    props.data_path_iter          =          "selected_editable_objects"                                      2481                    props.data_path_item          =          "data.size_y"                                      2482                    props.header_text          =          "Light Size Y: %.3f"                                      2483                    else          :                                      2484                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Area Light Size"          )                                      2485                    props.data_path_iter          =          "selected_editable_objects"                                      2486                    props.data_path_item          =          "data.size"                                      2487                    props.header_text          =          "Light Size: %.3f"                                      2488                                                2489                    elif          light.          type          in          {          'SPOT'          ,          'POINT'          }:                                      2490                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Light Radius"          )                                      2491                    props.data_path_iter          =          "selected_editable_objects"                                      2492                    props.data_path_item          =          "data.shadow_soft_size"                                      2493                    props.header_text          =          "Light Radius: %.3f"                                      2494                                                2495                    elif          light.          type          ==          'SUN'          :                                      2496                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Sun Light Angle"          )                                      2497                    props.data_path_iter          =          "selected_editable_objects"                                      2498                    props.data_path_item          =          "data.angle"                                      2499                    props.header_text          =          "Light Angle: %.3f"                                      2500                                                2501                    if          light.          type          ==          'SPOT'          :                                      2502                    layout.          separator          ()                                      2503                                                2504                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Spot Light Size"          )                                      2505                    props.data_path_iter          =          "selected_editable_objects"                                      2506                    props.data_path_item          =          "data.spot_size"                                      2507                    props.input_scale          =          0.01                                      2508                    props.header_text          =          "Spot Size: %.2f"                                      2509                                                2510                    props          =          layout.          operator          (          "wm.context_modal_mouse"          ,          text=          "Adjust Spot Light Blend"          )                                      2511                    props.data_path_iter          =          "selected_editable_objects"                                      2512                    props.data_path_item          =          "data.spot_blend"                                      2513                    props.input_scale          = -          0.01                                      2514                    props.header_text          =          "Spot Blend: %.2f"                                      2515                                                2516                    layout.          separator          ()                                      2517                                                2518                    # Shared among some object types.                                      2519                    if          obj          is not None          :                                      2520                    if          obj.          type          in          {          'MESH'          ,          'CURVE'          ,          'SURFACE'          }:                                      2521                    layout.          operator          (          "object.shade_smooth"          ,          text=          "Shade Smooth"          )                                      2522                    layout.          operator          (          "object.shade_flat"          ,          text=          "Shade Flat"          )                                      2523                                                2524                    layout.          separator          ()                                      2525                                                2526                    if          obj.          type          in          {          'MESH'          ,          'CURVE'          ,          'SURFACE'          ,          'ARMATURE'          ,          'GPENCIL'          }:                                      2527                    if          selected_objects_len          >          1          :                                      2528                    layout.          operator          (          "object.join"          )                                      2529                                                2530                    if          obj.          type          in          {          'MESH'          ,          'CURVE'          ,          'SURFACE'          ,          'POINTCLOUD'          ,          'META'          ,          'FONT'          }:                                      2531                    layout.          operator_menu_enum          (          "object.convert"          ,          "target"          )                                      2532                                                2533                    if          obj.          type          ==          'GPENCIL'          :                                      2534                    layout.          operator_menu_enum          (          "gpencil.convert"          ,          "type"          ,          text=          "Convert To"          )                                      2535                                                2536                    if          (                                      2537                    obj.          type          in          {          'MESH'          ,          'CURVE'          ,          'SURFACE'          ,          'GPENCIL'          ,          'LATTICE'          ,          'ARMATURE'          ,          'META'          ,          'FONT'          }          or                                      2538                    (obj.          type          ==          'EMPTY'          and          obj.instance_collection          is not None          )                                      2539                    ):                                      2540                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2541                    layout.          operator_menu_enum          (          "object.origin_set"          ,          text=          "Set Origin"          ,          property          =          "type"          )                                      2542                    layout.operator_context          =          'INVOKE_DEFAULT'                                      2543                                                2544                    layout.          separator          ()                                      2545                                                2546                    # Shared among all object types                                      2547                    layout.          operator          (          "view3d.copybuffer"          ,          text=          "Copy Objects"          ,          icon=          'COPYDOWN'          )                                      2548                    layout.          operator          (          "view3d.pastebuffer"          ,          text=          "Paste Objects"          ,          icon=          'PASTEDOWN'          )                                      2549                                                2550                    layout.          separator          ()                                      2551                                                2552                    layout.          operator          (          "object.duplicate_move"          ,          icon=          'DUPLICATE'          )                                      2553                    layout.          operator          (          "object.duplicate_move_linked"          )                                      2554                                                2555                    layout.          separator          ()                                      2556                                                2557                    props          =          layout.          operator          (          "wm.call_panel"          ,          text=          "Rename Active Object..."          )                                      2558                    props.name          =          "TOPBAR_PT_name"                                      2559                    props.keep_open          =          False                                      2560                                                2561                    layout.          separator          ()                                      2562                                                2563                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      2564                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      2565                    layout.          menu          (          "VIEW3D_MT_object_parent"          )                                      2566                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2567                                                2568                    if          view          and          view.local_view:                                      2569                    layout.          operator          (          "view3d.localview_remove_from"          )                                      2570                    else          :                                      2571                    layout.          operator          (          "object.move_to_collection"          )                                      2572                                                2573                    layout.          separator          ()                                      2574                                                2575                    layout.          operator          (          "anim.keyframe_insert_menu"          ,          text=          "Insert Keyframe..."          )                                      2576                                                2577                    layout.          separator          ()                                      2578                                                2579                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2580                    layout.          operator          (          "object.delete"          ,          text=          "Delete"          ).use_global          =          False                                      2581                                                2582                                                2583                    class          VIEW3D_MT_object_shading          (Menu):                                      2584                    # XXX, this menu is a place to store shading operator in object mode                                      2585                    bl_label          =          "Shading"                                      2586                                                2587                    def          draw          (self,          _context):                                      2588                    layout          =          self.layout                              2589                    layout.          operator          (          "object.shade_smooth"          ,          text=          "Smooth"          )                                      2590                    layout.          operator          (          "object.shade_flat"          ,          text=          "Flat"          )                                      2591                                                2592                                                2593                    class          VIEW3D_MT_object_apply          (Menu):                                      2594                    bl_label          =          "Apply"                                      2595                                                2596                    def          draw          (self,          _context):                                      2597                    layout          =          self.layout                              2598                                                2599                    props          =          layout.          operator          (          "object.transform_apply"          ,          text=          "Location"          ,          text_ctxt=i18n_contexts.default)                                      2600                    props.location,          props.rotation,          props.scale          =          True          ,          False          ,          False                                      2601                                                2602                    props          =          layout.          operator          (          "object.transform_apply"          ,          text=          "Rotation"          ,          text_ctxt=i18n_contexts.default)                                      2603                    props.location,          props.rotation,          props.scale          =          False          ,          True          ,          False                                      2604                                                2605                    props          =          layout.          operator          (          "object.transform_apply"          ,          text=          "Scale"          ,          text_ctxt=i18n_contexts.default)                                      2606                    props.location,          props.rotation,          props.scale          =          False          ,          False          ,          True                                      2607                                                2608                    props          =          layout.          operator          (          "object.transform_apply"          ,          text=          "All Transforms"          ,          text_ctxt=i18n_contexts.default)                                      2609                    props.location,          props.rotation,          props.scale          =          True          ,          True          ,          True                                      2610                                                2611                    props          =          layout.          operator          (          "object.transform_apply"          ,          text=          "Rotation & Scale"          ,          text_ctxt=i18n_contexts.default)                                      2612                    props.location,          props.rotation,          props.scale          =          False          ,          True          ,          True                                      2613                                                2614                    layout.          separator          ()                                      2615                                                2616                    layout.          operator          (                                      2617                    "object.transforms_to_deltas"          ,                                      2618                    text=          "Location to Deltas"          ,                                      2619                    text_ctxt=i18n_contexts.default,                                      2620                    ).mode          =          'LOC'                                      2621                    layout.          operator          (                                      2622                    "object.transforms_to_deltas"          ,                                      2623                    text=          "Rotation to Deltas"          ,                                      2624                    text_ctxt=i18n_contexts.default,                                      2625                    ).mode          =          'ROT'                                      2626                    layout.          operator          (                                      2627                    "object.transforms_to_deltas"          ,                                      2628                    text=          "Scale to Deltas"          ,                                      2629                    text_ctxt=i18n_contexts.default,                                      2630                    ).mode          =          'SCALE'                                      2631                                                2632                    layout.          operator          (                                      2633                    "object.transforms_to_deltas"          ,                                      2634                    text=          "All Transforms to Deltas"          ,                                      2635                    text_ctxt=i18n_contexts.default,                                      2636                    ).mode          =          'ALL'                                      2637                    layout.          operator          (          "object.anim_transforms_to_deltas"          )                                      2638                                                2639                    layout.          separator          ()                                      2640                                                2641                    layout.          operator          (                                      2642                    "object.visual_transform_apply"          ,                                      2643                    text=          "Visual Transform"          ,                                      2644                    text_ctxt=i18n_contexts.default,                                      2645                    )                                      2646                    layout.          operator          (                                      2647                    "object.convert"          ,                                      2648                    text=          "Visual Geometry to Mesh"          ,                                      2649                    text_ctxt=i18n_contexts.default,                                      2650                    ).target          =          'MESH'                                      2651                    layout.          operator          (          "object.duplicates_make_real"          )                                      2652                                                2653                                                2654                    class          VIEW3D_MT_object_parent          (Menu):                                      2655                    bl_label          =          "Parent"                                      2656                                                2657                    def          draw          (self,          _context):                                      2658                    layout          =          self.layout                              2659                    operator_context_default          =          layout.operator_context                              2660                                                2661                    layout.          operator_enum          (          "object.parent_set"          ,          "type"          )                                      2662                                                2663                    layout.          separator          ()                                      2664                                                2665                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2666                    layout.          operator          (          "object.parent_no_inverse_set"          )                                      2667                    layout.operator_context          =          operator_context_default                              2668                                                2669                    layout.          separator          ()                                      2670                                                2671                    layout.          operator_enum          (          "object.parent_clear"          ,          "type"          )                                      2672                                                2673                                                2674                    class          VIEW3D_MT_object_track          (Menu):                                      2675                    bl_label          =          "Track"                                      2676                                                2677                    def          draw          (self,          _context):                                      2678                    layout          =          self.layout                              2679                                                2680                    layout.          operator_enum          (          "object.track_set"          ,          "type"          )                                      2681                                                2682                    layout.          separator          ()                                      2683                                                2684                    layout.          operator_enum          (          "object.track_clear"          ,          "type"          )                                      2685                                                2686                                                2687                    class          VIEW3D_MT_object_collection          (Menu):                                      2688                    bl_label          =          "Collection"                                      2689                                                2690                    def          draw          (self,          _context):                                      2691                    layout          =          self.layout                              2692                                                2693                    layout.          operator          (          "object.move_to_collection"          )                                      2694                    layout.          operator          (          "object.link_to_collection"          )                                      2695                                                2696                    layout.          separator          ()                                      2697                                                2698                    layout.          operator          (          "collection.create"          )                                      2699                    # layout.operator_menu_enum("collection.objects_remove", "collection")  # BUGGY                                      2700                    layout.          operator          (          "collection.objects_remove"          )                                      2701                    layout.          operator          (          "collection.objects_remove_all"          )                                      2702                                                2703                    layout.          separator          ()                                      2704                                                2705                    layout.          operator          (          "collection.objects_add_active"          )                                      2706                    layout.          operator          (          "collection.objects_remove_active"          )                                      2707                                                2708                                                2709                    class          VIEW3D_MT_object_constraints          (Menu):                                      2710                    bl_label          =          "Constraints"                                      2711                                                2712                    def          draw          (self,          _context):                                      2713                    layout          =          self.layout                              2714                                                2715                    layout.          operator          (          "object.constraint_add_with_targets"          )                                      2716                    layout.          operator          (          "object.constraints_copy"          )                                      2717                                                2718                    layout.          separator          ()                                      2719                                                2720                    layout.          operator          (          "object.constraints_clear"          )                                      2721                                                2722                                                2723                    class          VIEW3D_MT_object_quick_effects          (Menu):                                      2724                    bl_label          =          "Quick Effects"                                      2725                                                2726                    def          draw          (self,          _context):                                      2727                    layout          =          self.layout                              2728                                                2729                    layout.          operator          (          "object.quick_fur"          )                                      2730                    layout.          operator          (          "object.quick_explode"          )                                      2731                    layout.          operator          (          "object.quick_smoke"          )                                      2732                    layout.          operator          (          "object.quick_liquid"          )                                      2733                                                2734                                                2735                    class          VIEW3D_MT_object_showhide          (Menu):                                      2736                    bl_label          =          "Show/Hide"                                      2737                                                2738                    def          draw          (self,          _context):                                      2739                    layout          =          self.layout                              2740                                                2741                    layout.          operator          (          "object.hide_view_clear"          )                                      2742                                                2743                    layout.          separator          ()                                      2744                                                2745                    layout.          operator          (          "object.hide_view_set"          ,          text=          "Hide Selected"          ).unselected          =          False                                      2746                    layout.          operator          (          "object.hide_view_set"          ,          text=          "Hide Unselected"          ).unselected          =          True                                      2747                                                2748                                                2749                    class          VIEW3D_MT_object_cleanup          (Menu):                                      2750                    bl_label          =          "Clean Up"                                      2751                                                2752                    def          draw          (self,          _context):                                      2753                    layout          =          self.layout                              2754                                                2755                    layout.          operator          (          "object.vertex_group_clean"          ,          text=          "Clean Vertex Group Weights"          ).group_select_mode          =          'ALL'                                      2756                    layout.          operator          (          "object.vertex_group_limit_total"          ,          text=          "Limit Total Vertex Groups"          ).group_select_mode          =          'ALL'                                      2757                                                2758                    layout.          separator          ()                                      2759                                                2760                    layout.          operator          (          "object.material_slot_remove_unused"          ,          text=          "Remove Unused Material Slots"          )                                      2761                                                2762                    class          VIEW3D_MT_object_asset          (Menu):                                      2763                    bl_label          =          "Asset"                                      2764                                                2765                    def          draw          (self,          _context):                                      2766                    layout          =          self.layout                              2767                                                2768                    layout.          operator          (          "asset.mark"          )                                      2769                    layout.          operator          (          "asset.clear"          ,          text=          "Clear Asset"          ).set_fake_user          =          False                                      2770                    layout.          operator          (          "asset.clear"          ,          text=          "Clear Asset (Set Fake User)"          ).set_fake_user          =          True                                      2771                                                2772                                                2773                    class          VIEW3D_MT_make_single_user          (Menu):                                      2774                    bl_label          =          "Make Single User"                                      2775                                                2776                    def          draw          (self,          _context):                                      2777                    layout          =          self.layout                              2778                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2779                                                2780                    props          =          layout.          operator          (          "object.make_single_user"          ,          text=          "Object"          )                                      2781                    props.          object          =          True                                      2782                    props.obdata          =          props.material          =          props.animation          =          props.obdata_animation          =          False                                      2783                                                2784                    props          =          layout.          operator          (          "object.make_single_user"          ,          text=          "Object & Data"          )                                      2785                    props.          object          =          props.obdata          =          True                                      2786                    props.material          =          props.animation          =          props.obdata_animation          =          False                                      2787                                                2788                    props          =          layout.          operator          (          "object.make_single_user"          ,          text=          "Object & Data & Materials"          )                                      2789                    props.          object          =          props.obdata          =          props.material          =          True                                      2790                    props.animation          =          props.obdata_animation          =          False                                      2791                                                2792                    props          =          layout.          operator          (          "object.make_single_user"          ,          text=          "Materials"          )                                      2793                    props.material          =          True                                      2794                    props.          object          =          props.obdata          =          props.animation          =          props.obdata_animation          =          False                                      2795                                                2796                    props          =          layout.          operator          (          "object.make_single_user"          ,          text=          "Object Animation"          )                                      2797                    props.animation          =          True                                      2798                    props.          object          =          props.obdata          =          props.material          =          props.obdata_animation          =          False                                      2799                                                2800                    props          =          layout.          operator          (          "object.make_single_user"          ,          text=          "Object Data Animation"          )                                      2801                    props.obdata_animation          =          props.obdata          =          True                                      2802                    props.          object          =          props.material          =          props.animation          =          False                                      2803                                                2804                                                2805                    class          VIEW3D_MT_object_convert          (Menu):                                      2806                    bl_label          =          "Convert"                                      2807                                                2808                    def          draw          (self,          context):                                      2809                    layout          =          self.layout                              2810                    ob          =          context.active_object                              2811                                                2812                    if          ob          and          ob.          type          ==          'GPENCIL'          and          context.gpencil_data:                                      2813                    layout.          operator_enum          (          "gpencil.convert"          ,          "type"          )                                      2814                    else          :                                      2815                    layout.          operator_enum          (          "object.convert"          ,          "target"          )                                      2816                                                2817                    # Potrace lib dependency.                                      2818                    if          bpy.app.build_options.potrace:                                      2819                    layout.          operator          (          "gpencil.trace_image"          ,          icon=          'OUTLINER_OB_GREASEPENCIL'          )                                      2820                                                2821                                                2822                    class          VIEW3D_MT_make_links          (Menu):                                      2823                    bl_label          =          "Link/Transfer Data"                                      2824                                                2825                    def          draw          (self,          _context):                                      2826                    layout          =          self.layout                              2827                    operator_context_default          =          layout.operator_context                              2828                                                2829                    if          len          (bpy.data.scenes) >          10          :                                      2830                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      2831                    layout.          operator          (          "object.make_links_scene"          ,          text=          "Link Objects to Scene..."          ,          icon=          'OUTLINER_OB_EMPTY'          )                                      2832                    else          :                                      2833                    layout.operator_context          =          'EXEC_REGION_WIN'                                      2834                    layout.          operator_menu_enum          (          "object.make_links_scene"          ,          "scene"          ,          text=          "Link Objects to Scene"          )                                      2835                                                2836                    layout.          separator          ()                                      2837                                                2838                    layout.operator_context          =          operator_context_default                              2839                                                2840                    layout.          operator_enum          (          "object.make_links_data"          ,          "type"          )          # inline                                      2841                                                2842                    layout.          operator          (          "object.join_uvs"          ,          text=          "Copy UV Maps"          )                                      2843                                                2844                    layout.          separator          ()                                      2845                                                2846                    layout.          operator          (          "object.data_transfer"          )                                      2847                    layout.          operator          (          "object.datalayout_transfer"          )                                      2848                                                2849                                                2850                    class          VIEW3D_MT_brush_paint_modes          (Menu):                                      2851                    bl_label          =          "Enabled Modes"                                      2852                                                2853                    def          draw          (self,          context):                                      2854                    layout          =          self.layout                              2855                                                2856                    settings          =          UnifiedPaintPanel.          paint_settings          (context)                                      2857                    brush          =          settings.brush                              2858                                                2859                    layout.          prop          (brush,          "use_paint_sculpt"          ,          text=          "Sculpt"          )                                      2860                    layout.          prop          (brush,          "use_paint_uv_sculpt"          ,          text=          "UV Sculpt"          )                                      2861                    layout.          prop          (brush,          "use_paint_vertex"          ,          text=          "Vertex Paint"          )                                      2862                    layout.          prop          (brush,          "use_paint_weight"          ,          text=          "Weight Paint"          )                                      2863                    layout.          prop          (brush,          "use_paint_image"          ,          text=          "Texture Paint"          )                                      2864                                                2865                                                2866                    class          VIEW3D_MT_paint_vertex          (Menu):                                      2867                    bl_label          =          "Paint"                                      2868                                                2869                    def          draw          (self,          _context):                                      2870                    layout          =          self.layout                              2871                                                2872                    layout.          operator          (          "paint.vertex_color_set"          )                                      2873                    layout.          operator          (          "paint.vertex_color_smooth"          )                                      2874                    layout.          operator          (          "paint.vertex_color_dirt"          )                                      2875                    layout.          operator          (          "paint.vertex_color_from_weight"          )                                      2876                                                2877                    layout.          separator          ()                                      2878                                                2879                    layout.          operator          (          "paint.vertex_color_invert"          ,          text=          "Invert"          )                                      2880                    layout.          operator          (          "paint.vertex_color_levels"          ,          text=          "Levels"          )                                      2881                    layout.          operator          (          "paint.vertex_color_hsv"          ,          text=          "Hue Saturation Value"          )                                      2882                    layout.          operator          (          "paint.vertex_color_brightness_contrast"          ,          text=          "Bright/Contrast"          )                                      2883                                                2884                                                2885                    class          VIEW3D_MT_hook          (Menu):                                      2886                    bl_label          =          "Hooks"                                      2887                                                2888                    def          draw          (self,          context):                                      2889                    layout          =          self.layout                              2890                    layout.operator_context          =          'EXEC_AREA'                                      2891                    layout.          operator          (          "object.hook_add_newob"          )                                      2892                    layout.          operator          (          "object.hook_add_selob"          ).use_bone          =          False                                      2893                    layout.          operator          (          "object.hook_add_selob"          ,          text=          "Hook to Selected Object Bone"          ).use_bone          =          True                                      2894                                                2895                    if          any          ([mod.          type          ==          'HOOK'          for          mod          in          context.active_object.modifiers]):                                      2896                    layout.          separator          ()                                      2897                                                2898                    layout.          operator_menu_enum          (          "object.hook_assign"          ,          "modifier"          )                                      2899                    layout.          operator_menu_enum          (          "object.hook_remove"          ,          "modifier"          )                                      2900                                                2901                    layout.          separator          ()                                      2902                                                2903                    layout.          operator_menu_enum          (          "object.hook_select"          ,          "modifier"          )                                      2904                    layout.          operator_menu_enum          (          "object.hook_reset"          ,          "modifier"          )                                      2905                    layout.          operator_menu_enum          (          "object.hook_recenter"          ,          "modifier"          )                                      2906                                                2907                                                2908                    class          VIEW3D_MT_vertex_group          (Menu):                                      2909                    bl_label          =          "Vertex Groups"                                      2910                                                2911                    def          draw          (self,          context):                                      2912                    layout          =          self.layout                              2913                                                2914                    layout.operator_context          =          'EXEC_AREA'                                      2915                    layout.          operator          (          "object.vertex_group_assign_new"          )                                      2916                                                2917                    ob          =          context.active_object                              2918                    if          ob.mode          ==          'EDIT'          or          (ob.mode          ==          'WEIGHT_PAINT'          and          ob.          type          ==          'MESH'          and          ob.data.use_paint_mask_vertex):                                      2919                    if          ob.vertex_groups.active:                                      2920                    layout.          separator          ()                                      2921                                                2922                    layout.          operator          (          "object.vertex_group_assign"          ,          text=          "Assign to Active Group"          )                                      2923                    layout.          operator          (                                      2924                    "object.vertex_group_remove_from"          ,                                      2925                    text=          "Remove from Active Group"          ,                                      2926                    ).use_all_groups          =          False                                      2927                    layout.          operator          (          "object.vertex_group_remove_from"          ,          text=          "Remove from All"          ).use_all_groups          =          True                                      2928                                                2929                    if          ob.vertex_groups.active:                                      2930                    layout.          separator          ()                                      2931                                                2932                    layout.          operator_menu_enum          (          "object.vertex_group_set_active"          ,          "group"          ,          text=          "Set Active Group"          )                                      2933                    layout.          operator          (          "object.vertex_group_remove"          ,          text=          "Remove Active Group"          ).all          =          False                                      2934                    layout.          operator          (          "object.vertex_group_remove"          ,          text=          "Remove All Groups"          ).all          =          True                                      2935                                                2936                                                2937                    class          VIEW3D_MT_gpencil_vertex_group          (Menu):                                      2938                    bl_label          =          "Vertex Groups"                                      2939                                                2940                    def          draw          (self,          context):                                      2941                    layout          =          self.layout                              2942                                                2943                    layout.operator_context          =          'EXEC_AREA'                                      2944                    ob          =          context.active_object                              2945                                                2946                    layout.          operator          (          "object.vertex_group_add"          ,          text=          "Add New Group"          )                                      2947                    ob          =          context.active_object                              2948                    if          ob.vertex_groups.active:                                      2949                    layout.          separator          ()                                      2950                                                2951                    layout.          operator          (          "gpencil.vertex_group_assign"          ,          text=          "Assign"          )                                      2952                    layout.          operator          (          "gpencil.vertex_group_remove_from"          ,          text=          "Remove"          )                                      2953                                                2954                    layout.          operator          (          "gpencil.vertex_group_select"          ,          text=          "Select"          )                                      2955                    layout.          operator          (          "gpencil.vertex_group_deselect"          ,          text=          "Deselect"          )                                      2956                                                2957                                                2958                    class          VIEW3D_MT_paint_weight_lock          (Menu):                                      2959                    bl_label          =          "Vertex Group Locks"                                      2960                                                2961                    def          draw          (self,          _context):                                      2962                    layout          =          self.layout                              2963                                                2964                    op          =          layout.          operator          (          "object.vertex_group_lock"          ,          icon=          'LOCKED'          ,          text=          "Lock All"          )                                      2965                    op.action,          op.mask          =          'LOCK'          ,          'ALL'                                      2966                    op          =          layout.          operator          (          "object.vertex_group_lock"          ,          icon=          'UNLOCKED'          ,          text=          "Unlock All"          )                                      2967                    op.action,          op.mask          =          'UNLOCK'          ,          'ALL'                                      2968                    op          =          layout.          operator          (          "object.vertex_group_lock"          ,          icon=          'LOCKED'          ,          text=          "Lock Selected"          )                                      2969                    op.action,          op.mask          =          'LOCK'          ,          'SELECTED'                                      2970                    op          =          layout.          operator          (          "object.vertex_group_lock"          ,          icon=          'UNLOCKED'          ,          text=          "Unlock Selected"          )                                      2971                    op.action,          op.mask          =          'UNLOCK'          ,          'SELECTED'                                      2972                    op          =          layout.          operator          (          "object.vertex_group_lock"          ,          icon=          'LOCKED'          ,          text=          "Lock Unselected"          )                                      2973                    op.action,          op.mask          =          'LOCK'          ,          'UNSELECTED'                                      2974                    op          =          layout.          operator          (          "object.vertex_group_lock"          ,          icon=          'UNLOCKED'          ,          text=          "Unlock Unselected"          )                                      2975                    op.action,          op.mask          =          'UNLOCK'          ,          'UNSELECTED'                                      2976                    op          =          layout.          operator          (          "object.vertex_group_lock"          ,          text=          "Lock Only Selected"          )                                      2977                    op.action,          op.mask          =          'LOCK'          ,          'INVERT_UNSELECTED'                                      2978                    op          =          layout.          operator          (          "object.vertex_group_lock"          ,          text=          "Lock Only Unselected"          )                                      2979                    op.action,          op.mask          =          'UNLOCK'          ,          'INVERT_UNSELECTED'                                      2980                    op          =          layout.          operator          (          "object.vertex_group_lock"          ,          text=          "Invert Locks"          )                                      2981                    op.action,          op.mask          =          'INVERT'          ,          'ALL'                                      2982                                                2983                                                2984                    class          VIEW3D_MT_paint_weight          (Menu):                                      2985                    bl_label          =          "Weights"                                      2986                                                2987                    @staticmethod                                      2988                    def          draw_generic          (layout,          is_editmode=          False          ):                                      2989                                                2990                    if not          is_editmode:                                      2991                                                2992                    layout.          operator          (          "paint.weight_from_bones"          ,          text=          "Assign Automatic from Bones"          ).          type          =          'AUTOMATIC'                                      2993                    layout.          operator          (          "paint.weight_from_bones"          ,          text=          "Assign from Bone Envelopes"          ).          type          =          'ENVELOPES'                                      2994                                                2995                    layout.          separator          ()                                      2996                                                2997                    layout.          operator          (          "object.vertex_group_normalize_all"          ,          text=          "Normalize All"          )                                      2998                    layout.          operator          (          "object.vertex_group_normalize"          ,          text=          "Normalize"          )                                      2999                                                3000                    layout.          separator          ()                                      3001                                                3002                    layout.          operator          (          "object.vertex_group_mirror"          ,          text=          "Mirror"          )                                      3003                    layout.          operator          (          "object.vertex_group_invert"          ,          text=          "Invert"          )                                      3004                    layout.          operator          (          "object.vertex_group_clean"          ,          text=          "Clean"          )                                      3005                                                3006                    layout.          separator          ()                                      3007                                                3008                    layout.          operator          (          "object.vertex_group_quantize"          ,          text=          "Quantize"          )                                      3009                    layout.          operator          (          "object.vertex_group_levels"          ,          text=          "Levels"          )                                      3010                    layout.          operator          (          "object.vertex_group_smooth"          ,          text=          "Smooth"          )                                      3011                                                3012                    if not          is_editmode:                                      3013                    props          =          layout.          operator          (          "object.data_transfer"          ,          text=          "Transfer Weights"          )                                      3014                    props.use_reverse_transfer          =          True                                      3015                    props.data_type          =          'VGROUP_WEIGHTS'                                      3016                                                3017                    layout.          operator          (          "object.vertex_group_limit_total"          ,          text=          "Limit Total"          )                                      3018                    layout.          operator          (          "object.vertex_group_fix"          ,          text=          "Fix Deforms"          )                                      3019                                                3020                    if not          is_editmode:                                      3021                    layout.          separator          ()                                      3022                                                3023                    layout.          operator          (          "paint.weight_set"          )                                      3024                                                3025                    layout.          menu          (          "VIEW3D_MT_paint_weight_lock"          ,          text=          "Locks"          )                                      3026                                                3027                    def          draw          (self,          _context):                                      3028                    self.          draw_generic          (self.layout,          is_editmode=          False          )                                      3029                                                3030                                                3031                    class          VIEW3D_MT_sculpt          (Menu):                                      3032                    bl_label          =          "Sculpt"                                      3033                                                3034                    def          draw          (self,          _context):                                      3035                    layout          =          self.layout                              3036                                                3037                    props          =          layout.          operator          (          "paint.hide_show"          ,          text=          "Show All"          )                                      3038                    props.action          =          'SHOW'                                      3039                    props.area          =          'ALL'                                      3040                                                3041                    props          =          layout.          operator          (          "paint.hide_show"          ,          text=          "Show Bounding Box"          )                                      3042                    props.action          =          'SHOW'                                      3043                    props.area          =          'INSIDE'                                      3044                                                3045                    props          =          layout.          operator          (          "paint.hide_show"          ,          text=          "Hide Bounding Box"          )                                      3046                    props.action          =          'HIDE'                                      3047                    props.area          =          'INSIDE'                                      3048                                                3049                    props          =          layout.          operator          (          "paint.hide_show"          ,          text=          "Hide Masked"          )                                      3050                    props.action          =          'HIDE'                                      3051                    props.area          =          'MASKED'                                      3052                                                3053                    layout.          separator          ()                                      3054                                                3055                    layout.          menu          (          "VIEW3D_MT_sculpt_set_pivot"          ,          text=          "Set Pivot"          )                                      3056                                                3057                    layout.          separator          ()                                      3058                                                3059                    layout.          operator          (          "sculpt.optimize"          )                                      3060                                                3061                    layout.          separator          ()                                      3062                                                3063                    layout.          operator          (          "object.transfer_mode"          ,          text=          "Transfer Sculpt Mode"          )                                      3064                                                3065                                                3066                    class          VIEW3D_MT_mask          (Menu):                                      3067                    bl_label          =          "Mask"                                      3068                                                3069                    def          draw          (self,          _context):                                      3070                    layout          =          self.layout                              3071                                                3072                    props          =          layout.          operator          (          "paint.mask_flood_fill"          ,          text=          "Invert Mask"          )                                      3073                    props.mode          =          'INVERT'                                      3074                                                3075                    props          =          layout.          operator          (          "paint.mask_flood_fill"          ,          text=          "Fill Mask"          )                                      3076                    props.mode          =          'VALUE'                                      3077                    props.value          =          1                                      3078                                                3079                    props          =          layout.          operator          (          "paint.mask_flood_fill"          ,          text=          "Clear Mask"          )                                      3080                    props.mode          =          'VALUE'                                      3081                    props.value          =          0                                      3082                                                3083                    props          =          layout.          operator          (          "paint.mask_box_gesture"          ,          text=          "Box Mask"          )                                      3084                    props.mode          =          'VALUE'                                      3085                    props.value          =          0                                      3086                                                3087                    props          =          layout.          operator          (          "paint.mask_lasso_gesture"          ,          text=          "Lasso Mask"          )                                      3088                                                3089                    layout.          separator          ()                                      3090                                                3091                    props          =          layout.          operator          (          "sculpt.mask_filter"          ,          text=          'Smooth Mask'          )                                      3092                    props.filter_type          =          'SMOOTH'                                      3093                    props.auto_iteration_count          =          True                                      3094                                                3095                    props          =          layout.          operator          (          "sculpt.mask_filter"          ,          text=          'Sharpen Mask'          )                                      3096                    props.filter_type          =          'SHARPEN'                                      3097                    props.auto_iteration_count          =          True                                      3098                                                3099                    props          =          layout.          operator          (          "sculpt.mask_filter"          ,          text=          'Grow Mask'          )                                      3100                    props.filter_type          =          'GROW'                                      3101                    props.auto_iteration_count          =          True                                      3102                                                3103                    props          =          layout.          operator          (          "sculpt.mask_filter"          ,          text=          'Shrink Mask'          )                                      3104                    props.filter_type          =          'SHRINK'                                      3105                    props.auto_iteration_count          =          True                                      3106                                                3107                    props          =          layout.          operator          (          "sculpt.mask_filter"          ,          text=          'Increase Contrast'          )                                      3108                    props.filter_type          =          'CONTRAST_INCREASE'                                      3109                    props.auto_iteration_count          =          False                                      3110                                                3111                    props          =          layout.          operator          (          "sculpt.mask_filter"          ,          text=          'Decrease Contrast'          )                                      3112                    props.filter_type          =          'CONTRAST_DECREASE'                                      3113                    props.auto_iteration_count          =          False                                      3114                                                3115                    layout.          separator          ()                                      3116                                                3117                    props          =          layout.          operator          (          "sculpt.expand"          ,          text=          "Expand Mask by Topology"          )                                      3118                    props.target          =          'MASK'                                      3119                    props.falloff_type          =          'GEODESIC'                                      3120                    props.invert          =          True                                      3121                                                3122                    props          =          layout.          operator          (          "sculpt.expand"          ,          text=          "Expand Mask by Normals"          )                                      3123                    props.target          =          'MASK'                                      3124                    props.falloff_type          =          'NORMALS'                                      3125                    props.invert          =          False                                      3126                                                3127                    layout.          separator          ()                                      3128                                                3129                    props          =          layout.          operator          (          "mesh.paint_mask_extract"          ,          text=          "Mask Extract"          )                                      3130                                                3131                    layout.          separator          ()                                      3132                                                3133                    props          =          layout.          operator          (          "mesh.paint_mask_slice"          ,          text=          "Mask Slice"          )                                      3134                    props.fill_holes          =          False                                      3135                    props.new_object          =          False                                      3136                    props          =          layout.          operator          (          "mesh.paint_mask_slice"          ,          text=          "Mask Slice and Fill Holes"          )                                      3137                    props.new_object          =          False                                      3138                    props          =          layout.          operator          (          "mesh.paint_mask_slice"          ,          text=          "Mask Slice to New Object"          )                                      3139                                                3140                    layout.          separator          ()                                      3141                                                3142                    props          =          layout.          operator          (          "sculpt.dirty_mask"          ,          text=          'Dirty Mask'          )                                      3143                                                3144                    layout.          separator          ()                                      3145                                                3146                    layout.          menu          (          "VIEW3D_MT_random_mask"          ,          text=          "Random Mask"          )                                      3147                                                3148                                                3149                    class          VIEW3D_MT_face_sets          (Menu):                                      3150                    bl_label          =          "Face Sets"                                      3151                                                3152                    def          draw          (self,          _context):                                      3153                    layout          =          self.layout                              3154                                                3155                    op          =          layout.          operator          (          "sculpt.face_sets_create"          ,          text=          'Face Set from Masked'          )                                      3156                    op.mode          =          'MASKED'                                      3157                                                3158                    op          =          layout.          operator          (          "sculpt.face_sets_create"          ,          text=          'Face Set from Visible'          )                                      3159                    op.mode          =          'VISIBLE'                                      3160                                                3161                    op          =          layout.          operator          (          "sculpt.face_sets_create"          ,          text=          'Face Set from Edit Mode Selection'          )                                      3162                    op.mode          =          'SELECTION'                                      3163                                                3164                    layout.          separator          ()                                      3165                                                3166                    layout.          menu          (          "VIEW3D_MT_face_sets_init"          ,          text=          "Initialize Face Sets"          )                                      3167                                                3168                    layout.          separator          ()                                      3169                                                3170                    op          =          layout.          operator          (          "sculpt.face_set_edit"          ,          text=          'Grow Face Set'          )                                      3171                    op.mode          =          'GROW'                                      3172                                                3173                    op          =          layout.          operator          (          "sculpt.face_set_edit"          ,          text=          'Shrink Face Set'          )                                      3174                    op.mode          =          'SHRINK'                                      3175                                                3176                    layout.          separator          ()                                      3177                                                3178                    props          =          layout.          operator          (          "sculpt.expand"          ,          text=          "Expand Face Set by Topology"          )                                      3179                    props.target          =          'FACE_SETS'                                      3180                    props.falloff_type          =          'GEODESIC'                                      3181                    props.invert          =          False                                      3182                    props.use_modify_active          =          False                                      3183                                                3184                    props          =          layout.          operator          (          "sculpt.expand"          ,          text=          "Expand Active Face Set"          )                                      3185                    props.target          =          'FACE_SETS'                                      3186                    props.falloff_type          =          'BOUNDARY_FACE_SET'                                      3187                    props.invert          =          False                                      3188                    props.use_modify_active          =          True                                      3189                                                3190                    layout.          separator          ()                                      3191                                                3192                    op          =          layout.          operator          (          "mesh.face_set_extract"          ,          text=          'Extract Face Set'          )                                      3193                                                3194                    layout.          separator          ()                                      3195                                                3196                    op          =          layout.          operator          (          "sculpt.face_set_change_visibility"          ,          text=          'Invert Visible Face Sets'          )                                      3197                    op.mode          =          'INVERT'                                      3198                                                3199                    op          =          layout.          operator          (          "sculpt.face_set_change_visibility"          ,          text=          'Show All Face Sets'          )                                      3200                    op.mode          =          'SHOW_ALL'                                      3201                                                3202                    layout.          separator          ()                                      3203                                                3204                    op          =          layout.          operator          (          "sculpt.face_sets_randomize_colors"          ,          text=          'Randomize Colors'          )                                      3205                                                3206                                                3207                    class          VIEW3D_MT_sculpt_set_pivot          (Menu):                                      3208                    bl_label          =          "Sculpt Set Pivot"                                      3209                                                3210                    def          draw          (self,          _context):                                      3211                    layout          =          self.layout                              3212                                                3213                    props          =          layout.          operator          (          "sculpt.set_pivot_position"          ,          text=          "Pivot to Origin"          )                                      3214                    props.mode          =          'ORIGIN'                                      3215                                                3216                    props          =          layout.          operator          (          "sculpt.set_pivot_position"          ,          text=          "Pivot to Unmasked"          )                                      3217                    props.mode          =          'UNMASKED'                                      3218                                                3219                    props          =          layout.          operator          (          "sculpt.set_pivot_position"          ,          text=          "Pivot to Mask Border"          )                                      3220                    props.mode          =          'BORDER'                                      3221                                                3222                    props          =          layout.          operator          (          "sculpt.set_pivot_position"          ,          text=          "Pivot to Active Vertex"          )                                      3223                    props.mode          =          'ACTIVE'                                      3224                                                3225                    props          =          layout.          operator          (          "sculpt.set_pivot_position"          ,          text=          "Pivot to Surface Under Cursor"          )                                      3226                    props.mode          =          'SURFACE'                                      3227                                                3228                                                3229                    class          VIEW3D_MT_face_sets_init          (Menu):                                      3230                    bl_label          =          "Face Sets Init"                                      3231                                                3232                    def          draw          (self,          _context):                                      3233                    layout          =          self.layout                              3234                                                3235                    op          =          layout.          operator          (          "sculpt.face_sets_init"          ,          text=          'By Loose Parts'          )                                      3236                    op.mode          =          'LOOSE_PARTS'                                      3237                                                3238                    op          =          layout.          operator          (          "sculpt.face_sets_init"          ,          text=          'By Face Set Boundaries'          )                                      3239                    op.mode          =          'FACE_SET_BOUNDARIES'                                      3240                                                3241                    op          =          layout.          operator          (          "sculpt.face_sets_init"          ,          text=          'By Materials'          )                                      3242                    op.mode          =          'MATERIALS'                                      3243                                                3244                    op          =          layout.          operator          (          "sculpt.face_sets_init"          ,          text=          'By Normals'          )                                      3245                    op.mode          =          'NORMALS'                                      3246                                                3247                    op          =          layout.          operator          (          "sculpt.face_sets_init"          ,          text=          'By UV Seams'          )                                      3248                    op.mode          =          'UV_SEAMS'                                      3249                                                3250                    op          =          layout.          operator          (          "sculpt.face_sets_init"          ,          text=          'By Edge Creases'          )                                      3251                    op.mode          =          'CREASES'                                      3252                                                3253                    op          =          layout.          operator          (          "sculpt.face_sets_init"          ,          text=          'By Edge Bevel Weight'          )                                      3254                    op.mode          =          'BEVEL_WEIGHT'                                      3255                                                3256                    op          =          layout.          operator          (          "sculpt.face_sets_init"          ,          text=          'By Sharp Edges'          )                                      3257                    op.mode          =          'SHARP_EDGES'                                      3258                                                3259                    op          =          layout.          operator          (          "sculpt.face_sets_init"          ,          text=          'By Face Maps'          )                                      3260                    op.mode          =          'FACE_MAPS'                                      3261                                                3262                                                3263                    class          VIEW3D_MT_random_mask          (Menu):                                      3264                    bl_label          =          "Random Mask"                                      3265                                                3266                    def          draw          (self,          _context):                                      3267                    layout          =          self.layout                              3268                                                3269                    op          =          layout.          operator          (          "sculpt.mask_init"          ,          text=          'Per Vertex'          )                                      3270                    op.mode          =          'RANDOM_PER_VERTEX'                                      3271                                                3272                    op          =          layout.          operator          (          "sculpt.mask_init"          ,          text=          'Per Face Set'          )                                      3273                    op.mode          =          'RANDOM_PER_FACE_SET'                                      3274                                                3275                    op          =          layout.          operator          (          "sculpt.mask_init"          ,          text=          'Per Loose Part'          )                                      3276                    op.mode          =          'RANDOM_PER_LOOSE_PART'                                      3277                                                3278                                                3279                    class          VIEW3D_MT_particle          (Menu):                                      3280                    bl_label          =          "Particle"                                      3281                                                3282                    def          draw          (self,          context):                                      3283                    layout          =          self.layout                              3284                    tool_settings          =          context.tool_settings                              3285                                                3286                    particle_edit          =          tool_settings.particle_edit                              3287                                                3288                    layout.          operator          (          "particle.mirror"          )                                      3289                                                3290                    layout.          operator          (          "particle.remove_doubles"          )                                      3291                                                3292                    layout.          separator          ()                                      3293                                                3294                    if          particle_edit.select_mode          ==          'POINT'          :                                      3295                    layout.          operator          (          "particle.subdivide"          )                                      3296                                                3297                    layout.          operator          (          "particle.unify_length"          )                                      3298                    layout.          operator          (          "particle.rekey"          )                                      3299                    layout.          operator          (          "particle.weight_set"          )                                      3300                                                3301                    layout.          separator          ()                                      3302                                                3303                    layout.          menu          (          "VIEW3D_MT_particle_showhide"          )                                      3304                                                3305                    layout.          separator          ()                                      3306                                                3307                    layout.          operator          (          "particle.delete"          )                                      3308                                                3309                                                3310                    class          VIEW3D_MT_particle_context_menu          (Menu):                                      3311                    bl_label          =          "Particle Context Menu"                                      3312                                                3313                    def          draw          (self,          context):                                      3314                    layout          =          self.layout                              3315                    tool_settings          =          context.tool_settings                              3316                                                3317                    particle_edit          =          tool_settings.particle_edit                              3318                                                3319                    layout.          operator          (          "particle.rekey"          )                                      3320                                                3321                    layout.          separator          ()                                      3322                                                3323                    layout.          operator          (          "particle.delete"          )                                      3324                                                3325                    layout.          separator          ()                                      3326                                                3327                    layout.          operator          (          "particle.remove_doubles"          )                                      3328                    layout.          operator          (          "particle.unify_length"          )                                      3329                                                3330                    if          particle_edit.select_mode          ==          'POINT'          :                                      3331                    layout.          operator          (          "particle.subdivide"          )                                      3332                                                3333                    layout.          operator          (          "particle.weight_set"          )                                      3334                                                3335                    layout.          separator          ()                                      3336                                                3337                    layout.          operator          (          "particle.mirror"          )                                      3338                                                3339                    if          particle_edit.select_mode          ==          'POINT'          :                                      3340                    layout.          separator          ()                                      3341                                                3342                    layout.          operator          (          "particle.select_all"          ,          text=          "All"          ).action          =          'SELECT'                                      3343                    layout.          operator          (          "particle.select_all"          ,          text=          "None"          ).action          =          'DESELECT'                                      3344                    layout.          operator          (          "particle.select_all"          ,          text=          "Invert"          ).action          =          'INVERT'                                      3345                                                3346                    layout.          separator          ()                                      3347                                                3348                    layout.          operator          (          "particle.select_roots"          )                                      3349                    layout.          operator          (          "particle.select_tips"          )                                      3350                                                3351                    layout.          separator          ()                                      3352                                                3353                    layout.          operator          (          "particle.select_random"          )                                      3354                                                3355                    layout.          separator          ()                                      3356                                                3357                    layout.          operator          (          "particle.select_more"          )                                      3358                    layout.          operator          (          "particle.select_less"          )                                      3359                                                3360                    layout.          separator          ()                                      3361                                                3362                    layout.          operator          (          "particle.select_linked"          ,          text=          "Select Linked"          )                                      3363                                                3364                                                3365                    class          VIEW3D_MT_particle_showhide          (ShowHideMenu,          Menu):                                      3366                    _operator_name          =          "particle"                                      3367                                                3368                                                3369                    class          VIEW3D_MT_pose          (Menu):                                      3370                    bl_label          =          "Pose"                                      3371                                                3372                    def          draw          (self,          _context):                                      3373                    layout          =          self.layout                              3374                                                3375                    layout.          menu          (          "VIEW3D_MT_transform_armature"          )                                      3376                                                3377                    layout.          menu          (          "VIEW3D_MT_pose_transform"          )                                      3378                    layout.          menu          (          "VIEW3D_MT_pose_apply"          )                                      3379                                                3380                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      3381                                                3382                    layout.          separator          ()                                      3383                                                3384                    layout.          menu          (          "VIEW3D_MT_object_animation"          )                                      3385                                                3386                    layout.          separator          ()                                      3387                                                3388                    layout.          menu          (          "VIEW3D_MT_pose_slide"          )                                      3389                    layout.          menu          (          "VIEW3D_MT_pose_propagate"          )                                      3390                                                3391                    layout.          separator          ()                                      3392                                                3393                    layout.          operator          (          "pose.copy"          ,          icon=          'COPYDOWN'          )                                      3394                    layout.          operator          (          "pose.paste"          ,          icon=          'PASTEDOWN'          ).flipped          =          False                                      3395                    layout.          operator          (          "pose.paste"          ,          icon=          'PASTEFLIPDOWN'          ,          text=          "Paste Pose Flipped"          ).flipped          =          True                                      3396                                                3397                    layout.          separator          ()                                      3398                                                3399                    layout.          menu          (          "VIEW3D_MT_pose_library"          )                                      3400                    layout.          menu          (          "VIEW3D_MT_pose_motion"          )                                      3401                    layout.          menu          (          "VIEW3D_MT_pose_group"          )                                      3402                                                3403                    layout.          separator          ()                                      3404                                                3405                    layout.          menu          (          "VIEW3D_MT_object_parent"          )                                      3406                    layout.          menu          (          "VIEW3D_MT_pose_ik"          )                                      3407                    layout.          menu          (          "VIEW3D_MT_pose_constraints"          )                                      3408                                                3409                    layout.          separator          ()                                      3410                                                3411                    layout.          menu          (          "VIEW3D_MT_pose_names"          )                                      3412                    layout.          operator          (          "pose.quaternions_flip"          )                                      3413                                                3414                    layout.          separator          ()                                      3415                                                3416                    layout.operator_context          =          'INVOKE_AREA'                                      3417                    layout.          operator          (          "armature.armature_layers"          ,          text=          "Change Armature Layers..."          )                                      3418                    layout.          operator          (          "pose.bone_layers"          ,          text=          "Change Bone Layers..."          )                                      3419                                                3420                    layout.          separator          ()                                      3421                                                3422                    layout.          menu          (          "VIEW3D_MT_pose_showhide"          )                                      3423                    layout.          menu          (          "VIEW3D_MT_bone_options_toggle"          ,          text=          "Bone Settings"          )                                      3424                                                3425                                                3426                    class          VIEW3D_MT_pose_transform          (Menu):                                      3427                    bl_label          =          "Clear Transform"                                      3428                                                3429                    def          draw          (self,          _context):                                      3430                    layout          =          self.layout                              3431                                                3432                    layout.          operator          (          "pose.transforms_clear"          ,          text=          "All"          )                                      3433                                                3434                    layout.          separator          ()                                      3435                                                3436                    layout.          operator          (          "pose.loc_clear"          ,          text=          "Location"          )                                      3437                    layout.          operator          (          "pose.rot_clear"          ,          text=          "Rotation"          )                                      3438                    layout.          operator          (          "pose.scale_clear"          ,          text=          "Scale"          )                                      3439                                                3440                    layout.          separator          ()                                      3441                                                3442                    layout.          operator          (          "pose.user_transforms_clear"          ,          text=          "Reset Unkeyed"          )                                      3443                                                3444                                                3445                    class          VIEW3D_MT_pose_slide          (Menu):                                      3446                    bl_label          =          "In-Betweens"                                      3447                                                3448                    def          draw          (self,          _context):                                      3449                    layout          =          self.layout                              3450                                                3451                    layout.          operator          (          "pose.push_rest"          )                                      3452                    layout.          operator          (          "pose.relax_rest"          )                                      3453                    layout.          operator          (          "pose.push"          )                                      3454                    layout.          operator          (          "pose.relax"          )                                      3455                    layout.          operator          (          "pose.breakdown"          )                                      3456                    layout.          operator          (          "pose.blend_to_neighbor"          )                                      3457                                                3458                                                3459                    class          VIEW3D_MT_pose_propagate          (Menu):                                      3460                    bl_label          =          "Propagate"                                      3461                                                3462                    def          draw          (self,          _context):                                      3463                    layout          =          self.layout                              3464                                                3465                    layout.          operator          (          "pose.propagate"          ).mode          =          'WHILE_HELD'                                      3466                                                3467                    layout.          separator          ()                                      3468                                                3469                    layout.          operator          (          "pose.propagate"          ,          text=          "To Next Keyframe"          ).mode          =          'NEXT_KEY'                                      3470                    layout.          operator          (          "pose.propagate"          ,          text=          "To Last Keyframe (Make Cyclic)"          ).mode          =          'LAST_KEY'                                      3471                                                3472                    layout.          separator          ()                                      3473                                                3474                    layout.          operator          (          "pose.propagate"          ,          text=          "On Selected Keyframes"          ).mode          =          'SELECTED_KEYS'                                      3475                                                3476                    layout.          separator          ()                                      3477                                                3478                    layout.          operator          (          "pose.propagate"          ,          text=          "On Selected Markers"          ).mode          =          'SELECTED_MARKERS'                                      3479                                                3480                                                3481                    class          VIEW3D_MT_pose_library          (Menu):                                      3482                    bl_label          =          "Pose Library"                                      3483                                                3484                    def          draw          (self,          _context):                                      3485                    layout          =          self.layout                              3486                                                3487                    layout.          operator          (          "poselib.browse_interactive"          ,          text=          "Browse Poses..."          )                                      3488                                                3489                    layout.          separator          ()                                      3490                                                3491                    layout.          operator          (          "poselib.pose_add"          ,          text=          "Add Pose..."          )                                      3492                    layout.          operator          (          "poselib.pose_rename"          ,          text=          "Rename Pose..."          )                                      3493                    layout.          operator          (          "poselib.pose_remove"          ,          text=          "Remove Pose..."          )                                      3494                                                3495                                                3496                    class          VIEW3D_MT_pose_motion          (Menu):                                      3497                    bl_label          =          "Motion Paths"                                      3498                                                3499                    def          draw          (self,          _context):                                      3500                    layout          =          self.layout                              3501                                                3502                    layout.          operator          (          "pose.paths_calculate"          ,          text=          "Calculate"          )                                      3503                    layout.          operator          (          "pose.paths_clear"          ,          text=          "Clear"          )                                      3504                                                3505                                                3506                    class          VIEW3D_MT_pose_group          (Menu):                                      3507                    bl_label          =          "Bone Groups"                                      3508                                                3509                    def          draw          (self,          context):                                      3510                    layout          =          self.layout                              3511                                                3512                    pose          =          context.active_object.pose                              3513                                                3514                    layout.operator_context          =          'EXEC_AREA'                                      3515                    layout.          operator          (          "pose.group_assign"          ,          text=          "Assign to New Group"          ).          type          =          0                                      3516                                                3517                    if          pose.bone_groups:                                      3518                    active_group          =          pose.bone_groups.active_index          +          1                                      3519                    layout.          operator          (          "pose.group_assign"          ,          text=          "Assign to Group"          ).          type          =          active_group                              3520                                                3521                    layout.          separator          ()                                      3522                                                3523                    # layout.operator_context = 'INVOKE_AREA'                                      3524                    layout.          operator          (          "pose.group_unassign"          )                                      3525                    layout.          operator          (          "pose.group_remove"          )                                      3526                                                3527                                                3528                    class          VIEW3D_MT_pose_ik          (Menu):                                      3529                    bl_label          =          "Inverse Kinematics"                                      3530                                                3531                    def          draw          (self,          _context):                                      3532                    layout          =          self.layout                              3533                                                3534                    layout.          operator          (          "pose.ik_add"          )                                      3535                    layout.          operator          (          "pose.ik_clear"          )                                      3536                                                3537                                                3538                    class          VIEW3D_MT_pose_constraints          (Menu):                                      3539                    bl_label          =          "Constraints"                                      3540                                                3541                    def          draw          (self,          _context):                                      3542                    layout          =          self.layout                              3543                                                3544                    layout.          operator          (          "pose.constraint_add_with_targets"          ,          text=          "Add (with Targets)..."          )                                      3545                    layout.          operator          (          "pose.constraints_copy"          )                                      3546                    layout.          operator          (          "pose.constraints_clear"          )                                      3547                                                3548                                                3549                    class          VIEW3D_MT_pose_names          (Menu):                                      3550                    bl_label          =          "Names"                                      3551                                                3552                    def          draw          (self,          _context):                                      3553                    layout          =          self.layout                              3554                                                3555                    layout.operator_context          =          'EXEC_REGION_WIN'                                      3556                    layout.          operator          (          "pose.autoside_names"          ,          text=          "Auto-Name Left/Right"          ).axis          =          'XAXIS'                                      3557                    layout.          operator          (          "pose.autoside_names"          ,          text=          "Auto-Name Front/Back"          ).axis          =          'YAXIS'                                      3558                    layout.          operator          (          "pose.autoside_names"          ,          text=          "Auto-Name Top/Bottom"          ).axis          =          'ZAXIS'                                      3559                    layout.          operator          (          "pose.flip_names"          )                                      3560                                                3561                                                3562                    class          VIEW3D_MT_pose_showhide          (ShowHideMenu,          Menu):                                      3563                    _operator_name          =          "pose"                                      3564                                                3565                                                3566                    class          VIEW3D_MT_pose_apply          (Menu):                                      3567                    bl_label          =          "Apply"                                      3568                                                3569                    def          draw          (self,          _context):                                      3570                    layout          =          self.layout                              3571                                                3572                    layout.          operator          (          "pose.armature_apply"          ).selected          =          False                                      3573                    layout.          operator          (          "pose.armature_apply"          ,          text=          "Apply Selected as Rest Pose"          ).selected          =          True                                      3574                    layout.          operator          (          "pose.visual_transform_apply"          )                                      3575                                                3576                    layout.          separator          ()                                      3577                                                3578                    props          =          layout.          operator          (          "object.assign_property_defaults"          )                                      3579                    props.process_bones          =          True                                      3580                                                3581                                                3582                    class          VIEW3D_MT_pose_context_menu          (Menu):                                      3583                    bl_label          =          "Pose Context Menu"                                      3584                                                3585                    def          draw          (self,          _context):                                      3586                    layout          =          self.layout                              3587                                                3588                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      3589                                                3590                    layout.          operator          (          "anim.keyframe_insert_menu"          ,          text=          "Insert Keyframe..."          )                                      3591                                                3592                    layout.          separator          ()                                      3593                                                3594                    layout.          operator          (          "pose.copy"          ,          icon=          'COPYDOWN'          )                                      3595                    layout.          operator          (          "pose.paste"          ,          icon=          'PASTEDOWN'          ).flipped          =          False                                      3596                    layout.          operator          (          "pose.paste"          ,          icon=          'PASTEFLIPDOWN'          ,          text=          "Paste X-Flipped Pose"          ).flipped          =          True                                      3597                                                3598                    layout.          separator          ()                                      3599                                                3600                    props          =          layout.          operator          (          "wm.call_panel"          ,          text=          "Rename Active Bone..."          )                                      3601                    props.name          =          "TOPBAR_PT_name"                                      3602                    props.keep_open          =          False                                      3603                                                3604                    layout.          separator          ()                                      3605                                                3606                    layout.          operator          (          "pose.push"          )                                      3607                    layout.          operator          (          "pose.relax"          )                                      3608                    layout.          operator          (          "pose.breakdown"          )                                      3609                    layout.          operator          (          "pose.blend_to_neighbor"          )                                      3610                                                3611                    layout.          separator          ()                                      3612                                                3613                    layout.          operator          (          "pose.paths_calculate"          ,          text=          "Calculate Motion Paths"          )                                      3614                    layout.          operator          (          "pose.paths_clear"          ,          text=          "Clear Motion Paths"          )                                      3615                    layout.          operator          (          "pose.paths_update"          ,          text=          "Update Armature Motion Paths"          )                                      3616                    layout.          operator          (          "object.paths_update_visible"          ,          text=          "Update All Motion Paths"          )                                      3617                                                3618                    layout.          separator          ()                                      3619                                                3620                    layout.          operator          (          "pose.hide"          ).unselected          =          False                                      3621                    layout.          operator          (          "pose.reveal"          )                                      3622                                                3623                    layout.          separator          ()                                      3624                                                3625                    layout.          operator          (          "pose.user_transforms_clear"          )                                      3626                                                3627                                                3628                    class          BoneOptions:                                      3629                    def          draw          (self,          context):                                      3630                    layout          =          self.layout                              3631                                                3632                    options          = [                                      3633                    "show_wire"          ,                                      3634                    "use_deform"          ,                                      3635                    "use_envelope_multiply"          ,                                      3636                    "use_inherit_rotation"          ,                                      3637                    ]                                      3638                                                3639                    if          context.mode          ==          'EDIT_ARMATURE'          :                                      3640                    bone_props          =          bpy.types.EditBone.bl_rna.properties                              3641                    data_path_iter          =          "selected_bones"                                      3642                    opt_suffix          =          ""                                      3643                    options.          append          (          "lock"          )                                      3644                    else          :          # pose-mode                                      3645                    bone_props          =          bpy.types.Bone.bl_rna.properties                              3646                    data_path_iter          =          "selected_pose_bones"                                      3647                    opt_suffix          =          "bone."                                      3648                                                3649                    for          opt          in          options:                                      3650                    props          =          layout.          operator          (          "wm.context_collection_boolean_set"          ,          text=bone_props[opt].name,                                      3651                    text_ctxt=i18n_contexts.default)                                      3652                    props.data_path_iter          =          data_path_iter                              3653                    props.data_path_item          =          opt_suffix          +          opt                              3654                    props.          type          =          self.          type                                      3655                                                3656                                                3657                    class          VIEW3D_MT_bone_options_toggle          (Menu,          BoneOptions):                                      3658                    bl_label          =          "Toggle Bone Options"                                      3659                    type          =          'TOGGLE'                                      3660                                                3661                                                3662                    class          VIEW3D_MT_bone_options_enable          (Menu,          BoneOptions):                                      3663                    bl_label          =          "Enable Bone Options"                                      3664                    type          =          'ENABLE'                                      3665                                                3666                                                3667                    class          VIEW3D_MT_bone_options_disable          (Menu,          BoneOptions):                                      3668                    bl_label          =          "Disable Bone Options"                                      3669                    type          =          'DISABLE'                                      3670                                                3671                                                3672                    # ********** Edit Menus, suffix from ob.type **********                                      3673                                                3674                                                3675                    class          VIEW3D_MT_edit_mesh          (Menu):                                      3676                    bl_label          =          "Mesh"                                      3677                                                3678                    def          draw          (self,          _context):                                      3679                    layout          =          self.layout                              3680                                                3681                    with_bullet          =          bpy.app.build_options.bullet                              3682                                                3683                    layout.          menu          (          "VIEW3D_MT_transform"          )                                      3684                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      3685                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      3686                                                3687                    layout.          separator          ()                                      3688                                                3689                    layout.          operator          (          "mesh.duplicate_move"          ,          text=          "Duplicate"          )                                      3690                    layout.          menu          (          "VIEW3D_MT_edit_mesh_extrude"          )                                      3691                                                3692                    layout.          separator          ()                                      3693                                                3694                    layout.          menu          (          "VIEW3D_MT_edit_mesh_merge"          ,          text=          "Merge"          )                                      3695                    layout.          menu          (          "VIEW3D_MT_edit_mesh_split"          ,          text=          "Split"          )                                      3696                    layout.          operator_menu_enum          (          "mesh.separate"          ,          "type"          )                                      3697                                                3698                    layout.          separator          ()                                      3699                                                3700                    layout.          operator          (          "mesh.bisect"          )                                      3701                    layout.          operator          (          "mesh.knife_project"          )                                      3702                                                3703                    if          with_bullet:                                      3704                    layout.          operator          (          "mesh.convex_hull"          )                                      3705                                                3706                    layout.          separator          ()                                      3707                                                3708                    layout.          operator          (          "mesh.symmetrize"          )                                      3709                    layout.          operator          (          "mesh.symmetry_snap"          )                                      3710                                                3711                    layout.          separator          ()                                      3712                                                3713                    layout.          menu          (          "VIEW3D_MT_edit_mesh_normals"          )                                      3714                    layout.          menu          (          "VIEW3D_MT_edit_mesh_shading"          )                                      3715                    layout.          menu          (          "VIEW3D_MT_edit_mesh_weights"          )                                      3716                    layout.          operator_menu_enum          (          "mesh.sort_elements"          ,          "type"          ,          text=          "Sort Elements..."          )                                      3717                                                3718                    layout.          separator          ()                                      3719                                                3720                    layout.          menu          (          "VIEW3D_MT_edit_mesh_showhide"          )                                      3721                    layout.          menu          (          "VIEW3D_MT_edit_mesh_clean"          )                                      3722                                                3723                    layout.          separator          ()                                      3724                                                3725                    layout.          menu          (          "VIEW3D_MT_edit_mesh_delete"          )                                      3726                                                3727                                                3728                    class          VIEW3D_MT_edit_mesh_context_menu          (Menu):                                      3729                    bl_label          =          ""                                      3730                                                3731                    def          draw          (self,          context):                                      3732                                                3733                    def          count_selected_items_for_objects_in_mode          ():                                      3734                    selected_verts_len          =          0                                      3735                    selected_edges_len          =          0                                      3736                    selected_faces_len          =          0                                      3737                    for          ob          in          context.objects_in_mode_unique_data:                                      3738                    v,          e,          f          =          ob.data.          count_selected_items          ()                                      3739                    selected_verts_len          +=          v                              3740                    selected_edges_len          +=          e                              3741                    selected_faces_len          +=          f                              3742                    return          (selected_verts_len,          selected_edges_len,          selected_faces_len)                                      3743                                                3744                    is_vert_mode,          is_edge_mode,          is_face_mode          =          context.tool_settings.mesh_select_mode                              3745                    selected_verts_len,          selected_edges_len,          selected_faces_len          =          count_selected_items_for_objects_in_mode          ()                                      3746                                                3747                    del          count_selected_items_for_objects_in_mode                              3748                                                3749                    layout          =          self.layout                              3750                                                3751                    with_freestyle          =          bpy.app.build_options.freestyle                              3752                                                3753                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      3754                                                3755                    # If nothing is selected                                      3756                    # (disabled for now until it can be made more useful).                                      3757                    '''                                      3758                                # If nothing is selected                                      3759                                if not (selected_verts_len or selected_edges_len or selected_faces_len):                                      3760                                layout.menu("VIEW3D_MT_mesh_add", text="Add", text_ctxt=i18n_contexts.operator_default)                                      3761                                                          3762                                return                                      3763                                '''                                      3764                                                3765                    # Else something is selected                                      3766                                                3767                    row          =          layout.          row          ()                                      3768                                                3769                    if          is_vert_mode:                                      3770                    col          =          row.          column          (align=          True          )                                      3771                                                3772                    col.          label          (text=          "Vertex Context Menu"          ,          icon=          'VERTEXSEL'          )                                      3773                    col.          separator          ()                                      3774                                                3775                    # Additive Operators                                      3776                    col.          operator          (          "mesh.subdivide"          ,          text=          "Subdivide"          )                                      3777                                                3778                    col.          separator          ()                                      3779                                                3780                    col.          operator          (          "mesh.extrude_vertices_move"          ,          text=          "Extrude Vertices"          )                                      3781                    col.          operator          (          "mesh.bevel"          ,          text=          "Bevel Vertices"          ).affect          =          'VERTICES'                                      3782                                                3783                    if          selected_verts_len          >          1          :                                      3784                    col.          separator          ()                                      3785                    col.          operator          (          "mesh.edge_face_add"          ,          text=          "New Edge/Face from Vertices"          )                                      3786                    col.          operator          (          "mesh.vert_connect_path"          ,          text=          "Connect Vertex Path"          )                                      3787                    col.          operator          (          "mesh.vert_connect"          ,          text=          "Connect Vertex Pairs"          )                                      3788                                                3789                    col.          separator          ()                                      3790                                                3791                    # Deform Operators                                      3792                    col.          operator          (          "transform.push_pull"          ,          text=          "Push/Pull"          )                                      3793                    col.          operator          (          "transform.shrink_fatten"          ,          text=          "Shrink/Fatten"          )                                      3794                    col.          operator          (          "transform.shear"          ,          text=          "Shear"          )                                      3795                    col.          operator          (          "transform.vert_slide"          ,          text=          "Slide Vertices"          )                                      3796                    col.operator_context          =          'EXEC_REGION_WIN'                                      3797                    col.          operator          (          "transform.vertex_random"          ,          text=          "Randomize Vertices"          ).offset          =          0.1                                      3798                    col.          operator          (          "mesh.vertices_smooth"          ,          text=          "Smooth Vertices"          ).factor          =          0.5                                      3799                    col.operator_context          =          'INVOKE_REGION_WIN'                                      3800                    col.          operator          (          "mesh.vertices_smooth_laplacian"          ,          text=          "Smooth Laplacian"          )                                      3801                                                3802                    col.          separator          ()                                      3803                                                3804                    col.          menu          (          "VIEW3D_MT_mirror"          ,          text=          "Mirror Vertices"          )                                      3805                    col.          menu          (          "VIEW3D_MT_snap"          ,          text=          "Snap Vertices"          )                                      3806                                                3807                    col.          separator          ()                                      3808                                                3809                    # Removal Operators                                      3810                    if          selected_verts_len          >          1          :                                      3811                    col.          menu          (          "VIEW3D_MT_edit_mesh_merge"          ,          text=          "Merge Vertices"          )                                      3812                    col.          operator          (          "mesh.split"          )                                      3813                    col.          operator_menu_enum          (          "mesh.separate"          ,          "type"          )                                      3814                    col.          operator          (          "mesh.dissolve_verts"          )                                      3815                    col.          operator          (          "mesh.delete"          ,          text=          "Delete Vertices"          ).          type          =          'VERT'                                      3816                                                3817                    if          is_edge_mode:                                      3818                    col          =          row.          column          (align=          True          )                                      3819                    col.          label          (text=          "Edge Context Menu"          ,          icon=          'EDGESEL'          )                                      3820                    col.          separator          ()                                      3821                                                3822                    # Additive Operators                                      3823                    col.          operator          (          "mesh.subdivide"          ,          text=          "Subdivide"          )                                      3824                                                3825                    col.          separator          ()                                      3826                                                3827                    col.          operator          (          "mesh.extrude_edges_move"          ,          text=          "Extrude Edges"          )                                      3828                    col.          operator          (          "mesh.bevel"          ,          text=          "Bevel Edges"          ).affect          =          'EDGES'                                      3829                    if          selected_edges_len          >=          2          :                                      3830                    col.          operator          (          "mesh.bridge_edge_loops"          )                                      3831                    if          selected_edges_len          >=          1          :                                      3832                    col.          operator          (          "mesh.edge_face_add"          ,          text=          "New Face from Edges"          )                                      3833                    if          selected_edges_len          >=          2          :                                      3834                    col.          operator          (          "mesh.fill"          )                                      3835                                                3836                    col.          separator          ()                                      3837                                                3838                    props          =          col.          operator          (          "mesh.loopcut_slide"          )                                      3839                    props.TRANSFORM_OT_edge_slide.release_confirm          =          False                                      3840                    col.          operator          (          "mesh.offset_edge_loops_slide"          )                                      3841                                                3842                    col.          separator          ()                                      3843                                                3844                    col.          operator          (          "mesh.knife_tool"          )                                      3845                    col.          operator          (          "mesh.bisect"          )                                      3846                                                3847                    col.          separator          ()                                      3848                                                3849                    # Deform Operators                                      3850                    col.          operator          (          "mesh.edge_rotate"          ,          text=          "Rotate Edge CW"          ).use_ccw          =          False                                      3851                    col.          operator          (          "transform.edge_slide"          )                                      3852                    col.          operator          (          "mesh.edge_split"          )                                      3853                                                3854                    col.          separator          ()                                      3855                                                3856                    # Edge Flags                                      3857                    col.          operator          (          "transform.edge_crease"          )                                      3858                    col.          operator          (          "transform.edge_bevelweight"          )                                      3859                                                3860                    col.          separator          ()                                      3861                                                3862                    col.          operator          (          "mesh.mark_seam"          ).clear          =          False                                      3863                    col.          operator          (          "mesh.mark_seam"          ,          text=          "Clear Seam"          ).clear          =          True                                      3864                                                3865                    col.          separator          ()                                      3866                                                3867                    col.          operator          (          "mesh.mark_sharp"          )                                      3868                    col.          operator          (          "mesh.mark_sharp"          ,          text=          "Clear Sharp"          ).clear          =          True                                      3869                                                3870                    if          with_freestyle:                                      3871                    col.          separator          ()                                      3872                                                3873                    col.          operator          (          "mesh.mark_freestyle_edge"          ).clear          =          False                                      3874                    col.          operator          (          "mesh.mark_freestyle_edge"          ,          text=          "Clear Freestyle Edge"          ).clear          =          True                                      3875                                                3876                    col.          separator          ()                                      3877                                                3878                    # Removal Operators                                      3879                    col.          operator          (          "mesh.unsubdivide"          )                                      3880                    col.          operator          (          "mesh.split"          )                                      3881                    col.          operator_menu_enum          (          "mesh.separate"          ,          "type"          )                                      3882                    col.          operator          (          "mesh.dissolve_edges"          )                                      3883                    col.          operator          (          "mesh.delete"          ,          text=          "Delete Edges"          ).          type          =          'EDGE'                                      3884                                                3885                    if          is_face_mode:                                      3886                    col          =          row.          column          (align=          True          )                                      3887                                                3888                    col.          label          (text=          "Face Context Menu"          ,          icon=          'FACESEL'          )                                      3889                    col.          separator          ()                                      3890                                                3891                    # Additive Operators                                      3892                    col.          operator          (          "mesh.subdivide"          ,          text=          "Subdivide"          )                                      3893                                                3894                    col.          separator          ()                                      3895                                                3896                    col.          operator          (          "view3d.edit_mesh_extrude_move_normal"          ,          text=          "Extrude Faces"          )                                      3897                    col.          operator          (          "view3d.edit_mesh_extrude_move_shrink_fatten"          ,          text=          "Extrude Faces Along Normals"          )                                      3898                    col.          operator          (          "mesh.extrude_faces_move"          ,          text=          "Extrude Individual Faces"          )                                      3899                                                3900                    col.          operator          (          "mesh.inset"          )                                      3901                    col.          operator          (          "mesh.poke"          )                                      3902                                                3903                    if          selected_faces_len          >=          2          :                                      3904                    col.          operator          (          "mesh.bridge_edge_loops"          ,          text=          "Bridge Faces"          )                                      3905                                                3906                    col.          separator          ()                                      3907                                                3908                    # Modify Operators                                      3909                    col.          menu          (          "VIEW3D_MT_uv_map"          ,          text=          "UV Unwrap Faces"          )                                      3910                                                3911                    col.          separator          ()                                      3912                                                3913                    props          =          col.          operator          (          "mesh.quads_convert_to_tris"          )                                      3914                    props.quad_method          =          props.ngon_method          =          'BEAUTY'                                      3915                    col.          operator          (          "mesh.tris_convert_to_quads"          )                                      3916                                                3917                    col.          separator          ()                                      3918                                                3919                    col.          operator          (          "mesh.faces_shade_smooth"          )                                      3920                    col.          operator          (          "mesh.faces_shade_flat"          )                                      3921                                                3922                    col.          separator          ()                                      3923                                                3924                    # Removal Operators                                      3925                    col.          operator          (          "mesh.unsubdivide"          )                                      3926                    col.          operator          (          "mesh.split"          )                                      3927                    col.          operator_menu_enum          (          "mesh.separate"          ,          "type"          )                                      3928                    col.          operator          (          "mesh.dissolve_faces"          )                                      3929                    col.          operator          (          "mesh.delete"          ,          text=          "Delete Faces"          ).          type          =          'FACE'                                      3930                                                3931                                                3932                    class          VIEW3D_MT_edit_mesh_select_mode          (Menu):                                      3933                    bl_label          =          "Mesh Select Mode"                                      3934                                                3935                    def          draw          (self,          _context):                                      3936                    layout          =          self.layout                              3937                                                3938                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      3939                    layout.          operator          (          "mesh.select_mode"          ,          text=          "Vertex"          ,          icon=          'VERTEXSEL'          ).          type          =          'VERT'                                      3940                    layout.          operator          (          "mesh.select_mode"          ,          text=          "Edge"          ,          icon=          'EDGESEL'          ).          type          =          'EDGE'                                      3941                    layout.          operator          (          "mesh.select_mode"          ,          text=          "Face"          ,          icon=          'FACESEL'          ).          type          =          'FACE'                                      3942                                                3943                                                3944                    class          VIEW3D_MT_edit_mesh_extrude          (Menu):                                      3945                    bl_label          =          "Extrude"                                      3946                                                3947                    _extrude_funcs          = {                                      3948                    'VERT'          :          lambda          layout:                                      3949                    layout.          operator          (          "mesh.extrude_vertices_move"          ,          text=          "Extrude Vertices"          ),                                      3950                    'EDGE'          :          lambda          layout:                                      3951                    layout.          operator          (          "mesh.extrude_edges_move"          ,          text=          "Extrude Edges"          ),                                      3952                    'REGION'          :          lambda          layout:                                      3953                    layout.          operator          (          "view3d.edit_mesh_extrude_move_normal"          ,          text=          "Extrude Faces"          ),                                      3954                    'REGION_VERT_NORMAL'          :          lambda          layout:                                      3955                    layout.          operator          (          "view3d.edit_mesh_extrude_move_shrink_fatten"          ,          text=          "Extrude Faces Along Normals"          ),                                      3956                    'FACE'          :          lambda          layout:                                      3957                    layout.          operator          (          "mesh.extrude_faces_move"          ,          text=          "Extrude Individual Faces"          ),                                      3958                    'MANIFOLD'          :          lambda          layout:                                      3959                    layout.          operator          (          "view3d.edit_mesh_extrude_manifold_normal"          ,          text=          "Extrude Manifold"          ),                                      3960                    }                                      3961                                                3962                    @staticmethod                                      3963                    def          extrude_options          (context):                                      3964                    tool_settings          =          context.tool_settings                              3965                    select_mode          =          tool_settings.mesh_select_mode                              3966                    mesh          =          context.          object          .data                              3967                                                3968                    menu          = []                                      3969                    if          mesh.total_face_sel:                                      3970                    menu          += [          'REGION'          ,          'REGION_VERT_NORMAL'          ,          'FACE'          ,          'MANIFOLD'          ]                                      3971                    if          mesh.total_edge_sel          and          (select_mode[          0          ]          or          select_mode[          1          ]):                                      3972                    menu          += [          'EDGE'          ]                                      3973                    if          mesh.total_vert_sel          and          select_mode[          0          ]:                                      3974                    menu          += [          'VERT'          ]                                      3975                                                3976                    # should never get here                                      3977                    return          menu                              3978                                                3979                    def          draw          (self,          context):                                      3980                    from          math          import          pi                              3981                                                3982                    layout          =          self.layout                              3983                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      3984                                                3985                    for          menu_id          in          self.          extrude_options          (context):                                      3986                    self._extrude_funcs[menu_id](layout)                                      3987                                                3988                    layout.          separator          ()                                      3989                                                3990                    layout.          operator          (          "mesh.extrude_repeat"          )                                      3991                    layout.          operator          (          "mesh.spin"          ).angle          =          pi          *          2                                      3992                                                3993                                                3994                    class          VIEW3D_MT_edit_mesh_vertices          (Menu):                                      3995                    bl_label          =          "Vertex"                                      3996                                                3997                    def          draw          (self,          _context):                                      3998                    layout          =          self.layout                              3999                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      4000                                                4001                    layout.          operator          (          "mesh.extrude_vertices_move"          ,          text=          "Extrude Vertices"          )                                      4002                    layout.          operator          (          "mesh.dupli_extrude_cursor"          ).rotate_source          =          True                                      4003                    layout.          operator          (          "mesh.bevel"          ,          text=          "Bevel Vertices"          ).affect          =          'VERTICES'                                      4004                                                4005                    layout.          separator          ()                                      4006                                                4007                    layout.          operator          (          "mesh.edge_face_add"          ,          text=          "New Edge/Face from Vertices"          )                                      4008                    layout.          operator          (          "mesh.vert_connect_path"          ,          text=          "Connect Vertex Path"          )                                      4009                    layout.          operator          (          "mesh.vert_connect"          ,          text=          "Connect Vertex Pairs"          )                                      4010                                                4011                    layout.          separator          ()                                      4012                                                4013                    props          =          layout.          operator          (          "mesh.rip_move"          ,          text=          "Rip Vertices"          )                                      4014                    props.MESH_OT_rip.use_fill          =          False                                      4015                    props          =          layout.          operator          (          "mesh.rip_move"          ,          text=          "Rip Vertices and Fill"          )                                      4016                    props.MESH_OT_rip.use_fill          =          True                                      4017                    layout.          operator          (          "mesh.rip_edge_move"          ,          text=          "Rip Vertices and Extend"          )                                      4018                                                4019                    layout.          separator          ()                                      4020                                                4021                    layout.          operator          (          "transform.vert_slide"          ,          text=          "Slide Vertices"          )                                      4022                    layout.operator_context          =          'EXEC_REGION_WIN'                                      4023                    layout.          operator          (          "mesh.vertices_smooth"          ,          text=          "Smooth Vertices"          ).factor          =          0.5                                      4024                    layout.          operator          (          "mesh.vertices_smooth_laplacian"          ,          text=          "Smooth Vertices (Laplacian)"          )                                      4025                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      4026                                                4027                    layout.          separator          ()                                      4028                                                4029                    layout.          operator          (          "mesh.blend_from_shape"          )                                      4030                    layout.          operator          (          "mesh.shape_propagate_to_all"          ,          text=          "Propagate to Shapes"          )                                      4031                                                4032                    layout.          separator          ()                                      4033                                                4034                    layout.          menu          (          "VIEW3D_MT_vertex_group"          )                                      4035                    layout.          menu          (          "VIEW3D_MT_hook"          )                                      4036                                                4037                    layout.          separator          ()                                      4038                                                4039                    layout.          operator          (          "object.vertex_parent_set"          )                                      4040                                                4041                                                4042                    class          VIEW3D_MT_edit_mesh_edges          (Menu):                                      4043                    bl_label          =          "Edge"                                      4044                                                4045                    def          draw          (self,          _context):                                      4046                    layout          =          self.layout                              4047                                                4048                    with_freestyle          =          bpy.app.build_options.freestyle                              4049                                                4050                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      4051                                                4052                    layout.          operator          (          "mesh.extrude_edges_move"          ,          text=          "Extrude Edges"          )                                      4053                    layout.          operator          (          "mesh.bevel"          ,          text=          "Bevel Edges"          ).affect          =          'EDGES'                                      4054                    layout.          operator          (          "mesh.bridge_edge_loops"          )                                      4055                    layout.          operator          (          "mesh.screw"          )                                      4056                                                4057                    layout.          separator          ()                                      4058                                                4059                    layout.          operator          (          "mesh.subdivide"          )                                      4060                    layout.          operator          (          "mesh.subdivide_edgering"          )                                      4061                    layout.          operator          (          "mesh.unsubdivide"          )                                      4062                                                4063                    layout.          separator          ()                                      4064                                                4065                    layout.          operator          (          "mesh.edge_rotate"          ,          text=          "Rotate Edge CW"          ).use_ccw          =          False                                      4066                    layout.          operator          (          "mesh.edge_rotate"          ,          text=          "Rotate Edge CCW"          ).use_ccw          =          True                                      4067                                                4068                    layout.          separator          ()                                      4069                                                4070                    layout.          operator          (          "transform.edge_slide"          )                                      4071                    props          =          layout.          operator          (          "mesh.loopcut_slide"          )                                      4072                    props.TRANSFORM_OT_edge_slide.release_confirm          =          False                                      4073                    layout.          operator          (          "mesh.offset_edge_loops_slide"          )                                      4074                                                4075                    layout.          separator          ()                                      4076                                                4077                    layout.          operator          (          "transform.edge_crease"          )                                      4078                    layout.          operator          (          "transform.edge_bevelweight"          )                                      4079                                                4080                    layout.          separator          ()                                      4081                                                4082                    layout.          operator          (          "mesh.mark_seam"          ).clear          =          False                                      4083                    layout.          operator          (          "mesh.mark_seam"          ,          text=          "Clear Seam"          ).clear          =          True                                      4084                                                4085                    layout.          separator          ()                                      4086                                                4087                    layout.          operator          (          "mesh.mark_sharp"          )                                      4088                    layout.          operator          (          "mesh.mark_sharp"          ,          text=          "Clear Sharp"          ).clear          =          True                                      4089                                                4090                    layout.          operator          (          "mesh.mark_sharp"          ,          text=          "Mark Sharp from Vertices"          ).use_verts          =          True                                      4091                    props          =          layout.          operator          (          "mesh.mark_sharp"          ,          text=          "Clear Sharp from Vertices"          )                                      4092                    props.use_verts          =          True                                      4093                    props.clear          =          True                                      4094                                                4095                    if          with_freestyle:                                      4096                    layout.          separator          ()                                      4097                                                4098                    layout.          operator          (          "mesh.mark_freestyle_edge"          ).clear          =          False                                      4099                    layout.          operator          (          "mesh.mark_freestyle_edge"          ,          text=          "Clear Freestyle Edge"          ).clear          =          True                                      4100                                                4101                                                4102                    class          VIEW3D_MT_edit_mesh_faces_data          (Menu):                                      4103                    bl_label          =          "Face Data"                                      4104                                                4105                    def          draw          (self,          _context):                                      4106                    layout          =          self.layout                              4107                                                4108                    with_freestyle          =          bpy.app.build_options.freestyle                              4109                                                4110                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      4111                                                4112                    layout.          operator          (          "mesh.colors_rotate"          )                                      4113                    layout.          operator          (          "mesh.colors_reverse"          )                                      4114                                                4115                    layout.          separator          ()                                      4116                                                4117                    layout.          operator          (          "mesh.uvs_rotate"          )                                      4118                    layout.          operator          (          "mesh.uvs_reverse"          )                                      4119                                                4120                    layout.          separator          ()                                      4121                                                4122                    if          with_freestyle:                                      4123                    layout.          operator          (          "mesh.mark_freestyle_face"          ).clear          =          False                                      4124                    layout.          operator          (          "mesh.mark_freestyle_face"          ,          text=          "Clear Freestyle Face"          ).clear          =          True                                      4125                                                4126                                                4127                    class          VIEW3D_MT_edit_mesh_faces          (Menu):                                      4128                    bl_label          =          "Face"                                      4129                    bl_idname          =          "VIEW3D_MT_edit_mesh_faces"                                      4130                                                4131                    def          draw          (self,          _context):                                      4132                    layout          =          self.layout                              4133                                                4134                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      4135                                                4136                    layout.          operator          (          "view3d.edit_mesh_extrude_move_normal"          ,          text=          "Extrude Faces"          )                                      4137                    layout.          operator          (          "view3d.edit_mesh_extrude_move_shrink_fatten"          ,          text=          "Extrude Faces Along Normals"          )                                      4138                    layout.          operator          (          "mesh.extrude_faces_move"          ,          text=          "Extrude Individual Faces"          )                                      4139                                                4140                    layout.          separator          ()                                      4141                                                4142                    layout.          operator          (          "mesh.inset"          )                                      4143                    layout.          operator          (          "mesh.poke"          )                                      4144                    props          =          layout.          operator          (          "mesh.quads_convert_to_tris"          )                                      4145                    props.quad_method          =          props.ngon_method          =          'BEAUTY'                                      4146                    layout.          operator          (          "mesh.tris_convert_to_quads"          )                                      4147                    layout.          operator          (          "mesh.solidify"          ,          text=          "Solidify Faces"          )                                      4148                    layout.          operator          (          "mesh.wireframe"          )                                      4149                                                4150                    layout.          separator          ()                                      4151                                                4152                    layout.          operator          (          "mesh.fill"          )                                      4153                    layout.          operator          (          "mesh.fill_grid"          )                                      4154                    layout.          operator          (          "mesh.beautify_fill"          )                                      4155                                                4156                    layout.          separator          ()                                      4157                                                4158                    layout.          operator          (          "mesh.intersect"          )                                      4159                    layout.          operator          (          "mesh.intersect_boolean"          )                                      4160                                                4161                    layout.          separator          ()                                      4162                                                4163                    layout.          operator          (          "mesh.face_split_by_edges"          )                                      4164                                                4165                    layout.          separator          ()                                      4166                                                4167                    layout.          operator          (          "mesh.faces_shade_smooth"          )                                      4168                    layout.          operator          (          "mesh.faces_shade_flat"          )                                      4169                                                4170                    layout.          separator          ()                                      4171                                                4172                    layout.          menu          (          "VIEW3D_MT_edit_mesh_faces_data"          )                                      4173                                                4174                                                4175                    class          VIEW3D_MT_edit_mesh_normals_select_strength          (Menu):                                      4176                    bl_label          =          "Select by Face Strength"                                      4177                                                4178                    def          draw          (self,          _context):                                      4179                    layout          =          self.layout                              4180                                                4181                    op          =          layout.          operator          (          "mesh.mod_weighted_strength"          ,          text=          "Weak"          )                                      4182                    op.          set          =          False                                      4183                    op.face_strength          =          'WEAK'                                      4184                                                4185                    op          =          layout.          operator          (          "mesh.mod_weighted_strength"          ,          text=          "Medium"          )                                      4186                    op.          set          =          False                                      4187                    op.face_strength          =          'MEDIUM'                                      4188                                                4189                    op          =          layout.          operator          (          "mesh.mod_weighted_strength"          ,          text=          "Strong"          )                                      4190                    op.          set          =          False                                      4191                    op.face_strength          =          'STRONG'                                      4192                                                4193                                                4194                    class          VIEW3D_MT_edit_mesh_normals_set_strength          (Menu):                                      4195                    bl_label          =          "Set Face Strength"                                      4196                                                4197                    def          draw          (self,          _context):                                      4198                    layout          =          self.layout                              4199                                                4200                    op          =          layout.          operator          (          "mesh.mod_weighted_strength"          ,          text=          "Weak"          )                                      4201                    op.          set          =          True                                      4202                    op.face_strength          =          'WEAK'                                      4203                                                4204                    op          =          layout.          operator          (          "mesh.mod_weighted_strength"          ,          text=          "Medium"          )                                      4205                    op.          set          =          True                                      4206                    op.face_strength          =          'MEDIUM'                                      4207                                                4208                    op          =          layout.          operator          (          "mesh.mod_weighted_strength"          ,          text=          "Strong"          )                                      4209                    op.          set          =          True                                      4210                    op.face_strength          =          'STRONG'                                      4211                                                4212                                                4213                    class          VIEW3D_MT_edit_mesh_normals_average          (Menu):                                      4214                    bl_label          =          "Average"                                      4215                                                4216                    def          draw          (self,          _context):                                      4217                    layout          =          self.layout                              4218                                                4219                    layout.          operator          (          "mesh.average_normals"          ,          text=          "Custom Normal"          ).average_type          =          'CUSTOM_NORMAL'                                      4220                    layout.          operator          (          "mesh.average_normals"          ,          text=          "Face Area"          ).average_type          =          'FACE_AREA'                                      4221                    layout.          operator          (          "mesh.average_normals"          ,          text=          "Corner Angle"          ).average_type          =          'CORNER_ANGLE'                                      4222                                                4223                                                4224                    class          VIEW3D_MT_edit_mesh_normals          (Menu):                                      4225                    bl_label          =          "Normals"                                      4226                                                4227                    def          draw          (self,          _context):                                      4228                    layout          =          self.layout                              4229                                                4230                    layout.          operator          (          "mesh.flip_normals"          ,          text=          "Flip"          )                                      4231                    layout.          operator          (          "mesh.normals_make_consistent"          ,          text=          "Recalculate Outside"          ).inside          =          False                                      4232                    layout.          operator          (          "mesh.normals_make_consistent"          ,          text=          "Recalculate Inside"          ).inside          =          True                                      4233                                                4234                    layout.          separator          ()                                      4235                                                4236                    layout.          operator          (          "mesh.set_normals_from_faces"          ,          text=          "Set from Faces"          )                                      4237                                                4238                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      4239                    layout.          operator          (          "transform.rotate_normal"          ,          text=          "Rotate..."          )                                      4240                    layout.          operator          (          "mesh.point_normals"          ,          text=          "Point to Target..."          )                                      4241                    layout.operator_context          =          'EXEC_REGION_WIN'                                      4242                                                4243                    layout.          operator          (          "mesh.merge_normals"          ,          text=          "Merge"          )                                      4244                    layout.          operator          (          "mesh.split_normals"          ,          text=          "Split"          )                                      4245                    layout.          menu          (          "VIEW3D_MT_edit_mesh_normals_average"          ,          text=          "Average"          )                                      4246                                                4247                    layout.          separator          ()                                      4248                                                4249                    layout.          operator          (          "mesh.normals_tools"          ,          text=          "Copy Vectors"          ).mode          =          'COPY'                                      4250                    layout.          operator          (          "mesh.normals_tools"          ,          text=          "Paste Vectors"          ).mode          =          'PASTE'                                      4251                                                4252                    layout.          operator          (          "mesh.smooth_normals"          ,          text=          "Smooth Vectors"          )                                      4253                    layout.          operator          (          "mesh.normals_tools"          ,          text=          "Reset Vectors"          ).mode          =          'RESET'                                      4254                                                4255                    layout.          separator          ()                                      4256                                                4257                    layout.          menu          (          "VIEW3D_MT_edit_mesh_normals_select_strength"          )                                      4258                    layout.          menu          (          "VIEW3D_MT_edit_mesh_normals_set_strength"          )                                      4259                                                4260                                                4261                    class          VIEW3D_MT_edit_mesh_shading          (Menu):                                      4262                    bl_label          =          "Shading"                                      4263                                                4264                    def          draw          (self,          _context):                                      4265                    layout          =          self.layout                              4266                                                4267                    layout.          operator          (          "mesh.faces_shade_smooth"          ,          text=          "Smooth Faces"          )                                      4268                    layout.          operator          (          "mesh.faces_shade_flat"          ,          text=          "Flat Faces"          )                                      4269                                                4270                    layout.          separator          ()                                      4271                                                4272                    layout.          operator          (          "mesh.mark_sharp"          ,          text=          "Smooth Edges"          ).clear          =          True                                      4273                    layout.          operator          (          "mesh.mark_sharp"          ,          text=          "Sharp Edges"          )                                      4274                                                4275                    layout.          separator          ()                                      4276                                                4277                    props          =          layout.          operator          (          "mesh.mark_sharp"          ,          text=          "Smooth Vertices"          )                                      4278                    props.use_verts          =          True                                      4279                    props.clear          =          True                                      4280                                                4281                    layout.          operator          (          "mesh.mark_sharp"          ,          text=          "Sharp Vertices"          ).use_verts          =          True                                      4282                                                4283                                                4284                    class          VIEW3D_MT_edit_mesh_weights          (Menu):                                      4285                    bl_label          =          "Weights"                                      4286                                                4287                    def          draw          (self,          _context):                                      4288                    VIEW3D_MT_paint_weight.          draw_generic          (self.layout,          is_editmode=          True          )                                      4289                                                4290                                                4291                    class          VIEW3D_MT_edit_mesh_clean          (Menu):                                      4292                    bl_label          =          "Clean Up"                                      4293                                                4294                    def          draw          (self,          _context):                                      4295                    layout          =          self.layout                              4296                                                4297                    layout.          operator          (          "mesh.delete_loose"          )                                      4298                                                4299                    layout.          separator          ()                                      4300                                                4301                    layout.          operator          (          "mesh.decimate"          )                                      4302                    layout.          operator          (          "mesh.dissolve_degenerate"          )                                      4303                    layout.          operator          (          "mesh.dissolve_limited"          )                                      4304                    layout.          operator          (          "mesh.face_make_planar"          )                                      4305                                                4306                    layout.          separator          ()                                      4307                                                4308                    layout.          operator          (          "mesh.vert_connect_nonplanar"          )                                      4309                    layout.          operator          (          "mesh.vert_connect_concave"          )                                      4310                    layout.          operator          (          "mesh.remove_doubles"          )                                      4311                    layout.          operator          (          "mesh.fill_holes"          )                                      4312                                                4313                                                4314                    class          VIEW3D_MT_edit_mesh_delete          (Menu):                                      4315                    bl_label          =          "Delete"                                      4316                                                4317                    def          draw          (self,          _context):                                      4318                    layout          =          self.layout                              4319                                                4320                    layout.          operator_enum          (          "mesh.delete"          ,          "type"          )                                      4321                                                4322                    layout.          separator          ()                                      4323                                                4324                    layout.          operator          (          "mesh.dissolve_verts"          )                                      4325                    layout.          operator          (          "mesh.dissolve_edges"          )                                      4326                    layout.          operator          (          "mesh.dissolve_faces"          )                                      4327                                                4328                    layout.          separator          ()                                      4329                                                4330                    layout.          operator          (          "mesh.dissolve_limited"          )                                      4331                                                4332                    layout.          separator          ()                                      4333                                                4334                    layout.          operator          (          "mesh.edge_collapse"          )                                      4335                    layout.          operator          (          "mesh.delete_edgeloop"          ,          text=          "Edge Loops"          )                                      4336                                                4337                                                4338                    class          VIEW3D_MT_edit_mesh_merge          (Menu):                                      4339                    bl_label          =          "Merge"                                      4340                                                4341                    def          draw          (self,          _context):                                      4342                    layout          =          self.layout                              4343                                                4344                    layout.          operator_enum          (          "mesh.merge"          ,          "type"          )                                      4345                                                4346                    layout.          separator          ()                                      4347                                                4348                    layout.          operator          (          "mesh.remove_doubles"          ,          text=          "By Distance"          )                                      4349                                                4350                                                4351                    class          VIEW3D_MT_edit_mesh_split          (Menu):                                      4352                    bl_label          =          "Split"                                      4353                                                4354                    def          draw          (self,          _context):                                      4355                    layout          =          self.layout                              4356                                                4357                    layout.          operator          (          "mesh.split"          ,          text=          "Selection"          )                                      4358                                                4359                    layout.          separator          ()                                      4360                                                4361                    layout.          operator_enum          (          "mesh.edge_split"          ,          "type"          )                                      4362                                                4363                                                4364                    class          VIEW3D_MT_edit_mesh_showhide          (ShowHideMenu,          Menu):                                      4365                    _operator_name          =          "mesh"                                      4366                                                4367                                                4368                    class          VIEW3D_MT_edit_gpencil_delete          (Menu):                                      4369                    bl_label          =          "Delete"                                      4370                                                4371                    def          draw          (self,          _context):                                      4372                    layout          =          self.layout                              4373                                                4374                    layout.          operator_enum          (          "gpencil.delete"          ,          "type"          )                                      4375                                                4376                    layout.          separator          ()                                      4377                                                4378                    layout.          operator_enum          (          "gpencil.dissolve"          ,          "type"          )                                      4379                                                4380                    layout.          separator          ()                                      4381                                                4382                    layout.          operator          (          "gpencil.delete"          ,          text=          "Delete Active Keyframe (Active Layer)"          ).          type          =          'FRAME'                                      4383                    layout.          operator          (          "gpencil.active_frames_delete_all"          ,          text=          "Delete Active Keyframes (All Layers)"          )                                      4384                                                4385                    # Edit Curve                                      4386                    # draw_curve is used by VIEW3D_MT_edit_curve and VIEW3D_MT_edit_surface                                      4387                                                4388                                                4389                    def          draw_curve          (self,          _context):                                      4390                    layout          =          self.layout                              4391                                                4392                    layout.          menu          (          "VIEW3D_MT_transform"          )                                      4393                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      4394                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      4395                                                4396                    layout.          separator          ()                                      4397                                                4398                    layout.          operator          (          "curve.spin"          )                                      4399                    layout.          operator          (          "curve.duplicate_move"          )                                      4400                                                4401                    layout.          separator          ()                                      4402                                                4403                    layout.          operator          (          "curve.split"          )                                      4404                    layout.          operator          (          "curve.separate"          )                                      4405                                                4406                    layout.          separator          ()                                      4407                                                4408                    layout.          operator          (          "curve.cyclic_toggle"          )                                      4409                    layout.          operator_menu_enum          (          "curve.spline_type_set"          ,          "type"          )                                      4410                                                4411                    layout.          separator          ()                                      4412                                                4413                    layout.          menu          (          "VIEW3D_MT_edit_curve_showhide"          )                                      4414                    layout.          menu          (          "VIEW3D_MT_edit_curve_clean"          )                                      4415                    layout.          menu          (          "VIEW3D_MT_edit_curve_delete"          )                                      4416                                                4417                                                4418                    class          VIEW3D_MT_edit_curve          (Menu):                                      4419                    bl_label          =          "Curve"                                      4420                                                4421                    draw          =          draw_curve                              4422                                                4423                                                4424                    class          VIEW3D_MT_edit_curve_ctrlpoints          (Menu):                                      4425                    bl_label          =          "Control Points"                                      4426                                                4427                    def          draw          (self,          context):                                      4428                    layout          =          self.layout                              4429                                                4430                    edit_object          =          context.edit_object                              4431                                                4432                    if          edit_object.          type          in          {          'CURVE'          ,          'SURFACE'          }:                                      4433                    layout.          operator          (          "curve.extrude_move"          )                                      4434                    layout.          operator          (          "curve.vertex_add"          )                                      4435                                                4436                    layout.          separator          ()                                      4437                                                4438                    layout.          operator          (          "curve.make_segment"          )                                      4439                                                4440                    layout.          separator          ()                                      4441                                                4442                    if          edit_object.          type          ==          'CURVE'          :                                      4443                    layout.          operator          (          "transform.tilt"          )                                      4444                    layout.          operator          (          "curve.tilt_clear"          )                                      4445                                                4446                    layout.          separator          ()                                      4447                                                4448                    layout.          operator_menu_enum          (          "curve.handle_type_set"          ,          "type"          )                                      4449                    layout.          operator          (          "curve.normals_make_consistent"          )                                      4450                                                4451                    layout.          separator          ()                                      4452                                                4453                    layout.          operator          (          "curve.smooth"          )                                      4454                    if          edit_object.          type          ==          'CURVE'          :                                      4455                    layout.          operator          (          "curve.smooth_tilt"          )                                      4456                    layout.          operator          (          "curve.smooth_radius"          )                                      4457                    layout.          operator          (          "curve.smooth_weight"          )                                      4458                                                4459                    layout.          separator          ()                                      4460                                                4461                    layout.          menu          (          "VIEW3D_MT_hook"          )                                      4462                                                4463                    layout.          separator          ()                                      4464                                                4465                    layout.          operator          (          "object.vertex_parent_set"          )                                      4466                                                4467                                                4468                    class          VIEW3D_MT_edit_curve_segments          (Menu):                                      4469                    bl_label          =          "Segments"                                      4470                                                4471                    def          draw          (self,          _context):                                      4472                    layout          =          self.layout                              4473                                                4474                    layout.          operator          (          "curve.subdivide"          )                                      4475                    layout.          operator          (          "curve.switch_direction"          )                                      4476                                                4477                                                4478                    class          VIEW3D_MT_edit_curve_clean          (Menu):                                      4479                    bl_label          =          "Clean Up"                                      4480                                                4481                    def          draw          (self,          _context):                                      4482                    layout          =          self.layout                              4483                                                4484                    layout.          operator          (          "curve.decimate"          )                                      4485                                                4486                                                4487                    class          VIEW3D_MT_edit_curve_context_menu          (Menu):                                      4488                    bl_label          =          "Curve Context Menu"                                      4489                                                4490                    def          draw          (self,          _context):                                      4491                    # TODO(campbell): match mesh vertex menu.                                      4492                                                4493                    layout          =          self.layout                              4494                                                4495                    layout.operator_context          =          'INVOKE_DEFAULT'                                      4496                                                4497                    # Add                                      4498                    layout.          operator          (          "curve.subdivide"          )                                      4499                    layout.          operator          (          "curve.extrude_move"          )                                      4500                    layout.          operator          (          "curve.make_segment"          )                                      4501                    layout.          operator          (          "curve.duplicate_move"          )                                      4502                                                4503                    layout.          separator          ()                                      4504                                                4505                    # Transform                                      4506                    layout.          operator          (          "transform.transform"          ,          text=          "Radius"          ).mode          =          'CURVE_SHRINKFATTEN'                                      4507                    layout.          operator          (          "transform.tilt"          )                                      4508                    layout.          operator          (          "curve.tilt_clear"          )                                      4509                    layout.          operator          (          "curve.smooth"          )                                      4510                    layout.          operator          (          "curve.smooth_tilt"          )                                      4511                    layout.          operator          (          "curve.smooth_radius"          )                                      4512                                                4513                    layout.          separator          ()                                      4514                                                4515                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      4516                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      4517                                                4518                    layout.          separator          ()                                      4519                                                4520                    # Modify                                      4521                    layout.          operator_menu_enum          (          "curve.spline_type_set"          ,          "type"          )                                      4522                    layout.          operator_menu_enum          (          "curve.handle_type_set"          ,          "type"          )                                      4523                    layout.          operator          (          "curve.cyclic_toggle"          )                                      4524                    layout.          operator          (          "curve.switch_direction"          )                                      4525                                                4526                    layout.          separator          ()                                      4527                                                4528                    layout.          operator          (          "curve.normals_make_consistent"          )                                      4529                    layout.          operator          (          "curve.spline_weight_set"          )                                      4530                    layout.          operator          (          "curve.radius_set"          )                                      4531                                                4532                    layout.          separator          ()                                      4533                                                4534                    # Remove                                      4535                    layout.          operator          (          "curve.split"          )                                      4536                    layout.          operator          (          "curve.decimate"          )                                      4537                    layout.          operator          (          "curve.separate"          )                                      4538                    layout.          operator          (          "curve.dissolve_verts"          )                                      4539                    layout.          operator          (          "curve.delete"          ,          text=          "Delete Segment"          ).          type          =          'SEGMENT'                                      4540                    layout.          operator          (          "curve.delete"          ,          text=          "Delete Point"          ).          type          =          'VERT'                                      4541                                                4542                                                4543                    class          VIEW3D_MT_edit_curve_delete          (Menu):                                      4544                    bl_label          =          "Delete"                                      4545                                                4546                    def          draw          (self,          _context):                                      4547                    layout          =          self.layout                              4548                                                4549                    layout.          operator_enum          (          "curve.delete"          ,          "type"          )                                      4550                                                4551                    layout.          separator          ()                                      4552                                                4553                    layout.          operator          (          "curve.dissolve_verts"          )                                      4554                                                4555                                                4556                    class          VIEW3D_MT_edit_curve_showhide          (ShowHideMenu,          Menu):                                      4557                    _operator_name          =          "curve"                                      4558                                                4559                                                4560                    class          VIEW3D_MT_edit_surface          (Menu):                                      4561                    bl_label          =          "Surface"                                      4562                                                4563                    draw          =          draw_curve                              4564                                                4565                                                4566                    class          VIEW3D_MT_edit_font_chars          (Menu):                                      4567                    bl_label          =          "Special Characters"                                      4568                                                4569                    def          draw          (self,          _context):                                      4570                    layout          =          self.layout                              4571                                                4572                    layout.          operator          (          "font.text_insert"          ,          text=          "Copyright"          ).text          =          "\u00A9"                                      4573                    layout.          operator          (          "font.text_insert"          ,          text=          "Registered Trademark"          ).text          =          "\u00AE"                                      4574                                                4575                    layout.          separator          ()                                      4576                                                4577                    layout.          operator          (          "font.text_insert"          ,          text=          "Degree Sign"          ).text          =          "\u00B0"                                      4578                    layout.          operator          (          "font.text_insert"          ,          text=          "Multiplication Sign"          ).text          =          "\u00D7"                                      4579                    layout.          operator          (          "font.text_insert"          ,          text=          "Circle"          ).text          =          "\u008A"                                      4580                                                4581                    layout.          separator          ()                                      4582                                                4583                    layout.          operator          (          "font.text_insert"          ,          text=          "Superscript 1"          ).text          =          "\u00B9"                                      4584                    layout.          operator          (          "font.text_insert"          ,          text=          "Superscript 2"          ).text          =          "\u00B2"                                      4585                    layout.          operator          (          "font.text_insert"          ,          text=          "Superscript 3"          ).text          =          "\u00B3"                                      4586                                                4587                    layout.          separator          ()                                      4588                                                4589                    layout.          operator          (          "font.text_insert"          ,          text=          "Double >>"          ).text          =          "\u00BB"                                      4590                    layout.          operator          (          "font.text_insert"          ,          text=          "Double <<"          ).text          =          "\u00AB"                                      4591                    layout.          operator          (          "font.text_insert"          ,          text=          "Promillage"          ).text          =          "\u2030"                                      4592                                                4593                    layout.          separator          ()                                      4594                                                4595                    layout.          operator          (          "font.text_insert"          ,          text=          "Dutch Florin"          ).text          =          "\u00A4"                                      4596                    layout.          operator          (          "font.text_insert"          ,          text=          "British Pound"          ).text          =          "\u00A3"                                      4597                    layout.          operator          (          "font.text_insert"          ,          text=          "Japanese Yen"          ).text          =          "\u00A5"                                      4598                                                4599                    layout.          separator          ()                                      4600                                                4601                    layout.          operator          (          "font.text_insert"          ,          text=          "German S"          ).text          =          "\u00DF"                                      4602                    layout.          operator          (          "font.text_insert"          ,          text=          "Spanish Question Mark"          ).text          =          "\u00BF"                                      4603                    layout.          operator          (          "font.text_insert"          ,          text=          "Spanish Exclamation Mark"          ).text          =          "\u00A1"                                      4604                                                4605                                                4606                    class          VIEW3D_MT_edit_font_kerning          (Menu):                                      4607                    bl_label          =          "Kerning"                                      4608                                                4609                    def          draw          (self,          context):                                      4610                    layout          =          self.layout                              4611                                                4612                    ob          =          context.active_object                              4613                    text          =          ob.data                              4614                    kerning          =          text.edit_format.kerning                              4615                                                4616                    layout.          operator          (          "font.change_spacing"          ,          text=          "Decrease Kerning"          ).delta          = -          1                                      4617                    layout.          operator          (          "font.change_spacing"          ,          text=          "Increase Kerning"          ).delta          =          1                                      4618                    layout.          operator          (          "font.change_spacing"          ,          text=          "Reset Kerning"          ).delta          = -kerning                              4619                                                4620                                                4621                    class          VIEW3D_MT_edit_font_delete          (Menu):                                      4622                    bl_label          =          "Delete"                                      4623                                                4624                    def          draw          (self,          _context):                                      4625                    layout          =          self.layout                              4626                                                4627                    layout.          operator          (          "font.delete"          ,          text=          "Previous Character"          ).          type          =          'PREVIOUS_CHARACTER'                                      4628                    layout.          operator          (          "font.delete"          ,          text=          "Next Character"          ).          type          =          'NEXT_CHARACTER'                                      4629                    layout.          operator          (          "font.delete"          ,          text=          "Previous Word"          ).          type          =          'PREVIOUS_WORD'                                      4630                    layout.          operator          (          "font.delete"          ,          text=          "Next Word"          ).          type          =          'NEXT_WORD'                                      4631                                                4632                                                4633                    class          VIEW3D_MT_edit_font          (Menu):                                      4634                    bl_label          =          "Text"                                      4635                                                4636                    def          draw          (self,          _context):                                      4637                    layout          =          self.layout                              4638                                                4639                    layout.          operator          (          "font.text_cut"          ,          text=          "Cut"          )                                      4640                    layout.          operator          (          "font.text_copy"          ,          text=          "Copy"          ,          icon=          'COPYDOWN'          )                                      4641                    layout.          operator          (          "font.text_paste"          ,          text=          "Paste"          ,          icon=          'PASTEDOWN'          )                                      4642                                                4643                    layout.          separator          ()                                      4644                                                4645                    layout.          operator          (          "font.text_paste_from_file"          )                                      4646                                                4647                    layout.          separator          ()                                      4648                                                4649                    layout.          operator          (          "font.case_set"          ,          text=          "To Uppercase"          ).case          =          'UPPER'                                      4650                    layout.          operator          (          "font.case_set"          ,          text=          "To Lowercase"          ).case          =          'LOWER'                                      4651                                                4652                    layout.          separator          ()                                      4653                                                4654                    layout.          menu          (          "VIEW3D_MT_edit_font_chars"          )                                      4655                                                4656                    layout.          separator          ()                                      4657                                                4658                    layout.          operator          (          "font.style_toggle"          ,          text=          "Toggle Bold"          ,          icon=          'BOLD'          ).style          =          'BOLD'                                      4659                    layout.          operator          (          "font.style_toggle"          ,          text=          "Toggle Italic"          ,          icon=          'ITALIC'          ).style          =          'ITALIC'                                      4660                    layout.          operator          (          "font.style_toggle"          ,          text=          "Toggle Underline"          ,          icon=          'UNDERLINE'          ).style          =          'UNDERLINE'                                      4661                    layout.          operator          (          "font.style_toggle"          ,          text=          "Toggle Small Caps"          ,          icon=          'SMALL_CAPS'          ).style          =          'SMALL_CAPS'                                      4662                                                4663                    layout.          menu          (          "VIEW3D_MT_edit_font_kerning"          )                                      4664                                                4665                    layout.          separator          ()                                      4666                                                4667                    layout.          menu          (          "VIEW3D_MT_edit_font_delete"          )                                      4668                                                4669                                                4670                    class          VIEW3D_MT_edit_font_context_menu          (Menu):                                      4671                    bl_label          =          "Text Context Menu"                                      4672                                                4673                    def          draw          (self,          _context):                                      4674                    layout          =          self.layout                              4675                                                4676                    layout.operator_context          =          'INVOKE_DEFAULT'                                      4677                                                4678                    layout.          operator          (          "font.text_cut"          ,          text=          "Cut"          )                                      4679                    layout.          operator          (          "font.text_copy"          ,          text=          "Copy"          ,          icon=          'COPYDOWN'          )                                      4680                    layout.          operator          (          "font.text_paste"          ,          text=          "Paste"          ,          icon=          'PASTEDOWN'          )                                      4681                                                4682                    layout.          separator          ()                                      4683                                                4684                    layout.          operator          (          "font.select_all"          )                                      4685                                                4686                    layout.          separator          ()                                      4687                                                4688                    layout.          menu          (          "VIEW3D_MT_edit_font"          )                                      4689                                                4690                                                4691                    class          VIEW3D_MT_edit_meta          (Menu):                                      4692                    bl_label          =          "Metaball"                                      4693                                                4694                    def          draw          (self,          _context):                                      4695                    layout          =          self.layout                              4696                                                4697                    layout.          menu          (          "VIEW3D_MT_transform"          )                                      4698                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      4699                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      4700                                                4701                    layout.          separator          ()                                      4702                                                4703                    layout.          operator          (          "mball.duplicate_metaelems"          )                                      4704                                                4705                    layout.          separator          ()                                      4706                                                4707                    layout.          menu          (          "VIEW3D_MT_edit_meta_showhide"          )                                      4708                                                4709                    layout.operator_context          =          'EXEC_REGION_WIN'                                      4710                    layout.          operator          (          "mball.delete_metaelems"          ,          text=          "Delete"          )                                      4711                                                4712                                                4713                    class          VIEW3D_MT_edit_meta_showhide          (Menu):                                      4714                    bl_label          =          "Show/Hide"                                      4715                                                4716                    def          draw          (self,          _context):                                      4717                    layout          =          self.layout                              4718                                                4719                    layout.          operator          (          "mball.reveal_metaelems"          )                                      4720                    layout.          operator          (          "mball.hide_metaelems"          ,          text=          "Hide Selected"          ).unselected          =          False                                      4721                    layout.          operator          (          "mball.hide_metaelems"          ,          text=          "Hide Unselected"          ).unselected          =          True                                      4722                                                4723                                                4724                    class          VIEW3D_MT_edit_lattice          (Menu):                                      4725                    bl_label          =          "Lattice"                                      4726                                                4727                    def          draw          (self,          _context):                                      4728                    layout          =          self.layout                              4729                                                4730                    layout.          separator          ()                                      4731                                                4732                    layout.          menu          (          "VIEW3D_MT_transform"          )                                      4733                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      4734                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      4735                    layout.          operator_menu_enum          (          "lattice.flip"          ,          "axis"          )                                      4736                                                4737                    layout.          separator          ()                                      4738                                                4739                    layout.          operator          (          "lattice.make_regular"          )                                      4740                                                4741                    layout.          separator          ()                                      4742                                                4743                    layout.          operator          (          "object.vertex_parent_set"          )                                      4744                                                4745                                                4746                    class          VIEW3D_MT_edit_armature          (Menu):                                      4747                    bl_label          =          "Armature"                                      4748                                                4749                    def          draw          (self,          context):                                      4750                    layout          =          self.layout                              4751                                                4752                    edit_object          =          context.edit_object                              4753                    arm          =          edit_object.data                              4754                                                4755                    layout.          menu          (          "VIEW3D_MT_transform_armature"          )                                      4756                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      4757                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      4758                    layout.          menu          (          "VIEW3D_MT_edit_armature_roll"          )                                      4759                                                4760                    layout.          separator          ()                                      4761                                                4762                    layout.          operator          (          "armature.extrude_move"          )                                      4763                    layout.          operator          (          "armature.click_extrude"          )                                      4764                                                4765                    if          arm.use_mirror_x:                                      4766                    layout.          operator          (          "armature.extrude_forked"          )                                      4767                                                4768                    layout.          operator          (          "armature.duplicate_move"          )                                      4769                    layout.          operator          (          "armature.fill"          )                                      4770                                                4771                    layout.          separator          ()                                      4772                                                4773                    layout.          operator          (          "armature.split"          )                                      4774                    layout.          operator          (          "armature.separate"          )                                      4775                                                4776                    layout.          separator          ()                                      4777                                                4778                    layout.          operator          (          "armature.subdivide"          ,          text=          "Subdivide"          )                                      4779                    layout.          operator          (          "armature.switch_direction"          ,          text=          "Switch Direction"          )                                      4780                                                4781                    layout.          separator          ()                                      4782                                                4783                    layout.          operator          (          "armature.symmetrize"          )                                      4784                    layout.          menu          (          "VIEW3D_MT_edit_armature_names"          )                                      4785                                                4786                    layout.          separator          ()                                      4787                                                4788                    layout.operator_context          =          'INVOKE_DEFAULT'                                      4789                    layout.          operator          (          "armature.armature_layers"          )                                      4790                    layout.          operator          (          "armature.bone_layers"          )                                      4791                                                4792                    layout.          separator          ()                                      4793                                                4794                    layout.          menu          (          "VIEW3D_MT_edit_armature_parent"          )                                      4795                                                4796                    layout.          separator          ()                                      4797                                                4798                    layout.          menu          (          "VIEW3D_MT_bone_options_toggle"          ,          text=          "Bone Settings"          )                                      4799                                                4800                    layout.          separator          ()                                      4801                                                4802                    layout.          menu          (          "VIEW3D_MT_edit_armature_delete"          )                                      4803                                                4804                                                4805                    class          VIEW3D_MT_armature_context_menu          (Menu):                                      4806                    bl_label          =          "Armature Context Menu"                                      4807                                                4808                    def          draw          (self,          context):                                      4809                    layout          =          self.layout                              4810                                                4811                    edit_object          =          context.edit_object                              4812                    arm          =          edit_object.data                              4813                                                4814                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      4815                                                4816                    # Add                                      4817                    layout.          operator          (          "armature.subdivide"          ,          text=          "Subdivide"          )                                      4818                    layout.          operator          (          "armature.duplicate_move"          ,          text=          "Duplicate"          )                                      4819                    layout.          operator          (          "armature.extrude_move"          )                                      4820                    if          arm.use_mirror_x:                                      4821                    layout.          operator          (          "armature.extrude_forked"          )                                      4822                                                4823                    layout.          separator          ()                                      4824                                                4825                    layout.          operator          (          "armature.fill"          )                                      4826                                                4827                    layout.          separator          ()                                      4828                                                4829                    # Modify                                      4830                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      4831                    layout.          menu          (          "VIEW3D_MT_snap"          )                                      4832                    layout.          operator          (          "armature.symmetrize"          )                                      4833                    layout.          operator          (          "armature.switch_direction"          ,          text=          "Switch Direction"          )                                      4834                    layout.          menu          (          "VIEW3D_MT_edit_armature_names"          )                                      4835                                                4836                    layout.          separator          ()                                      4837                                                4838                    layout.          menu          (          "VIEW3D_MT_edit_armature_parent"          )                                      4839                                                4840                    layout.          separator          ()                                      4841                                                4842                    # Remove                                      4843                    layout.          operator          (          "armature.split"          )                                      4844                    layout.          operator          (          "armature.separate"          )                                      4845                    layout.          operator          (          "armature.dissolve"          )                                      4846                    layout.          operator          (          "armature.delete"          )                                      4847                                                4848                                                4849                    class          VIEW3D_MT_edit_armature_names          (Menu):                                      4850                    bl_label          =          "Names"                                      4851                                                4852                    def          draw          (self,          _context):                                      4853                    layout          =          self.layout                              4854                                                4855                    layout.operator_context          =          'EXEC_REGION_WIN'                                      4856                    layout.          operator          (          "armature.autoside_names"          ,          text=          "Auto-Name Left/Right"          ).          type          =          'XAXIS'                                      4857                    layout.          operator          (          "armature.autoside_names"          ,          text=          "Auto-Name Front/Back"          ).          type          =          'YAXIS'                                      4858                    layout.          operator          (          "armature.autoside_names"          ,          text=          "Auto-Name Top/Bottom"          ).          type          =          'ZAXIS'                                      4859                    layout.          operator          (          "armature.flip_names"          ,          text=          "Flip Names"          )                                      4860                                                4861                                                4862                    class          VIEW3D_MT_edit_armature_parent          (Menu):                                      4863                    bl_label          =          "Parent"                                      4864                                                4865                    def          draw          (self,          _context):                                      4866                    layout          =          self.layout                              4867                                                4868                    layout.          operator          (          "armature.parent_set"          ,          text=          "Make"          )                                      4869                    layout.          operator          (          "armature.parent_clear"          ,          text=          "Clear"          )                                      4870                                                4871                                                4872                    class          VIEW3D_MT_edit_armature_roll          (Menu):                                      4873                    bl_label          =          "Bone Roll"                                      4874                                                4875                    def          draw          (self,          _context):                                      4876                    layout          =          self.layout                              4877                                                4878                    layout.          operator_menu_enum          (          "armature.calculate_roll"          ,          "type"          )                                      4879                                                4880                    layout.          separator          ()                                      4881                                                4882                    layout.          operator          (          "transform.transform"          ,          text=          "Set Roll"          ).mode          =          'BONE_ROLL'                                      4883                    layout.          operator          (          "armature.roll_clear"          )                                      4884                                                4885                                                4886                    class          VIEW3D_MT_edit_armature_delete          (Menu):                                      4887                    bl_label          =          "Delete"                                      4888                                                4889                    def          draw          (self,          _context):                                      4890                    layout          =          self.layout                              4891                    layout.operator_context          =          'EXEC_AREA'                                      4892                                                4893                    layout.          operator          (          "armature.delete"          ,          text=          "Bones"          )                                      4894                                                4895                    layout.          separator          ()                                      4896                                                4897                    layout.          operator          (          "armature.dissolve"          ,          text=          "Dissolve Bones"          )                                      4898                                                4899                                                4900                    # ********** Grease Pencil menus **********                                      4901                    class          VIEW3D_MT_gpencil_autoweights          (Menu):                                      4902                    bl_label          =          "Generate Weights"                                      4903                                                4904                    def          draw          (self,          _context):                                      4905                    layout          =          self.layout                              4906                    layout.          operator          (          "gpencil.generate_weights"          ,          text=          "With Empty Groups"          ).mode          =          'NAME'                                      4907                    layout.          operator          (          "gpencil.generate_weights"          ,          text=          "With Automatic Weights"          ).mode          =          'AUTO'                                      4908                                                4909                                                4910                    class          VIEW3D_MT_gpencil_simplify          (Menu):                                      4911                    bl_label          =          "Simplify"                                      4912                                                4913                    def          draw          (self,          _context):                                      4914                    layout          =          self.layout                              4915                    layout.          operator          (          "gpencil.stroke_simplify_fixed"          ,          text=          "Fixed"          )                                      4916                    layout.          operator          (          "gpencil.stroke_simplify"          ,          text=          "Adaptive"          )                                      4917                    layout.          operator          (          "gpencil.stroke_sample"          ,          text=          "Sample"          )                                      4918                                                4919                                                4920                    class          VIEW3D_MT_draw_gpencil          (Menu):                                      4921                    bl_label          =          "Draw"                                      4922                                                4923                    def          draw          (self,          _context):                                      4924                                                4925                    layout          =          self.layout                              4926                                                4927                    layout.          menu          (          "GPENCIL_MT_layer_active"          ,          text=          "Active Layer"          )                                      4928                                                4929                    layout.          separator          ()                                      4930                                                4931                    layout.          menu          (          "VIEW3D_MT_gpencil_animation"          )                                      4932                    layout.          operator          (          "gpencil.interpolate_sequence"          ,          text=          "Interpolate Sequence"          )                                      4933                                                4934                    layout.          separator          ()                                      4935                                                4936                    layout.          menu          (          "VIEW3D_MT_edit_gpencil_showhide"          )                                      4937                    layout.          menu          (          "GPENCIL_MT_cleanup"          )                                      4938                                                4939                                                4940                    class          VIEW3D_MT_assign_material          (Menu):                                      4941                    bl_label          =          "Assign Material"                                      4942                                                4943                    def          draw          (self,          context):                                      4944                    layout          =          self.layout                              4945                    ob          =          context.active_object                              4946                    mat_active          =          ob.active_material                              4947                                                4948                    for          slot          in          ob.material_slots:                                      4949                    mat          =          slot.material                              4950                    if          mat:                                      4951                    layout.          operator          (          "gpencil.stroke_change_color"          ,          text=mat.name,                                      4952                    icon=          'LAYER_ACTIVE'          if          mat          ==          mat_active          else          'BLANK1'          ).material          =          mat.name                              4953                                                4954                                                4955                    class          VIEW3D_MT_edit_gpencil          (Menu):                                      4956                    bl_label          =          "Grease Pencil"                                      4957                                                4958                    def          draw          (self,          _context):                                      4959                    layout          =          self.layout                              4960                                                4961                    layout.          menu          (          "VIEW3D_MT_edit_gpencil_transform"          )                                      4962                    layout.          menu          (          "VIEW3D_MT_mirror"          )                                      4963                    layout.          menu          (          "GPENCIL_MT_snap"          )                                      4964                                                4965                    layout.          separator          ()                                      4966                                                4967                    layout.          menu          (          "GPENCIL_MT_layer_active"          ,          text=          "Active Layer"          )                                      4968                                                4969                    layout.          separator          ()                                      4970                                                4971                    layout.          menu          (          "VIEW3D_MT_gpencil_animation"          )                                      4972                    layout.          operator          (          "gpencil.interpolate_sequence"          ,          text=          "Interpolate Sequence"          )                                      4973                                                4974                    layout.          separator          ()                                      4975                                                4976                    # Cut, Copy, Paste                                      4977                    layout.          operator          (          "gpencil.duplicate_move"          ,          text=          "Duplicate"          )                                      4978                    layout.          operator          (          "gpencil.stroke_split"          ,          text=          "Split"          )                                      4979                    layout.          operator          (          "gpencil.copy"          ,          text=          "Copy"          ,          icon=          'COPYDOWN'          )                                      4980                    layout.          operator          (          "gpencil.paste"          ,          text=          "Paste"          ,          icon=          'PASTEDOWN'          ).          type          =          'ACTIVE'                                      4981                    layout.          operator          (          "gpencil.paste"          ,          text=          "Paste by Layer"          ).          type          =          'LAYER'                                      4982                                                4983                    layout.          separator          ()                                      4984                                                4985                    layout.          menu          (          "VIEW3D_MT_weight_gpencil"          )                                      4986                                                4987                    layout.          separator          ()                                      4988                                                4989                    layout.          menu          (          "VIEW3D_MT_edit_gpencil_showhide"          )                                      4990                                                4991                    layout.          operator_menu_enum          (          "gpencil.stroke_separate"          ,          "mode"          ,          text=          "Separate"          )                                      4992                    layout.          menu          (          "GPENCIL_MT_cleanup"          )                                      4993                                                4994                    layout.          separator          ()                                      4995                                                4996                    # Remove                                      4997                    layout.          menu          (          "VIEW3D_MT_edit_gpencil_delete"          )                                      4998                                                4999                                                5000                    class          VIEW3D_MT_edit_gpencil_stroke          (Menu):                                      5001                    bl_label          =          "Stroke"                                      5002                                                5003                    def          draw          (self,          context):                                      5004                    layout          =          self.layout                              5005                    settings          =          context.tool_settings.gpencil_sculpt                              5006                                                5007                    layout.          operator          (          "gpencil.stroke_subdivide"          ,          text=          "Subdivide"          ).only_selected          =          False                                      5008                    layout.          menu          (          "VIEW3D_MT_gpencil_simplify"          )                                      5009                    layout.          operator          (          "gpencil.stroke_trim"          ,          text=          "Trim"          )                                      5010                                                5011                    layout.          separator          ()                                      5012                                                5013                    layout.          operator_menu_enum          (          "gpencil.stroke_join"          ,          "type"          ,          text=          "Join"          )                                      5014                                                5015                    layout.          separator          ()                                      5016                                                5017                    layout.          menu          (          "GPENCIL_MT_move_to_layer"          )                                      5018                    layout.          menu          (          "VIEW3D_MT_assign_material"          )                                      5019                    layout.          operator          (          "gpencil.set_active_material"          ,          text=          "Set as Active Material"          )                                      5020                    layout.          operator_menu_enum          (          "gpencil.stroke_arrange"          ,          "direction"          ,          text=          "Arrange"          )                                      5021                                                5022                    layout.          separator          ()                                      5023                                                5024                    # Convert                                      5025                    op          =          layout.          operator          (          "gpencil.stroke_cyclical_set"          ,          text=          "Close"          )                                      5026                    op.          type          =          'CLOSE'                                      5027                    op.geometry          =          True                                      5028                    layout.          operator          (          "gpencil.stroke_cyclical_set"          ,          text=          "Toggle Cyclic"          ).          type          =          'TOGGLE'                                      5029                    layout.          operator_menu_enum          (          "gpencil.stroke_caps_set"          ,          text=          "Toggle Caps"          ,          property          =          "type"          )                                      5030                    layout.          operator          (          "gpencil.stroke_flip"          ,          text=          "Switch Direction"          )                                      5031                    layout.          prop          (settings,          "use_scale_thickness"          ,          text=          "Scale Thickness"          )                                      5032                                                5033                    layout.          separator          ()                                      5034                    layout.          operator          (          "gpencil.stroke_normalize"          ,          text=          "Normalize Thickness"          ).mode          =          'THICKNESS'                                      5035                    layout.          operator          (          "gpencil.stroke_normalize"          ,          text=          "Normalize Opacity"          ).mode          =          'OPACITY'                                      5036                                                5037                    layout.          separator          ()                                      5038                    layout.          operator          (          "gpencil.reset_transform_fill"          ,          text=          "Reset Fill Transform"          )                                      5039                                                5040                                                5041                    class          VIEW3D_MT_edit_gpencil_point          (Menu):                                      5042                    bl_label          =          "Point"                                      5043                                                5044                    def          draw          (self,          _context):                                      5045                    layout          =          self.layout                              5046                                                5047                    layout.          operator          (          "gpencil.extrude_move"          ,          text=          "Extrude"          )                                      5048                                                5049                    layout.          separator          ()                                      5050                                                5051                    layout.          operator          (          "gpencil.stroke_smooth"          ,          text=          "Smooth"          ).only_selected          =          True                                      5052                                                5053                    layout.          separator          ()                                      5054                                                5055                    layout.          operator          (          "gpencil.stroke_merge"          ,          text=          "Merge"          )                                      5056                                                5057                    # TODO: add new RIP operator                                      5058                                                5059                    layout.          separator          ()                                      5060                                                5061                    layout.          menu          (          "VIEW3D_MT_gpencil_vertex_group"          )                                      5062                                                5063                                                5064                    class          VIEW3D_MT_weight_gpencil          (Menu):                                      5065                    bl_label          =          "Weights"                                      5066                                                5067                    def          draw          (self,          _context):                                      5068                    layout          =          self.layout                              5069                                                5070                    layout.          operator          (          "gpencil.vertex_group_normalize_all"          ,          text=          "Normalize All"          )                                      5071                    layout.          operator          (          "gpencil.vertex_group_normalize"          ,          text=          "Normalize"          )                                      5072                                                5073                    layout.          separator          ()                                      5074                                                5075                    layout.          operator          (          "gpencil.vertex_group_invert"          ,          text=          "Invert"          )                                      5076                    layout.          operator          (          "gpencil.vertex_group_smooth"          ,          text=          "Smooth"          )                                      5077                                                5078                    layout.          separator          ()                                      5079                                                5080                    layout.          menu          (          "VIEW3D_MT_gpencil_autoweights"          )                                      5081                                                5082                                                5083                    class          VIEW3D_MT_gpencil_animation          (Menu):                                      5084                    bl_label          =          "Animation"                                      5085                                                5086                    @classmethod                                      5087                    def          poll          (cls,          context):                                      5088                    ob          =          context.active_object                              5089                    return          ob          and          ob.          type          ==          'GPENCIL'          and          ob.mode          !=          'OBJECT'                                      5090                                                5091                    def          draw          (self,          _context):                                      5092                    layout          =          self.layout                              5093                                                5094                    layout.          operator          (          "gpencil.blank_frame_add"          ,          text=          "Insert Blank Keyframe (Active Layer)"          )                                      5095                    layout.          operator          (          "gpencil.blank_frame_add"          ,          text=          "Insert Blank Keyframe (All Layers)"          ).all_layers          =          True                                      5096                                                5097                    layout.          separator          ()                                      5098                                                5099                    layout.          operator          (          "gpencil.frame_duplicate"          ,          text=          "Duplicate Active Keyframe (Active Layer)"          )                                      5100                    layout.          operator          (          "gpencil.frame_duplicate"          ,          text=          "Duplicate Active Keyframe (All Layers)"          ).mode          =          'ALL'                                      5101                                                5102                    layout.          separator          ()                                      5103                                                5104                    layout.          operator          (          "gpencil.delete"          ,          text=          "Delete Active Keyframe (Active Layer)"          ).          type          =          'FRAME'                                      5105                    layout.          operator          (          "gpencil.active_frames_delete_all"          ,          text=          "Delete Active Keyframes (All Layers)"          )                                      5106                                                5107                                                5108                    class          VIEW3D_MT_edit_gpencil_transform          (Menu):                                      5109                    bl_label          =          "Transform"                                      5110                                                5111                    def          draw          (self,          _context):                                      5112                    layout          =          self.layout                              5113                                                5114                    layout.          operator          (          "transform.translate"          )                                      5115                    layout.          operator          (          "transform.rotate"          )                                      5116                    layout.          operator          (          "transform.resize"          ,          text=          "Scale"          )                                      5117                                                5118                    layout.          separator          ()                                      5119                                                5120                    layout.          operator          (          "transform.bend"          ,          text=          "Bend"          )                                      5121                    layout.          operator          (          "transform.shear"          ,          text=          "Shear"          )                                      5122                    layout.          operator          (          "transform.tosphere"          ,          text=          "To Sphere"          )                                      5123                    layout.          operator          (          "transform.transform"          ,          text=          "Shrink/Fatten"          ).mode          =          'GPENCIL_SHRINKFATTEN'                                      5124                                                5125                                                5126                    class          VIEW3D_MT_edit_gpencil_showhide          (Menu):                                      5127                    bl_label          =          "Show/Hide"                                      5128                                                5129                    def          draw          (self,          _context):                                      5130                    layout          =          self.layout                              5131                                                5132                    layout.          operator          (          "gpencil.reveal"          ,          text=          "Show All Layers"          )                                      5133                                                5134                    layout.          separator          ()                                      5135                                                5136                    layout.          operator          (          "gpencil.hide"          ,          text=          "Hide Active Layer"          ).unselected          =          False                                      5137                    layout.          operator          (          "gpencil.hide"          ,          text=          "Hide Inactive Layers"          ).unselected          =          True                                      5138                                                5139                                                5140                    class          VIEW3D_MT_object_mode_pie          (Menu):                                      5141                    bl_label          =          "Mode"                                      5142                                                5143                    def          draw          (self,          _context):                                      5144                    layout          =          self.layout                              5145                                                5146                    pie          =          layout.          menu_pie          ()                                      5147                    pie.          operator_enum          (          "object.mode_set"          ,          "mode"          )                                      5148                                                5149                                                5150                    class          VIEW3D_MT_view_pie          (Menu):                                      5151                    bl_label          =          "View"                                      5152                    bl_idname          =          "VIEW3D_MT_view_pie"                                      5153                                                5154                    def          draw          (self,          _context):                                      5155                    layout          =          self.layout                              5156                                                5157                    pie          =          layout.          menu_pie          ()                                      5158                    pie.          operator_enum          (          "view3d.view_axis"          ,          "type"          )                                      5159                    pie.          operator          (          "view3d.view_camera"          ,          text=          "View Camera"          ,          icon=          'CAMERA_DATA'          )                                      5160                    pie.          operator          (          "view3d.view_selected"          ,          text=          "View Selected"          ,          icon=          'ZOOM_SELECTED'          )                                      5161                                                5162                                                5163                    class          VIEW3D_MT_transform_gizmo_pie          (Menu):                                      5164                    bl_label          =          "View"                                      5165                                                5166                    def          draw          (self,          context):                                      5167                    layout          =          self.layout                              5168                                                5169                    pie          =          layout.          menu_pie          ()                                      5170                    # 1: Left                                      5171                    pie.          operator          (          "view3d.transform_gizmo_set"          ,          text=          "Move"          ).          type          = {          'TRANSLATE'          }                                      5172                    # 2: Right                                      5173                    pie.          operator          (          "view3d.transform_gizmo_set"          ,          text=          "Rotate"          ).          type          = {          'ROTATE'          }                                      5174                    # 3: Down                                      5175                    pie.          operator          (          "view3d.transform_gizmo_set"          ,          text=          "Scale"          ).          type          = {          'SCALE'          }                                      5176                    # 4: Up                                      5177                    pie.          prop          (context.space_data,          "show_gizmo"          ,          text=          "Show Gizmos"          ,          icon=          'GIZMO'          )                                      5178                    # 5: Up/Left                                      5179                    pie.          operator          (          "view3d.transform_gizmo_set"          ,          text=          "All"          ).          type          = {          'TRANSLATE'          ,          'ROTATE'          ,          'SCALE'          }                                      5180                                                5181                                                5182                    class          VIEW3D_MT_shading_pie          (Menu):                                      5183                    bl_label          =          "Shading"                                      5184                                                5185                    def          draw          (self,          context):                                      5186                    layout          =          self.layout                              5187                    pie          =          layout.          menu_pie          ()                                      5188                                                5189                    view          =          context.space_data                              5190                                                5191                    pie.          prop          (view.shading,          "type"          ,          expand=          True          )                                      5192                                                5193                                                5194                    class          VIEW3D_MT_shading_ex_pie          (Menu):                                      5195                    bl_label          =          "Shading"                                      5196                                                5197                    def          draw          (self,          context):                                      5198                    layout          =          self.layout                              5199                    pie          =          layout.          menu_pie          ()                                      5200                                                5201                    view          =          context.space_data                              5202                                                5203                    pie.          prop_enum          (view.shading,          "type"          ,          value=          'WIREFRAME'          )                                      5204                    pie.          prop_enum          (view.shading,          "type"          ,          value=          'SOLID'          )                                      5205                                                5206                    # Note this duplicates "view3d.toggle_xray" logic, so we can see the active item: T58661.                                      5207                    if          context.pose_object:                                      5208                    pie.          prop          (view.overlay,          "show_xray_bone"          ,          icon=          'XRAY'          )                                      5209                    else          :                                      5210                    xray_active          = (                                      5211                    (context.mode          ==          'EDIT_MESH'          )          or                                      5212                    (view.shading.          type          in          {          'SOLID'          ,          'WIREFRAME'          })                                      5213                    )                                      5214                    if          xray_active:                                      5215                    sub          =          pie                              5216                    else          :                                      5217                    sub          =          pie.          row          ()                                      5218                    sub.active          =          False                                      5219                    sub.          prop          (                                      5220                    view.shading,                                      5221                    "show_xray_wireframe"          if          (view.shading.          type          ==          'WIREFRAME'          )          else          "show_xray"          ,                                      5222                    text=          "Toggle X-Ray"          ,                                      5223                    icon=          'XRAY'          ,                                      5224                    )                                      5225                                                5226                    pie.          prop          (view.overlay,          "show_overlays"          ,          text=          "Toggle Overlays"          ,          icon=          'OVERLAY'          )                                      5227                                                5228                    pie.          prop_enum          (view.shading,          "type"          ,          value=          'MATERIAL'          )                                      5229                    pie.          prop_enum          (view.shading,          "type"          ,          value=          'RENDERED'          )                                      5230                                                5231                                                5232                    class          VIEW3D_MT_pivot_pie          (Menu):                                      5233                    bl_label          =          "Pivot Point"                                      5234                                                5235                    def          draw          (self,          context):                                      5236                    layout          =          self.layout                              5237                    pie          =          layout.          menu_pie          ()                                      5238                    obj          =          context.active_object                              5239                    mode          =          context.mode                              5240                                                5241                    pie.          prop_enum          (context.scene.tool_settings,          "transform_pivot_point"          ,          value=          'BOUNDING_BOX_CENTER'          )                                      5242                    pie.          prop_enum          (context.scene.tool_settings,          "transform_pivot_point"          ,          value=          'CURSOR'          )                                      5243                    pie.          prop_enum          (context.scene.tool_settings,          "transform_pivot_point"          ,          value=          'INDIVIDUAL_ORIGINS'          )                                      5244                    pie.          prop_enum          (context.scene.tool_settings,          "transform_pivot_point"          ,          value=          'MEDIAN_POINT'          )                                      5245                    pie.          prop_enum          (context.scene.tool_settings,          "transform_pivot_point"          ,          value=          'ACTIVE_ELEMENT'          )                                      5246                    if          (obj          is None          )          or          (mode          in          {          'OBJECT'          ,          'POSE'          ,          'WEIGHT_PAINT'          }):                                      5247                    pie.          prop          (context.scene.tool_settings,          "use_transform_pivot_point_align"          )                                      5248                                                5249                                                5250                    class          VIEW3D_MT_orientations_pie          (Menu):                                      5251                    bl_label          =          "Orientation"                                      5252                                                5253                    def          draw          (self,          context):                                      5254                    layout          =          self.layout                              5255                    pie          =          layout.          menu_pie          ()                                      5256                    scene          =          context.scene                              5257                                                5258                    pie.          prop          (scene.transform_orientation_slots[          0          ],          "type"          ,          expand=          True          )                                      5259                                                5260                                                5261                    class          VIEW3D_MT_snap_pie          (Menu):                                      5262                    bl_label          =          "Snap"                                      5263                                                5264                    def          draw          (self,          _context):                                      5265                    layout          =          self.layout                              5266                    pie          =          layout.          menu_pie          ()                                      5267                                                5268                    pie.          operator          (          "view3d.snap_cursor_to_grid"          ,          text=          "Cursor to Grid"          ,          icon=          'CURSOR'          )                                      5269                    pie.          operator          (          "view3d.snap_selected_to_grid"          ,          text=          "Selection to Grid"          ,          icon=          'RESTRICT_SELECT_OFF'          )                                      5270                    pie.          operator          (          "view3d.snap_cursor_to_selected"          ,          text=          "Cursor to Selected"          ,          icon=          'CURSOR'          )                                      5271                    pie.          operator          (                                      5272                    "view3d.snap_selected_to_cursor"          ,                                      5273                    text=          "Selection to Cursor"          ,                                      5274                    icon=          'RESTRICT_SELECT_OFF'          ,                                      5275                    ).use_offset          =          False                                      5276                    pie.          operator          (                                      5277                    "view3d.snap_selected_to_cursor"          ,                                      5278                    text=          "Selection to Cursor (Keep Offset)"          ,                                      5279                    icon=          'RESTRICT_SELECT_OFF'          ,                                      5280                    ).use_offset          =          True                                      5281                    pie.          operator          (          "view3d.snap_selected_to_active"          ,          text=          "Selection to Active"          ,          icon=          'RESTRICT_SELECT_OFF'          )                                      5282                    pie.          operator          (          "view3d.snap_cursor_to_center"          ,          text=          "Cursor to World Origin"          ,          icon=          'CURSOR'          )                                      5283                    pie.          operator          (          "view3d.snap_cursor_to_active"          ,          text=          "Cursor to Active"          ,          icon=          'CURSOR'          )                                      5284                                                5285                                                5286                    class          VIEW3D_MT_proportional_editing_falloff_pie          (Menu):                                      5287                    bl_label          =          "Proportional Editing Falloff"                                      5288                                                5289                    def          draw          (self,          context):                                      5290                    layout          =          self.layout                              5291                    pie          =          layout.          menu_pie          ()                                      5292                    tool_settings          =          context.scene.tool_settings                              5293                                                5294                    pie.          prop          (tool_settings,          "proportional_edit_falloff"          ,          expand=          True          )                                      5295                                                5296                                                5297                    class          VIEW3D_MT_sculpt_mask_edit_pie          (Menu):                                      5298                    bl_label          =          "Mask Edit"                                      5299                                                5300                    def          draw          (self,          _context):                                      5301                    layout          =          self.layout                              5302                    pie          =          layout.          menu_pie          ()                                      5303                                                5304                    op          =          pie.          operator          (          "paint.mask_flood_fill"          ,          text=          'Invert Mask'          )                                      5305                    op.mode          =          'INVERT'                                      5306                    op          =          pie.          operator          (          "paint.mask_flood_fill"          ,          text=          'Clear Mask'          )                                      5307                    op.mode          =          'VALUE'                                      5308                    op.value          =          0.0                                      5309                    op          =          pie.          operator          (          "sculpt.mask_filter"          ,          text=          'Smooth Mask'          )                                      5310                    op.filter_type          =          'SMOOTH'                                      5311                    op.auto_iteration_count          =          True                                      5312                    op          =          pie.          operator          (          "sculpt.mask_filter"          ,          text=          'Sharpen Mask'          )                                      5313                    op.filter_type          =          'SHARPEN'                                      5314                    op.auto_iteration_count          =          True                                      5315                    op          =          pie.          operator          (          "sculpt.mask_filter"          ,          text=          'Grow Mask'          )                                      5316                    op.filter_type          =          'GROW'                                      5317                    op.auto_iteration_count          =          True                                      5318                    op          =          pie.          operator          (          "sculpt.mask_filter"          ,          text=          'Shrink Mask'          )                                      5319                    op.filter_type          =          'SHRINK'                                      5320                    op.auto_iteration_count          =          True                                      5321                    op          =          pie.          operator          (          "sculpt.mask_filter"          ,          text=          'Increase Contrast'          )                                      5322                    op.filter_type          =          'CONTRAST_INCREASE'                                      5323                    op.auto_iteration_count          =          False                                      5324                    op          =          pie.          operator          (          "sculpt.mask_filter"          ,          text=          'Decrease Contrast'          )                                      5325                    op.filter_type          =          'CONTRAST_DECREASE'                                      5326                    op.auto_iteration_count          =          False                                      5327                                                5328                                                5329                    class          VIEW3D_MT_sculpt_automasking_pie          (Menu):                                      5330                    bl_label          =          "Automasking"                                      5331                                                5332                    def          draw          (self,          context):                                      5333                    layout          =          self.layout                              5334                    pie          =          layout.          menu_pie          ()                                      5335                                                5336                    tool_settings          =          context.tool_settings                              5337                    sculpt          =          tool_settings.sculpt                              5338                                                5339                    pie.          prop          (sculpt,          "use_automasking_topology"          ,          text=          "Topology"          )                                      5340                    pie.          prop          (sculpt,          "use_automasking_face_sets"          ,          text=          "Face Sets"          )                                      5341                    pie.          prop          (sculpt,          "use_automasking_boundary_edges"          ,          text=          "Mesh Boundary"          )                                      5342                    pie.          prop          (sculpt,          "use_automasking_boundary_face_sets"          ,          text=          "Face Sets Boundary"          )                                      5343                                                5344                                                5345                    class          VIEW3D_MT_sculpt_face_sets_edit_pie          (Menu):                                      5346                                                5347                    bl_label          =          "Face Sets Edit"                                      5348                                                5349                    def          draw          (self,          _context):                                      5350                    layout          =          self.layout                              5351                    pie          =          layout.          menu_pie          ()                                      5352                                                5353                    op          =          pie.          operator          (          "sculpt.face_sets_create"          ,          text=          'Face Set from Masked'          )                                      5354                    op.mode          =          'MASKED'                                      5355                                                5356                    op          =          pie.          operator          (          "sculpt.face_sets_create"          ,          text=          'Face Set from Visible'          )                                      5357                    op.mode          =          'VISIBLE'                                      5358                                                5359                    op          =          pie.          operator          (          "sculpt.face_set_change_visibility"          ,          text=          'Invert Visible'          )                                      5360                    op.mode          =          'INVERT'                                      5361                                                5362                    op          =          pie.          operator          (          "sculpt.face_set_change_visibility"          ,          text=          'Show All'          )                                      5363                    op.mode          =          'SHOW_ALL'                                      5364                                                5365                                                5366                    class          VIEW3D_MT_wpaint_vgroup_lock_pie          (Menu):                                      5367                    bl_label          =          "Vertex Group Locks"                                      5368                                                5369                    def          draw          (self,          _context):                                      5370                    layout          =          self.layout                              5371                    pie          =          layout.          menu_pie          ()                                      5372                                                5373                    # 1: Left                                      5374                    op          =          pie.          operator          (          "object.vertex_group_lock"          ,          icon=          'LOCKED'          ,          text=          "Lock All"          )                                      5375                    op.action,          op.mask          =          'LOCK'          ,          'ALL'                                      5376                    # 2: Right                                      5377                    op          =          pie.          operator          (          "object.vertex_group_lock"          ,          icon=          'UNLOCKED'          ,          text=          "Unlock All"          )                                      5378                    op.action,          op.mask          =          'UNLOCK'          ,          'ALL'                                      5379                    # 3: Down                                      5380                    op          =          pie.          operator          (          "object.vertex_group_lock"          ,          icon=          'UNLOCKED'          ,          text=          "Unlock Selected"          )                                      5381                    op.action,          op.mask          =          'UNLOCK'          ,          'SELECTED'                                      5382                    # 4: Up                                      5383                    op          =          pie.          operator          (          "object.vertex_group_lock"          ,          icon=          'LOCKED'          ,          text=          "Lock Selected"          )                                      5384                    op.action,          op.mask          =          'LOCK'          ,          'SELECTED'                                      5385                    # 5: Up/Left                                      5386                    op          =          pie.          operator          (          "object.vertex_group_lock"          ,          icon=          'LOCKED'          ,          text=          "Lock Unselected"          )                                      5387                    op.action,          op.mask          =          'LOCK'          ,          'UNSELECTED'                                      5388                    # 6: Up/Right                                      5389                    op          =          pie.          operator          (          "object.vertex_group_lock"          ,          text=          "Lock Only Selected"          )                                      5390                    op.action,          op.mask          =          'LOCK'          ,          'INVERT_UNSELECTED'                                      5391                    # 7: Down/Left                                      5392                    op          =          pie.          operator          (          "object.vertex_group_lock"          ,          text=          "Lock Only Unselected"          )                                      5393                    op.action,          op.mask          =          'UNLOCK'          ,          'INVERT_UNSELECTED'                                      5394                    # 8: Down/Right                                      5395                    op          =          pie.          operator          (          "object.vertex_group_lock"          ,          text=          "Invert Locks"          )                                      5396                    op.action,          op.mask          =          'INVERT'          ,          'ALL'                                      5397                                                5398                                                5399                    # ********** Panel **********                                      5400                                                5401                                                5402                    class          VIEW3D_PT_active_tool          (Panel,          ToolActivePanelHelper):                                      5403                    bl_space_type          =          'VIEW_3D'                                      5404                    bl_region_type          =          'UI'                                      5405                    bl_category          =          "Tool"                                      5406                    # See comment below.                                      5407                    # bl_options = {'HIDE_HEADER'}                                      5408                                                5409                    # Don't show in properties editor.                                      5410                    @classmethod                                      5411                    def          poll          (cls,          context):                                      5412                    return          context.area.          type          ==          'VIEW_3D'                                      5413                                                5414                                                5415                    # FIXME(campbell): remove this second panel once 'HIDE_HEADER' works with category tabs,                                      5416                    # Currently pinning allows ordering headerless panels below panels with headers.                                      5417                    class          VIEW3D_PT_active_tool_duplicate          (Panel,          ToolActivePanelHelper):                                      5418                    bl_space_type          =          'VIEW_3D'                                      5419                    bl_region_type          =          'UI'                                      5420                    bl_category          =          "Tool"                                      5421                    bl_options          = {          'HIDE_HEADER'          }                                      5422                                                5423                    # Only show in properties editor.                                      5424                    @classmethod                                      5425                    def          poll          (cls,          context):                                      5426                    return          context.area.          type          !=          'VIEW_3D'                                      5427                                                5428                                                5429                    class          VIEW3D_PT_view3d_properties          (Panel):                                      5430                    bl_space_type          =          'VIEW_3D'                                      5431                    bl_region_type          =          'UI'                                      5432                    bl_category          =          "View"                                      5433                    bl_label          =          "View"                                      5434                                                5435                    def          draw          (self,          context):                                      5436                    layout          =          self.layout                              5437                                                5438                    view          =          context.space_data                              5439                                                5440                    layout.use_property_split          =          True                                      5441                    layout.use_property_decorate          =          False          # No animation.                                      5442                                                5443                    col          =          layout.          column          ()                                      5444                                                5445                    subcol          =          col.          column          ()                                      5446                    subcol.active          =          bool          (view.region_3d.view_perspective          !=          'CAMERA'          or          view.region_quadviews)                                      5447                    subcol.          prop          (view,          "lens"          ,          text=          "Focal Length"          )                                      5448                                                5449                    subcol          =          col.          column          (align=          True          )                                      5450                    subcol.          prop          (view,          "clip_start"          ,          text=          "Clip Start"          )                                      5451                    subcol.          prop          (view,          "clip_end"          ,          text=          "End"          )                                      5452                                                5453                    layout.          separator          ()                                      5454                                                5455                    col          =          layout.          column          (align=          False          ,          heading=          "Local Camera"          )                                      5456                    col.use_property_decorate          =          False                                      5457                    row          =          col.          row          (align=          True          )                                      5458                    sub          =          row.          row          (align=          True          )                                      5459                    sub.          prop          (view,          "use_local_camera"          ,          text=          ""          )                                      5460                    sub          =          sub.          row          (align=          True          )                                      5461                    sub.enabled          =          view.use_local_camera                              5462                    sub.          prop          (view,          "camera"          ,          text=          ""          )                                      5463                                                5464                    layout.          separator          ()                                      5465                                                5466                    col          =          layout.          column          (align=          True          )                                      5467                    col.          prop          (view,          "use_render_border"          )                                      5468                    col.active          =          view.region_3d.view_perspective          !=          'CAMERA'                                      5469                                                5470                                                5471                    class          VIEW3D_PT_view3d_lock          (Panel):                                      5472                    bl_space_type          =          'VIEW_3D'                                      5473                    bl_region_type          =          'UI'                                      5474                    bl_category          =          "View"                                      5475                    bl_label          =          "View Lock"                                      5476                    bl_parent_id          =          "VIEW3D_PT_view3d_properties"                                      5477                                                5478                    def          draw          (self,          context):                                      5479                    layout          =          self.layout                              5480                                                5481                    layout.use_property_split          =          True                                      5482                    layout.use_property_decorate          =          False          # No animation.                                      5483                                                5484                    view          =          context.space_data                              5485                                                5486                    col          =          layout.          column          (align=          True          )                                      5487                    sub          =          col.          column          ()                                      5488                    sub.active          =          bool          (view.region_3d.view_perspective          !=          'CAMERA'          or          view.region_quadviews)                                      5489                                                5490                    sub.          prop          (view,          "lock_object"          )                                      5491                    lock_object          =          view.lock_object                              5492                    if          lock_object:                                      5493                    if          lock_object.          type          ==          'ARMATURE'          :                                      5494                    sub.          prop_search          (                                      5495                    view,          "lock_bone"          ,          lock_object.data,                                      5496                    "edit_bones"          if          lock_object.mode          ==          'EDIT'                                      5497                    else          "bones"          ,                                      5498                    text=          "Bone"          ,                                      5499                    )                                      5500                                                5501                    col          =          layout.          column          (heading=          "Lock"          ,          align=          True          )                                      5502                    if not          lock_object:                                      5503                    col.          prop          (view,          "lock_cursor"          ,          text=          "To 3D Cursor"          )                                      5504                    col.          prop          (view,          "lock_camera"          ,          text=          "Camera to View"          )                                      5505                                                5506                                                5507                    class          VIEW3D_PT_view3d_cursor          (Panel):                                      5508                    bl_space_type          =          'VIEW_3D'                                      5509                    bl_region_type          =          'UI'                                      5510                    bl_category          =          "View"                                      5511                    bl_label          =          "3D Cursor"                                      5512                                                5513                    def          draw          (self,          context):                                      5514                    layout          =          self.layout                              5515                                                5516                    cursor          =          context.scene.cursor                              5517                                                5518                    layout.          column          ().          prop          (cursor,          "location"          ,          text=          "Location"          )                                      5519                    rotation_mode          =          cursor.rotation_mode                              5520                    if          rotation_mode          ==          'QUATERNION'          :                                      5521                    layout.          column          ().          prop          (cursor,          "rotation_quaternion"          ,          text=          "Rotation"          )                                      5522                    elif          rotation_mode          ==          'AXIS_ANGLE'          :                                      5523                    layout.          column          ().          prop          (cursor,          "rotation_axis_angle"          ,          text=          "Rotation"          )                                      5524                    else          :                                      5525                    layout.          column          ().          prop          (cursor,          "rotation_euler"          ,          text=          "Rotation"          )                                      5526                    layout.          prop          (cursor,          "rotation_mode"          ,          text=          ""          )                                      5527                                                5528                                                5529                    class          VIEW3D_PT_collections          (Panel):                                      5530                    bl_space_type          =          'VIEW_3D'                                      5531                    bl_region_type          =          'UI'                                      5532                    bl_category          =          "View"                                      5533                    bl_label          =          "Collections"                                      5534                    bl_options          = {          'DEFAULT_CLOSED'          }                                      5535                                                5536                    def          _draw_collection          (self,          layout,          view_layer,          use_local_collections,          collection,          index):                                      5537                    need_separator          =          index                              5538                    for          child          in          collection.children:                                      5539                    index          +=          1                                      5540                                                5541                    if          child.exclude:                                      5542                    continue                                      5543                                                5544                    if          child.collection.hide_viewport:                                      5545                    continue                                      5546                                                5547                    if          need_separator:                                      5548                    layout.          separator          ()                                      5549                    need_separator          =          False                                      5550                                                5551                    icon          =          'BLANK1'                                      5552                    # has_objects = True                                      5553                    if          child.          has_selected_objects          (view_layer):                                      5554                    icon          =          'LAYER_ACTIVE'                                      5555                    elif          child.          has_objects          ():                                      5556                    icon          =          'LAYER_USED'                                      5557                    else          :                                      5558                    # has_objects = False                                      5559                    pass                                      5560                                                5561                    row          =          layout.          row          ()                                      5562                    row.use_property_decorate          =          False                                      5563                    sub          =          row.          split          (factor=          0.98          )                                      5564                    subrow          =          sub.          row          ()                                      5565                    subrow.alignment          =          'LEFT'                                      5566                    subrow.          operator          (                                      5567                    "object.hide_collection"          ,          text=child.name,          icon=icon,          emboss=          False          ,                                      5568                    ).collection_index          =          index                              5569                                                5570                    sub          =          row.          split          ()                                      5571                    subrow          =          sub.          row          (align=          True          )                                      5572                    subrow.alignment          =          'RIGHT'                                      5573                    if not          use_local_collections:                                      5574                    subrow.active          =          collection.is_visible          # Parent collection runtime visibility                                      5575                    subrow.          prop          (child,          "hide_viewport"          ,          text=          ""          ,          emboss=          False          )                                      5576                    else          :                                      5577                    subrow.active          =          collection.          visible_get          ()          # Parent collection runtime visibility                                      5578                    icon          =          'HIDE_OFF'          if          child.          visible_get          ()          else          'HIDE_ON'                                      5579                    props          =          subrow.          operator          (          "object.hide_collection"          ,          text=          ""          ,          icon=icon,          emboss=          False          )                                      5580                    props.collection_index          =          index                              5581                    props.toggle          =          True                                      5582                                                5583                    for          child          in          collection.children:                                      5584                    index          =          self._draw_collection(layout,          view_layer,          use_local_collections,          child,          index)                                      5585                                                5586                    return          index                              5587                                                5588                    def          draw          (self,          context):                                      5589                    layout          =          self.layout                              5590                    layout.use_property_split          =          False                                      5591                                                5592                    view          =          context.space_data                              5593                    view_layer          =          context.view_layer                              5594                                                5595                    layout.use_property_split          =          True                                      5596                    layout.          prop          (view,          "use_local_collections"          )                                      5597                    layout.          separator          ()                                      5598                                                5599                    # We pass index 0 here because the index is increased                                      5600                    # so the first real index is 1                                      5601                    # And we start with index as 1 because we skip the master collection                                      5602                    self._draw_collection(layout,          view_layer,          view.use_local_collections,          view_layer.layer_collection,          0          )                                      5603                                                5604                                                5605                    class          VIEW3D_PT_object_type_visibility          (Panel):                                      5606                    bl_space_type          =          'VIEW_3D'                                      5607                    bl_region_type          =          'HEADER'                                      5608                    bl_label          =          "View Object Types"                                      5609                    bl_ui_units_x          =          7                                      5610                                                5611                    def          draw          (self,          context):                                      5612                    layout          =          self.layout                              5613                    layout.use_property_split          =          True                                      5614                    layout.use_property_decorate          =          False                                      5615                                                5616                    view          =          context.space_data                              5617                                                5618                    layout.          label          (text=          "Object Types Visibility"          )                                      5619                    layout.          separator          ()                                      5620                    col          =          layout.          column          ()                                      5621                                                5622                    attr_object_types          = (                                      5623                    # Geometry                                      5624                    (          "mesh"          ,          "Mesh"          ),                                      5625                    (          "curve"          ,          "Curve"          ),                                      5626                    (          "surf"          ,          "Surface"          ),                                      5627                    (          "meta"          ,          "Meta"          ),                                      5628                    (          "font"          ,          "Text"          ),                                      5629                    (          "hair"          ,          "Hair"          ),                                      5630                    (          "pointcloud"          ,          "Point Cloud"          ),                                      5631                    (          "volume"          ,          "Volume"          ),                                      5632                    (          "grease_pencil"          ,          "Grease Pencil"          ),                                      5633                    (          None          ,          None          ),                                      5634                    # Other                                      5635                    (          "armature"          ,          "Armature"          ),                                      5636                    (          "lattice"          ,          "Lattice"          ),                                      5637                    (          "empty"          ,          "Empty"          ),                                      5638                    (          "light"          ,          "Light"          ),                                      5639                    (          "light_probe"          ,          "Light Probe"          ),                                      5640                    (          "camera"          ,          "Camera"          ),                                      5641                    (          "speaker"          ,          "Speaker"          ),                                      5642                    )                                      5643                                                5644                    for          attr,          attr_name          in          attr_object_types:                                      5645                    if          attr          is None          :                                      5646                    col.          separator          ()                                      5647                    continue                                      5648                                                5649                    if          attr          ==          "hair"          and not          hasattr          (bpy.data,          "hairs"          ):                                      5650                    continue                                      5651                    elif          attr          ==          "pointcloud"          and not          hasattr          (bpy.data,          "pointclouds"          ):                                      5652                    continue                                      5653                                                5654                    attr_v          =          "show_object_viewport_"          +          attr                              5655                    attr_s          =          "show_object_select_"          +          attr                              5656                                                5657                    icon_v          =          'HIDE_OFF'          if          getattr          (view,          attr_v)          else          'HIDE_ON'                                      5658                    icon_s          =          'RESTRICT_SELECT_OFF'          if          getattr          (view,          attr_s)          else          'RESTRICT_SELECT_ON'                                      5659                                                5660                    row          =          col.          row          (align=          True          )                                      5661                    row.alignment          =          'RIGHT'                                      5662                                                5663                    row.          label          (text=attr_name)                                      5664                    row.          prop          (view,          attr_v,          text=          ""          ,          icon=icon_v,          emboss=          False          )                                      5665                    rowsub          =          row.          row          (align=          True          )                                      5666                    rowsub.active          =          getattr          (view,          attr_v)                                      5667                    rowsub.          prop          (view,          attr_s,          text=          ""          ,          icon=icon_s,          emboss=          False          )                                      5668                                                5669                                                5670                    class          VIEW3D_PT_shading          (Panel):                                      5671                    bl_space_type          =          'VIEW_3D'                                      5672                    bl_region_type          =          'HEADER'                                      5673                    bl_label          =          "Shading"                                      5674                    bl_ui_units_x          =          12                                      5675                                                5676                    @classmethod                                      5677                    def          get_shading          (cls,          context):                                      5678                    # Get settings from 3D viewport or OpenGL render engine                                      5679                    view          =          context.space_data                              5680                    if          view.          type          ==          'VIEW_3D'          :                                      5681                    return          view.shading                              5682                    else          :                                      5683                    return          context.scene.display.shading                              5684                                                5685                    def          draw          (self,          _context):                                      5686                    layout          =          self.layout                              5687                    layout.          label          (text=          "Viewport Shading"          )                                      5688                                                5689                                                5690                    class          VIEW3D_PT_shading_lighting          (Panel):                                      5691                    bl_space_type          =          'VIEW_3D'                                      5692                    bl_region_type          =          'HEADER'                                      5693                    bl_label          =          "Lighting"                                      5694                    bl_parent_id          =          'VIEW3D_PT_shading'                                      5695                                                5696                    @classmethod                                      5697                    def          poll          (cls,          context):                                      5698                    shading          =          VIEW3D_PT_shading.          get_shading          (context)                                      5699                    engine          =          context.scene.render.engine                              5700                    return          shading.          type          in          {          'SOLID'          ,          'MATERIAL'          }          or          engine          ==          'BLENDER_EEVEE'          and          shading.          type          ==          'RENDERED'                                      5701                                                5702                    def          draw          (self,          context):                                      5703                    layout          =          self.layout                              5704                    shading          =          VIEW3D_PT_shading.          get_shading          (context)                                      5705                                                5706                    col          =          layout.          column          ()                                      5707                    split          =          col.          split          (factor=          0.9          )                                      5708                                                5709                    if          shading.          type          ==          'SOLID'          :                                      5710                    split.          row          ().          prop          (shading,          "light"          ,          expand=          True          )                                      5711                    col          =          split.          column          ()                                      5712                                                5713                    split          =          layout.          split          (factor=          0.9          )                                      5714                    col          =          split.          column          ()                                      5715                    sub          =          col.          row          ()                                      5716                                                5717                    if          shading.light          ==          'STUDIO'          :                                      5718                    prefs          =          context.preferences                              5719                    system          =          prefs.system                              5720                                                5721                    if not          system.use_studio_light_edit:                                      5722                    sub.scale_y          =          0.6          # smaller studiolight preview                                      5723                    sub.          template_icon_view          (shading,          "studio_light"          ,          scale_popup=          3.0          )                                      5724                    else          :                                      5725                    sub.          prop          (                                      5726                    system,                                      5727                    "use_studio_light_edit"          ,                                      5728                    text=          "Disable Studio Light Edit"          ,                                      5729                    icon=          'NONE'          ,                                      5730                    toggle=          True          ,                                      5731                    )                                      5732                                                5733                    col          =          split.          column          ()                                      5734                    col.          operator          (          "preferences.studiolight_show"          ,          emboss=          False          ,          text=          ""          ,          icon=          'PREFERENCES'          )                                      5735                                                5736                    split          =          layout.          split          (factor=          0.9          )                                      5737                    col          =          split.          column          ()                                      5738                                                5739                    row          =          col.          row          ()                                      5740                    row.          prop          (shading,          "use_world_space_lighting"          ,          text=          ""          ,          icon=          'WORLD'          ,          toggle=          True          )                                      5741                    row          =          row.          row          ()                                      5742                    row.active          =          shading.use_world_space_lighting                              5743                    row.          prop          (shading,          "studiolight_rotate_z"          ,          text=          "Rotation"          )                                      5744                    col          =          split.          column          ()          # to align properly with above                                      5745                                                5746                    elif          shading.light          ==          'MATCAP'          :                                      5747                    sub.scale_y          =          0.6          # smaller matcap preview                                      5748                    sub.          template_icon_view          (shading,          "studio_light"          ,          scale_popup=          3.0          )                                      5749                                                5750                    col          =          split.          column          ()                                      5751                    col.          operator          (          "preferences.studiolight_show"          ,          emboss=          False          ,          text=          ""          ,          icon=          'PREFERENCES'          )                                      5752                    col.          operator          (          "view3d.toggle_matcap_flip"          ,          emboss=          False          ,          text=          ""          ,          icon=          'ARROW_LEFTRIGHT'          )                                      5753                                                5754                    elif          shading.          type          ==          'MATERIAL'          :                                      5755                    col.          prop          (shading,          "use_scene_lights"          )                                      5756                    col.          prop          (shading,          "use_scene_world"          )                                      5757                    col          =          layout.          column          ()                                      5758                    split          =          col.          split          (factor=          0.9          )                                      5759                                                5760                    if not          shading.use_scene_world:                                      5761                    col          =          split.          column          ()                                      5762                    sub          =          col.          row          ()                                      5763                    sub.scale_y          =          0.6                                      5764                    sub.          template_icon_view          (shading,          "studio_light"          ,          scale_popup=          3          )                                      5765                                                5766                    col          =          split.          column          ()                                      5767                    col.          operator          (          "preferences.studiolight_show"          ,          emboss=          False          ,          text=          ""          ,          icon=          'PREFERENCES'          )                                      5768                                                5769                    split          =          layout.          split          (factor=          0.9          )                                      5770                    col          =          split.          column          ()                                      5771                                                5772                    row          =          col.          row          ()                                      5773                    row.          prop          (shading,          "use_studiolight_view_rotation"          ,          text=          ""          ,          icon=          'WORLD'          ,          toggle=          True          )                                      5774                    row          =          row.          row          ()                                      5775                    row.          prop          (shading,          "studiolight_rotate_z"          ,          text=          "Rotation"          )                                      5776                                                5777                    col.          prop          (shading,          "studiolight_intensity"          )                                      5778                    col.          prop          (shading,          "studiolight_background_alpha"          )                                      5779                    col.          prop          (shading,          "studiolight_background_blur"          )                                      5780                    col          =          split.          column          ()          # to align properly with above                                      5781                                                5782                    elif          shading.          type          ==          'RENDERED'          :                                      5783                    col.          prop          (shading,          "use_scene_lights_render"          )                                      5784                    col.          prop          (shading,          "use_scene_world_render"          )                                      5785                                                5786                    if not          shading.use_scene_world_render:                                      5787                    col          =          layout.          column          ()                                      5788                    split          =          col.          split          (factor=          0.9          )                                      5789                                                5790                    col          =          split.          column          ()                                      5791                    sub          =          col.          row          ()                                      5792                    sub.scale_y          =          0.6                                      5793                    sub.          template_icon_view          (shading,          "studio_light"          ,          scale_popup=          3          )                                      5794                                                5795                    col          =          split.          column          ()                                      5796                    col.          operator          (          "preferences.studiolight_show"          ,          emboss=          False          ,          text=          ""          ,          icon=          'PREFERENCES'          )                                      5797                                                5798                    split          =          layout.          split          (factor=          0.9          )                                      5799                    col          =          split.          column          ()                                      5800                    col.          prop          (shading,          "studiolight_rotate_z"          ,          text=          "Rotation"          )                                      5801                    col.          prop          (shading,          "studiolight_intensity"          )                                      5802                    col.          prop          (shading,          "studiolight_background_alpha"          )                                      5803                    col.          prop          (shading,          "studiolight_background_blur"          )                                      5804                    col          =          split.          column          ()          # to align properly with above                                      5805                                                5806                                                5807                    class          VIEW3D_PT_shading_color          (Panel):                                      5808                    bl_space_type          =          'VIEW_3D'                                      5809                    bl_region_type          =          'HEADER'                                      5810                    bl_label          =          "Color"                                      5811                    bl_parent_id          =          'VIEW3D_PT_shading'                                      5812                                                5813                    @classmethod                                      5814                    def          poll          (cls,          context):                                      5815                    shading          =          VIEW3D_PT_shading.          get_shading          (context)                                      5816                    return          shading.          type          in          {          'WIREFRAME'          ,          'SOLID'          }                                      5817                                                5818                    def          _draw_color_type          (self,          context):                                      5819                    layout          =          self.layout                              5820                    shading          =          VIEW3D_PT_shading.          get_shading          (context)                                      5821                                                5822                    layout.          grid_flow          (columns=          3          ,          align=          True          ).          prop          (shading,          "color_type"          ,          expand=          True          )                                      5823                    if          shading.color_type          ==          'SINGLE'          :                                      5824                    layout.          row          ().          prop          (shading,          "single_color"          ,          text=          ""          )                                      5825                                                5826                    def          _draw_background_color          (self,          context):                                      5827                    layout          =          self.layout                              5828                    shading          =          VIEW3D_PT_shading.          get_shading          (context)                                      5829                                                5830                    layout.          row          ().          label          (text=          "Background"          )                                      5831                    layout.          row          ().          prop          (shading,          "background_type"          ,          expand=          True          )                                      5832                    if          shading.background_type          ==          'VIEWPORT'          :                                      5833                    layout.          row          ().          prop          (shading,          "background_color"          ,          text=          ""          )                                      5834                                                5835                    def          draw          (self,          context):                                      5836                    shading          =          VIEW3D_PT_shading.          get_shading          (context)                                      5837                    if          shading.          type          ==          'WIREFRAME'          :                                      5838                    self.layout.          row          ().          prop          (shading,          "wireframe_color_type"          ,          expand=          True          )                                      5839                    else          :                                      5840                    self._draw_color_type(context)                                      5841                    self.layout.          separator          ()                                      5842                    self._draw_background_color(context)                                      5843                                                5844                                                5845                    class          VIEW3D_PT_shading_options          (Panel):                                      5846                    bl_space_type          =          'VIEW_3D'                                      5847                    bl_region_type          =          'HEADER'                                      5848                    bl_label          =          "Options"                                      5849                    bl_parent_id          =          'VIEW3D_PT_shading'                                      5850                                                5851                    @classmethod                                      5852                    def          poll          (cls,          context):                                      5853                    shading          =          VIEW3D_PT_shading.          get_shading          (context)                                      5854                    return          shading.          type          in          {          'WIREFRAME'          ,          'SOLID'          }                                      5855                                                5856                    def          draw          (self,          context):                                      5857                    layout          =          self.layout                              5858                                                5859                    shading          =          VIEW3D_PT_shading.          get_shading          (context)                                      5860                                                5861                    col          =          layout.          column          ()                                      5862                                                5863                    if          shading.          type          ==          'SOLID'          :                                      5864                    col.          prop          (shading,          "show_backface_culling"          )                                      5865                                                5866                    row          =          col.          row          (align=          True          )                                      5867                                                5868                    if          shading.          type          ==          'WIREFRAME'          :                                      5869                    row.          prop          (shading,          "show_xray_wireframe"          ,          text=          ""          )                                      5870                    sub          =          row.          row          ()                                      5871                    sub.active          =          shading.show_xray_wireframe                              5872                    sub.          prop          (shading,          "xray_alpha_wireframe"          ,          text=          "X-Ray"          )                                      5873                    elif          shading.          type          ==          'SOLID'          :                                      5874                    row.          prop          (shading,          "show_xray"          ,          text=          ""          )                                      5875                    sub          =          row.          row          ()                                      5876                    sub.active          =          shading.show_xray                              5877                    sub.          prop          (shading,          "xray_alpha"          ,          text=          "X-Ray"          )                                      5878                    # X-ray mode is off when alpha is 1.0                                      5879                    xray_active          =          shading.show_xray          and          shading.xray_alpha          !=          1                                      5880                                                5881                    row          =          col.          row          (align=          True          )                                      5882                    row.          prop          (shading,          "show_shadows"          ,          text=          ""          )                                      5883                    row.active          =          not          xray_active                              5884                    sub          =          row.          row          (align=          True          )                                      5885                    sub.active          =          shading.show_shadows                              5886                    sub.          prop          (shading,          "shadow_intensity"          ,          text=          "Shadow"          )                                      5887                    sub.          popover          (                                      5888                    panel=          "VIEW3D_PT_shading_options_shadow"          ,                                      5889                    icon=          'PREFERENCES'          ,                                      5890                    text=          ""          ,                                      5891                    )                                      5892                                                5893                    col          =          layout.          column          ()                                      5894                                                5895                    row          =          col.          row          ()                                      5896                    row.active          =          not          xray_active                              5897                    row.          prop          (shading,          "show_cavity"          )                                      5898                                                5899                    if          shading.show_cavity          and not          xray_active:                                      5900                    row.          prop          (shading,          "cavity_type"          ,          text=          "Type"          )                                      5901                                                5902                    if          shading.cavity_type          in          {          'WORLD'          ,          'BOTH'          }:                                      5903                    col.          label          (text=          "World Space"          )                                      5904                    sub          =          col.          row          (align=          True          )                                      5905                    sub.          prop          (shading,          "cavity_ridge_factor"          ,          text=          "Ridge"          )                                      5906                    sub.          prop          (shading,          "cavity_valley_factor"          ,          text=          "Valley"          )                                      5907                    sub.          popover          (                                      5908                    panel=          "VIEW3D_PT_shading_options_ssao"          ,                                      5909                    icon=          'PREFERENCES'          ,                                      5910                    text=          ""          ,                                      5911                    )                                      5912                                                5913                    if          shading.cavity_type          in          {          'SCREEN'          ,          'BOTH'          }:                                      5914                    col.          label          (text=          "Screen Space"          )                                      5915                    sub          =          col.          row          (align=          True          )                                      5916                    sub.          prop          (shading,          "curvature_ridge_factor"          ,          text=          "Ridge"          )                                      5917                    sub.          prop          (shading,          "curvature_valley_factor"          ,          text=          "Valley"          )                                      5918                                                5919                    row          =          col.          row          ()                                      5920                    row.active          =          not          xray_active                              5921                    row.          prop          (shading,          "use_dof"          ,          text=          "Depth of Field"          )                                      5922                                                5923                    if          shading.          type          in          {          'WIREFRAME'          ,          'SOLID'          }:                                      5924                    row          =          layout.          split          ()                                      5925                    row.          prop          (shading,          "show_object_outline"          )                                      5926                    sub          =          row.          row          ()                                      5927                    sub.active          =          shading.show_object_outline                              5928                    sub.          prop          (shading,          "object_outline_color"          ,          text=          ""          )                                      5929                                                5930                    if          shading.          type          ==          'SOLID'          :                                      5931                    col          =          layout.          column          ()                                      5932                    if          shading.light          in          {          'STUDIO'          ,          'MATCAP'          }:                                      5933                    col.active          =          shading.selected_studio_light.has_specular_highlight_pass                              5934                    col.          prop          (shading,          "show_specular_highlight"          ,          text=          "Specular Lighting"          )                                      5935                                                5936                                                5937                    class          VIEW3D_PT_shading_options_shadow          (Panel):                                      5938                    bl_label          =          "Shadow Settings"                                      5939                    bl_space_type          =          'VIEW_3D'                                      5940                    bl_region_type          =          'HEADER'                                      5941                                                5942                    def          draw          (self,          context):                                      5943                    layout          =          self.layout                              5944                    layout.use_property_split          =          True                                      5945                    scene          =          context.scene                              5946                                                5947                    col          =          layout.          column          ()                                      5948                    col.          prop          (scene.display,          "light_direction"          )                                      5949                    col.          prop          (scene.display,          "shadow_shift"          )                                      5950                    col.          prop          (scene.display,          "shadow_focus"          )                                      5951                                                5952                                                5953                    class          VIEW3D_PT_shading_options_ssao          (Panel):                                      5954                    bl_label          =          "SSAO Settings"                                      5955                    bl_space_type          =          'VIEW_3D'                                      5956                    bl_region_type          =          'HEADER'                                      5957                                                5958                    def          draw          (self,          context):                                      5959                    layout          =          self.layout                              5960                    layout.use_property_split          =          True                                      5961                    scene          =          context.scene                              5962                                                5963                    col          =          layout.          column          (align=          True          )                                      5964                    col.          prop          (scene.display,          "matcap_ssao_samples"          )                                      5965                    col.          prop          (scene.display,          "matcap_ssao_distance"          )                                      5966                    col.          prop          (scene.display,          "matcap_ssao_attenuation"          )                                      5967                                                5968                                                5969                    class          VIEW3D_PT_shading_render_pass          (Panel):                                      5970                    bl_space_type          =          'VIEW_3D'                                      5971                    bl_region_type          =          'HEADER'                                      5972                    bl_label          =          "Render Pass"                                      5973                    bl_parent_id          =          'VIEW3D_PT_shading'                                      5974                    COMPAT_ENGINES          = {          'BLENDER_EEVEE'          }                                      5975                                                5976                    @classmethod                                      5977                    def          poll          (cls,          context):                                      5978                    return          (                                      5979                    (context.space_data.shading.          type          ==          'MATERIAL'          )          or                                      5980                    (context.engine          in          cls.COMPAT_ENGINES          and          context.space_data.shading.          type          ==          'RENDERED'          )                                      5981                    )                                      5982                                                5983                    def          draw          (self,          context):                                      5984                    shading          =          context.space_data.shading                              5985                                                5986                    layout          =          self.layout                              5987                    layout.          prop          (shading,          "render_pass"          ,          text=          ""          )                                      5988                                                5989                                                5990                    class          VIEW3D_PT_gizmo_display          (Panel):                                      5991                    bl_space_type          =          'VIEW_3D'                                      5992                    bl_region_type          =          'HEADER'                                      5993                    bl_label          =          "Gizmos"                                      5994                    bl_ui_units_x          =          8                                      5995                                                5996                    def          draw          (self,          context):                                      5997                    layout          =          self.layout                              5998                                                5999                    scene          =          context.scene                              6000                    view          =          context.space_data                              6001                                                6002                    col          =          layout.          column          ()                                      6003                    col.          label          (text=          "Viewport Gizmos"          )                                      6004                    col.          separator          ()                                      6005                                                6006                    col.active          =          view.show_gizmo                              6007                    colsub          =          col.          column          ()                                      6008                    colsub.          prop          (view,          "show_gizmo_navigate"          ,          text=          "Navigate"          )                                      6009                    colsub.          prop          (view,          "show_gizmo_tool"          ,          text=          "Active Tools"          )                                      6010                    colsub.          prop          (view,          "show_gizmo_context"          ,          text=          "Active Object"          )                                      6011                                                6012                    layout.          separator          ()                                      6013                                                6014                    col          =          layout.          column          ()                                      6015                    col.active          =          view.show_gizmo          and          view.show_gizmo_context                              6016                    col.          label          (text=          "Object Gizmos"          )                                      6017                    col.          prop          (scene.transform_orientation_slots[          1          ],          "type"          ,          text=          ""          )                                      6018                    col.          prop          (view,          "show_gizmo_object_translate"          ,          text=          "Move"          )                                      6019                    col.          prop          (view,          "show_gizmo_object_rotate"          ,          text=          "Rotate"          )                                      6020                    col.          prop          (view,          "show_gizmo_object_scale"          ,          text=          "Scale"          )                                      6021                                                6022                    layout.          separator          ()                                      6023                                                6024                    # Match order of object type visibility                                      6025                    col          =          layout.          column          ()                                      6026                    col.active          =          view.show_gizmo                              6027                    col.          label          (text=          "Empty"          )                                      6028                    col.          prop          (view,          "show_gizmo_empty_image"          ,          text=          "Image"          )                                      6029                    col.          prop          (view,          "show_gizmo_empty_force_field"          ,          text=          "Force Field"          )                                      6030                    col.          label          (text=          "Light"          )                                      6031                    col.          prop          (view,          "show_gizmo_light_size"          ,          text=          "Size"          )                                      6032                    col.          prop          (view,          "show_gizmo_light_look_at"          ,          text=          "Look At"          )                                      6033                    col.          label          (text=          "Camera"          )                                      6034                    col.          prop          (view,          "show_gizmo_camera_lens"          ,          text=          "Lens"          )                                      6035                    col.          prop          (view,          "show_gizmo_camera_dof_distance"          ,          text=          "Focus Distance"          )                                      6036                                                6037                                                6038                    class          VIEW3D_PT_overlay          (Panel):                                      6039                    bl_space_type          =          'VIEW_3D'                                      6040                    bl_region_type          =          'HEADER'                                      6041                    bl_label          =          "Overlays"                                      6042                    bl_ui_units_x          =          13                                      6043                                                6044                    def          draw          (self,          _context):                                      6045                    layout          =          self.layout                              6046                    layout.          label          (text=          "Viewport Overlays"          )                                      6047                                                6048                                                6049                    class          VIEW3D_PT_overlay_guides          (Panel):                                      6050                    bl_space_type          =          'VIEW_3D'                                      6051                    bl_region_type          =          'HEADER'                                      6052                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6053                    bl_label          =          "Guides"                                      6054                                                6055                    def          draw          (self,          context):                                      6056                    layout          =          self.layout                              6057                                                6058                    view          =          context.space_data                              6059                    scene          =          context.scene                              6060                                                6061                    overlay          =          view.overlay                              6062                    shading          =          view.shading                              6063                    display_all          =          overlay.show_overlays                              6064                                                6065                    col          =          layout.          column          ()                                      6066                    col.active          =          display_all                              6067                                                6068                    split          =          col.          split          ()                                      6069                    sub          =          split.          column          ()                                      6070                                                6071                    row          =          sub.          row          ()                                      6072                    row_el          =          row.          column          ()                                      6073                    row_el.          prop          (overlay,          "show_ortho_grid"          ,          text=          "Grid"          )                                      6074                    grid_active          =          bool          (                                      6075                    view.region_quadviews          or                                      6076                    (view.region_3d.is_orthographic_side_view          and not          view.region_3d.is_perspective)                                      6077                    )                                      6078                    row_el.active          =          grid_active                              6079                    row.          prop          (overlay,          "show_floor"          ,          text=          "Floor"          )                                      6080                                                6081                    if          overlay.show_floor          or          overlay.show_ortho_grid:                                      6082                    sub          =          col.          row          (align=          True          )                                      6083                    sub.active          = (                                      6084                    (overlay.show_floor          and not          view.region_3d.is_orthographic_side_view)          or                                      6085                    (overlay.show_ortho_grid          and          grid_active)                                      6086                    )                                      6087                    sub.          prop          (overlay,          "grid_scale"          ,          text=          "Scale"          )                                      6088                    sub          =          sub.          row          (align=          True          )                                      6089                    sub.active          =          scene.unit_settings.system          ==          'NONE'                                      6090                    sub.          prop          (overlay,          "grid_subdivisions"          ,          text=          "Subdivisions"          )                                      6091                                                6092                    sub          =          split.          column          ()                                      6093                    row          =          sub.          row          ()                                      6094                    row.          label          (text=          "Axes"          )                                      6095                                                6096                    subrow          =          row.          row          (align=          True          )                                      6097                    subrow.          prop          (overlay,          "show_axis_x"          ,          text=          "X"          ,          toggle=          True          )                                      6098                    subrow.          prop          (overlay,          "show_axis_y"          ,          text=          "Y"          ,          toggle=          True          )                                      6099                    subrow.          prop          (overlay,          "show_axis_z"          ,          text=          "Z"          ,          toggle=          True          )                                      6100                                                6101                    split          =          col.          split          ()                                      6102                    sub          =          split.          column          ()                                      6103                    sub.          prop          (overlay,          "show_text"          ,          text=          "Text Info"          )                                      6104                    sub.          prop          (overlay,          "show_stats"          ,          text=          "Statistics"          )                                      6105                                                6106                    sub          =          split.          column          ()                                      6107                    sub.          prop          (overlay,          "show_cursor"          ,          text=          "3D Cursor"          )                                      6108                    sub.          prop          (overlay,          "show_annotation"          ,          text=          "Annotations"          )                                      6109                                                6110                    if          shading.          type          ==          'MATERIAL'          :                                      6111                    row          =          col.          row          ()                                      6112                    row.active          =          shading.render_pass          ==          'COMBINED'                                      6113                    row.          prop          (overlay,          "show_look_dev"          )                                      6114                                                6115                                                6116                    class          VIEW3D_PT_overlay_object          (Panel):                                      6117                    bl_space_type          =          'VIEW_3D'                                      6118                    bl_region_type          =          'HEADER'                                      6119                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6120                    bl_label          =          "Objects"                                      6121                                                6122                    def          draw          (self,          context):                                      6123                    layout          =          self.layout                              6124                    view          =          context.space_data                              6125                    overlay          =          view.overlay                              6126                    display_all          =          overlay.show_overlays                              6127                                                6128                    col          =          layout.          column          (align=          True          )                                      6129                    col.active          =          display_all                              6130                                                6131                    split          =          col.          split          ()                                      6132                                                6133                    sub          =          split.          column          (align=          True          )                                      6134                    sub.          prop          (overlay,          "show_extras"          ,          text=          "Extras"          )                                      6135                    sub.          prop          (overlay,          "show_relationship_lines"          )                                      6136                    sub.          prop          (overlay,          "show_outline_selected"          )                                      6137                                                6138                    sub          =          split.          column          (align=          True          )                                      6139                    sub.          prop          (overlay,          "show_bones"          ,          text=          "Bones"          )                                      6140                    sub.          prop          (overlay,          "show_motion_paths"          )                                      6141                    sub.          prop          (overlay,          "show_object_origins"          ,          text=          "Origins"          )                                      6142                    subsub          =          sub.          column          ()                                      6143                    subsub.active          =          overlay.show_object_origins                              6144                    subsub.          prop          (overlay,          "show_object_origins_all"          ,          text=          "Origins (All)"          )                                      6145                                                6146                                                6147                    class          VIEW3D_PT_overlay_geometry          (Panel):                                      6148                    bl_space_type          =          'VIEW_3D'                                      6149                    bl_region_type          =          'HEADER'                                      6150                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6151                    bl_label          =          "Geometry"                                      6152                                                6153                    def          draw          (self,          context):                                      6154                    layout          =          self.layout                              6155                    view          =          context.space_data                              6156                    overlay          =          view.overlay                              6157                    display_all          =          overlay.show_overlays                              6158                    is_wireframes          =          view.shading.          type          ==          'WIREFRAME'                                      6159                                                6160                    col          =          layout.          column          ()                                      6161                    col.active          =          display_all                              6162                                                6163                    row          =          col.          row          (align=          True          )                                      6164                    if not          is_wireframes:                                      6165                    row.          prop          (overlay,          "show_wireframes"          ,          text=          ""          )                                      6166                    sub          =          row.          row          ()                                      6167                    sub.active          =          overlay.show_wireframes          or          is_wireframes                              6168                    sub.          prop          (overlay,          "wireframe_threshold"          ,          text=          "Wireframe"          )                                      6169                    sub.          prop          (overlay,          "wireframe_opacity"          ,          text=          "Opacity"          )                                      6170                                                6171                    row          =          col.          row          (align=          True          )                                      6172                                                6173                    # These properties should be always available in the UI for all modes                                      6174                    # other than Object.                                      6175                    # Even when the Fade Inactive Geometry overlay is not affecting the                                      6176                    # current active object depending on its mode, it will always affect                                      6177                    # the rest of the scene.                                      6178                    if          context.mode          !=          'OBJECT'          :                                      6179                    row.          prop          (overlay,          "show_fade_inactive"          ,          text=          ""          )                                      6180                    sub          =          row.          row          ()                                      6181                    sub.active          =          overlay.show_fade_inactive                              6182                    sub.          prop          (overlay,          "fade_inactive_alpha"          ,          text=          "Fade Inactive Geometry"          )                                      6183                                                6184                    col          =          layout.          column          (align=          True          )                                      6185                    col.active          =          display_all                              6186                                                6187                    col.          prop          (overlay,          "show_face_orientation"          )                                      6188                                                6189                    # sub.prop(overlay, "show_onion_skins")                                      6190                                                6191                                                6192                    class          VIEW3D_PT_overlay_motion_tracking          (Panel):                                      6193                    bl_space_type          =          'VIEW_3D'                                      6194                    bl_region_type          =          'HEADER'                                      6195                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6196                    bl_label          =          "Motion Tracking"                                      6197                                                6198                    def          draw_header          (self,          context):                                      6199                    layout          =          self.layout                              6200                    view          =          context.space_data                              6201                    overlay          =          view.overlay                              6202                    display_all          =          overlay.show_overlays                              6203                    layout.active          =          display_all                              6204                    layout.          prop          (view,          "show_reconstruction"          ,          text=self.bl_label)                                      6205                                                6206                    def          draw          (self,          context):                                      6207                    layout          =          self.layout                              6208                    view          =          context.space_data                              6209                    overlay          =          view.overlay                              6210                    display_all          =          overlay.show_overlays                              6211                                                6212                    col          =          layout.          column          ()                                      6213                    col.active          =          display_all                              6214                                                6215                    if          view.show_reconstruction:                                      6216                    split          =          col.          split          ()                                      6217                                                6218                    sub          =          split.          column          (align=          True          )                                      6219                    sub.active          =          view.show_reconstruction                              6220                    sub.          prop          (view,          "show_camera_path"          ,          text=          "Camera Path"          )                                      6221                                                6222                    sub          =          split.          column          ()                                      6223                    sub.          prop          (view,          "show_bundle_names"          ,          text=          "Marker Names"          )                                      6224                                                6225                    col          =          layout.          column          ()                                      6226                    col.active          =          display_all                              6227                    col.          label          (text=          "Tracks"          )                                      6228                    row          =          col.          row          (align=          True          )                                      6229                    row.          prop          (view,          "tracks_display_type"          ,          text=          ""          )                                      6230                    row.          prop          (view,          "tracks_display_size"          ,          text=          "Size"          )                                      6231                                                6232                                                6233                    class          VIEW3D_PT_overlay_edit_mesh          (Panel):                                      6234                    bl_space_type          =          'VIEW_3D'                                      6235                    bl_region_type          =          'HEADER'                                      6236                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6237                    bl_label          =          "Mesh Edit Mode"                                      6238                                                6239                    @classmethod                                      6240                    def          poll          (cls,          context):                                      6241                    return          context.mode          ==          'EDIT_MESH'                                      6242                                                6243                    def          draw          (self,          context):                                      6244                    layout          =          self.layout                              6245                                                6246                    view          =          context.space_data                              6247                    shading          =          view.shading                              6248                    overlay          =          view.overlay                              6249                    display_all          =          overlay.show_overlays                              6250                                                6251                    is_any_solid_shading          =          not          (shading.show_xray          or          (shading.          type          ==          'WIREFRAME'          ))                                      6252                                                6253                    col          =          layout.          column          ()                                      6254                    col.active          =          display_all                              6255                                                6256                    split          =          col.          split          ()                                      6257                                                6258                    sub          =          split.          column          ()                                      6259                    sub.active          =          is_any_solid_shading                              6260                    sub.          prop          (overlay,          "show_edges"          ,          text=          "Edges"          )                                      6261                    sub          =          split.          column          ()                                      6262                    sub.          prop          (overlay,          "show_faces"          ,          text=          "Faces"          )                                      6263                    sub          =          split.          column          ()                                      6264                    sub.active          =          is_any_solid_shading                              6265                    sub.          prop          (overlay,          "show_face_center"          ,          text=          "Center"          )                                      6266                                                6267                    row          =          col.          row          (align=          True          )                                      6268                    row.          prop          (overlay,          "show_edge_crease"          ,          text=          "Creases"          ,          toggle=          True          )                                      6269                    row.          prop          (overlay,          "show_edge_sharp"          ,          text=          "Sharp"          ,          text_ctxt=i18n_contexts.plural,          toggle=          True          )                                      6270                    row.          prop          (overlay,          "show_edge_bevel_weight"          ,          text=          "Bevel"          ,          toggle=          True          )                                      6271                    row.          prop          (overlay,          "show_edge_seams"          ,          text=          "Seams"          ,          toggle=          True          )                                      6272                                                6273                    if          context.preferences.view.show_developer_ui:                                      6274                    col.          label          (text=          "Developer"          )                                      6275                    col.          prop          (overlay,          "show_extra_indices"          ,          text=          "Indices"          )                                      6276                                                6277                                                6278                    class          VIEW3D_PT_overlay_edit_mesh_shading          (Panel):                                      6279                    bl_space_type          =          'VIEW_3D'                                      6280                    bl_region_type          =          'HEADER'                                      6281                    bl_parent_id          =          'VIEW3D_PT_overlay_edit_mesh'                                      6282                    bl_label          =          "Shading"                                      6283                                                6284                    @classmethod                                      6285                    def          poll          (cls,          context):                                      6286                    return          context.mode          ==          'EDIT_MESH'                                      6287                                                6288                    def          draw          (self,          context):                                      6289                    layout          =          self.layout                              6290                                                6291                    view          =          context.space_data                              6292                    shading          =          view.shading                              6293                    overlay          =          view.overlay                              6294                    tool_settings          =          context.tool_settings                              6295                    display_all          =          overlay.show_overlays                              6296                    statvis          =          tool_settings.statvis                              6297                                                6298                    col          =          layout.          column          ()                                      6299                    col.active          =          display_all                              6300                                                6301                    col.          prop          (overlay,          "show_occlude_wire"          )                                      6302                                                6303                    col.          prop          (overlay,          "show_weight"          ,          text=          "Vertex Group Weights"          )                                      6304                    if          overlay.show_weight:                                      6305                    row          =          col.          split          (factor=          0.33          )                                      6306                    row.          label          (text=          "Zero Weights"          )                                      6307                    sub          =          row.          row          ()                                      6308                    sub.          prop          (tool_settings,          "vertex_group_user"          ,          expand=          True          )                                      6309                                                6310                    if          shading.          type          ==          'WIREFRAME'          :                                      6311                    xray          =          shading.show_xray_wireframe          and          shading.xray_alpha_wireframe          <          1.0                                      6312                    elif          shading.          type          ==          'SOLID'          :                                      6313                    xray          =          shading.show_xray          and          shading.xray_alpha          <          1.0                                      6314                    else          :                                      6315                    xray          =          False                                      6316                    statvis_active          =          not          xray                              6317                    row          =          col.          row          ()                                      6318                    row.active          =          statvis_active                              6319                    row.          prop          (overlay,          "show_statvis"          ,          text=          "Mesh Analysis"          )                                      6320                    if          overlay.show_statvis:                                      6321                    col          =          col.          column          ()                                      6322                    col.active          =          statvis_active                              6323                                                6324                    sub          =          col.          split          ()                                      6325                    sub.          label          (text=          "Type"          )                                      6326                    sub.          prop          (statvis,          "type"          ,          text=          ""          )                                      6327                                                6328                    statvis_type          =          statvis.          type                                      6329                    if          statvis_type          ==          'OVERHANG'          :                                      6330                    row          =          col.          row          (align=          True          )                                      6331                    row.          prop          (statvis,          "overhang_min"          ,          text=          "Minimum"          )                                      6332                    row.          prop          (statvis,          "overhang_max"          ,          text=          "Maximum"          )                                      6333                    col.          row          ().          prop          (statvis,          "overhang_axis"          ,          expand=          True          )                                      6334                    elif          statvis_type          ==          'THICKNESS'          :                                      6335                    row          =          col.          row          (align=          True          )                                      6336                    row.          prop          (statvis,          "thickness_min"          ,          text=          "Minimum"          )                                      6337                    row.          prop          (statvis,          "thickness_max"          ,          text=          "Maximum"          )                                      6338                    col.          prop          (statvis,          "thickness_samples"          )                                      6339                    elif          statvis_type          ==          'INTERSECT'          :                                      6340                    pass                                      6341                    elif          statvis_type          ==          'DISTORT'          :                                      6342                    row          =          col.          row          (align=          True          )                                      6343                    row.          prop          (statvis,          "distort_min"          ,          text=          "Minimum"          )                                      6344                    row.          prop          (statvis,          "distort_max"          ,          text=          "Maximum"          )                                      6345                    elif          statvis_type          ==          'SHARP'          :                                      6346                    row          =          col.          row          (align=          True          )                                      6347                    row.          prop          (statvis,          "sharp_min"          ,          text=          "Minimum"          )                                      6348                    row.          prop          (statvis,          "sharp_max"          ,          text=          "Maximum"          )                                      6349                                                6350                                                6351                    class          VIEW3D_PT_overlay_edit_mesh_measurement          (Panel):                                      6352                    bl_space_type          =          'VIEW_3D'                                      6353                    bl_region_type          =          'HEADER'                                      6354                    bl_parent_id          =          'VIEW3D_PT_overlay_edit_mesh'                                      6355                    bl_label          =          "Measurement"                                      6356                                                6357                    @classmethod                                      6358                    def          poll          (cls,          context):                                      6359                    return          context.mode          ==          'EDIT_MESH'                                      6360                                                6361                    def          draw          (self,          context):                                      6362                    layout          =          self.layout                              6363                                                6364                    view          =          context.space_data                              6365                    overlay          =          view.overlay                              6366                    display_all          =          overlay.show_overlays                              6367                                                6368                    col          =          layout.          column          ()                                      6369                    col.active          =          display_all                              6370                                                6371                    split          =          col.          split          ()                                      6372                                                6373                    sub          =          split.          column          ()                                      6374                    sub.          prop          (overlay,          "show_extra_edge_length"          ,          text=          "Edge Length"          )                                      6375                    sub.          prop          (overlay,          "show_extra_edge_angle"          ,          text=          "Edge Angle"          )                                      6376                                                6377                    sub          =          split.          column          ()                                      6378                    sub.          prop          (overlay,          "show_extra_face_area"          ,          text=          "Face Area"          )                                      6379                    sub.          prop          (overlay,          "show_extra_face_angle"          ,          text=          "Face Angle"          )                                      6380                                                6381                                                6382                    class          VIEW3D_PT_overlay_edit_mesh_normals          (Panel):                                      6383                    bl_space_type          =          'VIEW_3D'                                      6384                    bl_region_type          =          'HEADER'                                      6385                    bl_parent_id          =          'VIEW3D_PT_overlay_edit_mesh'                                      6386                    bl_label          =          "Normals"                                      6387                                                6388                    @classmethod                                      6389                    def          poll          (cls,          context):                                      6390                    return          context.mode          ==          'EDIT_MESH'                                      6391                                                6392                    def          draw          (self,          context):                                      6393                    layout          =          self.layout                              6394                                                6395                    view          =          context.space_data                              6396                    overlay          =          view.overlay                              6397                    display_all          =          overlay.show_overlays                              6398                                                6399                    col          =          layout.          column          ()                                      6400                    col.active          =          display_all                              6401                                                6402                    row          =          col.          row          (align=          True          )                                      6403                    row.          prop          (overlay,          "show_vertex_normals"          ,          text=          ""          ,          icon=          'NORMALS_VERTEX'          )                                      6404                    row.          prop          (overlay,          "show_split_normals"          ,          text=          ""          ,          icon=          'NORMALS_VERTEX_FACE'          )                                      6405                    row.          prop          (overlay,          "show_face_normals"          ,          text=          ""          ,          icon=          'NORMALS_FACE'          )                                      6406                                                6407                    sub          =          row.          row          (align=          True          )                                      6408                    sub.active          =          overlay.show_vertex_normals          or          overlay.show_face_normals          or          overlay.show_split_normals                              6409                    if          overlay.use_normals_constant_screen_size:                                      6410                    sub.          prop          (overlay,          "normals_constant_screen_size"          ,          text=          "Size"          )                                      6411                    else          :                                      6412                    sub.          prop          (overlay,          "normals_length"          ,          text=          "Size"          )                                      6413                                                6414                    row.          prop          (overlay,          "use_normals_constant_screen_size"          ,          text=          ""          ,          icon=          'FIXED_SIZE'          )                                      6415                                                6416                                                6417                                                6418                    class          VIEW3D_PT_overlay_edit_mesh_freestyle          (Panel):                                      6419                    bl_space_type          =          'VIEW_3D'                                      6420                    bl_region_type          =          'HEADER'                                      6421                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6422                    bl_label          =          "Freestyle"                                      6423                                                6424                    @classmethod                                      6425                    def          poll          (cls,          context):                                      6426                    return          context.mode          ==          'EDIT_MESH'          and          bpy.app.build_options.freestyle                              6427                                                6428                    def          draw          (self,          context):                                      6429                    layout          =          self.layout                              6430                                                6431                    view          =          context.space_data                              6432                    overlay          =          view.overlay                              6433                    display_all          =          overlay.show_overlays                              6434                                                6435                    col          =          layout.          column          ()                                      6436                    col.active          =          display_all                              6437                                                6438                    row          =          col.          row          ()                                      6439                    row.          prop          (overlay,          "show_freestyle_edge_marks"          ,          text=          "Edge Marks"          )                                      6440                    row.          prop          (overlay,          "show_freestyle_face_marks"          ,          text=          "Face Marks"          )                                      6441                                                6442                                                6443                    class          VIEW3D_PT_overlay_edit_curve          (Panel):                                      6444                    bl_space_type          =          'VIEW_3D'                                      6445                    bl_region_type          =          'HEADER'                                      6446                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6447                    bl_label          =          "Curve Edit Mode"                                      6448                                                6449                    @classmethod                                      6450                    def          poll          (cls,          context):                                      6451                    return          context.mode          ==          'EDIT_CURVE'                                      6452                                                6453                    def          draw          (self,          context):                                      6454                    layout          =          self.layout                              6455                    view          =          context.space_data                              6456                    overlay          =          view.overlay                              6457                    display_all          =          overlay.show_overlays                              6458                                                6459                    col          =          layout.          column          ()                                      6460                    col.active          =          display_all                              6461                                                6462                    row          =          col.          row          ()                                      6463                    row.          prop          (overlay,          "display_handle"          ,          text=          "Handles"          )                                      6464                                                6465                    row          =          col.          row          ()                                      6466                    row.          prop          (overlay,          "show_curve_normals"          ,          text=          ""          )                                      6467                    sub          =          row.          row          ()                                      6468                    sub.active          =          overlay.show_curve_normals                              6469                    sub.          prop          (overlay,          "normals_length"          ,          text=          "Normals"          )                                      6470                                                6471                                                6472                    class          VIEW3D_PT_overlay_sculpt          (Panel):                                      6473                    bl_space_type          =          'VIEW_3D'                                      6474                    bl_context          =          ".sculpt_mode"                                      6475                    bl_region_type          =          'HEADER'                                      6476                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6477                    bl_label          =          "Sculpt"                                      6478                                                6479                    @classmethod                                      6480                    def          poll          (cls,          context):                                      6481                    return          (                                      6482                    context.mode          ==          'SCULPT'          and                                      6483                    (context.sculpt_object          and          context.tool_settings.sculpt)                                      6484                    )                                      6485                                                6486                    def          draw          (self,          context):                                      6487                    layout          =          self.layout                              6488                    tool_settings          =          context.tool_settings                              6489                    sculpt          =          tool_settings.sculpt                              6490                                                6491                    view          =          context.space_data                              6492                    overlay          =          view.overlay                              6493                                                6494                    row          =          layout.          row          (align=          True          )                                      6495                    row.          prop          (sculpt,          "show_mask"          ,          text=          ""          )                                      6496                    sub          =          row.          row          ()                                      6497                    sub.active          =          sculpt.show_mask                              6498                    sub.          prop          (overlay,          "sculpt_mode_mask_opacity"          ,          text=          "Mask"          )                                      6499                                                6500                    row          =          layout.          row          (align=          True          )                                      6501                    row.          prop          (sculpt,          "show_face_sets"          ,          text=          ""          )                                      6502                    sub          =          row.          row          ()                                      6503                    sub.active          =          sculpt.show_face_sets                              6504                    row.          prop          (overlay,          "sculpt_mode_face_sets_opacity"          ,          text=          "Face Sets"          )                                      6505                                                6506                                                6507                    class          VIEW3D_PT_overlay_pose          (Panel):                                      6508                    bl_space_type          =          'VIEW_3D'                                      6509                    bl_region_type          =          'HEADER'                                      6510                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6511                    bl_label          =          "Pose Mode"                                      6512                                                6513                    @classmethod                                      6514                    def          poll          (cls,          context):                                      6515                    mode          =          context.mode                              6516                    return          (                                      6517                    (mode          ==          'POSE'          )          or                                      6518                    (mode          ==          'PAINT_WEIGHT'          and          context.pose_object)                                      6519                    )                                      6520                                                6521                    def          draw          (self,          context):                                      6522                    layout          =          self.layout                              6523                    view          =          context.space_data                              6524                    mode          =          context.mode                              6525                    overlay          =          view.overlay                              6526                    display_all          =          overlay.show_overlays                              6527                                                6528                    col          =          layout.          column          ()                                      6529                    col.active          =          display_all                              6530                                                6531                    if          mode          ==          'POSE'          :                                      6532                    row          =          col.          row          ()                                      6533                    row.          prop          (overlay,          "show_xray_bone"          ,          text=          ""          )                                      6534                    sub          =          row.          row          ()                                      6535                    sub.active          =          display_all          and          overlay.show_xray_bone                              6536                    sub.          prop          (overlay,          "xray_alpha_bone"          ,          text=          "Fade Geometry"          )                                      6537                    else          :                                      6538                    row          =          col.          row          ()                                      6539                    row.          prop          (overlay,          "show_xray_bone"          )                                      6540                                                6541                                                6542                    class          VIEW3D_PT_overlay_texture_paint          (Panel):                                      6543                    bl_space_type          =          'VIEW_3D'                                      6544                    bl_region_type          =          'HEADER'                                      6545                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6546                    bl_label          =          "Texture Paint"                                      6547                                                6548                    @classmethod                                      6549                    def          poll          (cls,          context):                                      6550                    return          context.mode          ==          'PAINT_TEXTURE'                                      6551                                                6552                    def          draw          (self,          context):                                      6553                    layout          =          self.layout                              6554                    view          =          context.space_data                              6555                    overlay          =          view.overlay                              6556                    display_all          =          overlay.show_overlays                              6557                                                6558                    col          =          layout.          column          ()                                      6559                    col.active          =          display_all                              6560                    col.          prop          (overlay,          "texture_paint_mode_opacity"          )                                      6561                                                6562                                                6563                    class          VIEW3D_PT_overlay_vertex_paint          (Panel):                                      6564                    bl_space_type          =          'VIEW_3D'                                      6565                    bl_region_type          =          'HEADER'                                      6566                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6567                    bl_label          =          "Vertex Paint"                                      6568                                                6569                    @classmethod                                      6570                    def          poll          (cls,          context):                                      6571                    return          context.mode          ==          'PAINT_VERTEX'                                      6572                                                6573                    def          draw          (self,          context):                                      6574                    layout          =          self.layout                              6575                    view          =          context.space_data                              6576                    overlay          =          view.overlay                              6577                    display_all          =          overlay.show_overlays                              6578                                                6579                    col          =          layout.          column          ()                                      6580                    col.active          =          display_all                              6581                                                6582                    col.          prop          (overlay,          "vertex_paint_mode_opacity"          )                                      6583                    col.          prop          (overlay,          "show_paint_wire"          )                                      6584                                                6585                                                6586                    class          VIEW3D_PT_overlay_weight_paint          (Panel):                                      6587                    bl_space_type          =          'VIEW_3D'                                      6588                    bl_region_type          =          'HEADER'                                      6589                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6590                    bl_label          =          "Weight Paint"                                      6591                                                6592                    @classmethod                                      6593                    def          poll          (cls,          context):                                      6594                    return          context.mode          ==          'PAINT_WEIGHT'                                      6595                                                6596                    def          draw          (self,          context):                                      6597                    layout          =          self.layout                              6598                    view          =          context.space_data                              6599                    overlay          =          view.overlay                              6600                    display_all          =          overlay.show_overlays                              6601                                                6602                    col          =          layout.          column          ()                                      6603                    col.active          =          display_all                              6604                                                6605                    col.          prop          (overlay,          "weight_paint_mode_opacity"          ,          text=          "Opacity"          )                                      6606                    row          =          col.          split          (factor=          0.33          )                                      6607                    row.          label          (text=          "Zero Weights"          )                                      6608                    sub          =          row.          row          ()                                      6609                    sub.          prop          (context.tool_settings,          "vertex_group_user"          ,          expand=          True          )                                      6610                                                6611                    col.          prop          (overlay,          "show_wpaint_contours"          )                                      6612                    col.          prop          (overlay,          "show_paint_wire"          )                                      6613                                                6614                                                6615                    class          VIEW3D_PT_snapping          (Panel):                                      6616                    bl_space_type          =          'VIEW_3D'                                      6617                    bl_region_type          =          'HEADER'                                      6618                    bl_label          =          "Snapping"                                      6619                                                6620                    def          draw          (self,          context):                                      6621                    tool_settings          =          context.tool_settings                              6622                    snap_elements          =          tool_settings.snap_elements                              6623                    obj          =          context.active_object                              6624                    object_mode          =          'OBJECT'          if          obj          is None else          obj.mode                              6625                                                6626                    layout          =          self.layout                              6627                    col          =          layout.          column          ()                                      6628                    col.          label          (text=          "Snap To"          )                                      6629                    col.          prop          (tool_settings,          "snap_elements"          ,          expand=          True          )                                      6630                                                6631                    col.          separator          ()                                      6632                    if          'INCREMENT'          in          snap_elements:                                      6633                    col.          prop          (tool_settings,          "use_snap_grid_absolute"          )                                      6634                                                6635                    if          snap_elements          != {          'INCREMENT'          }:                                      6636                    col.          label          (text=          "Snap With"          )                                      6637                    row          =          col.          row          (align=          True          )                                      6638                    row.          prop          (tool_settings,          "snap_target"          ,          expand=          True          )                                      6639                                                6640                    col.          prop          (tool_settings,          "use_snap_backface_culling"          )                                      6641                                                6642                    if          obj:                                      6643                    if          object_mode          ==          'EDIT'          :                                      6644                    col.          prop          (tool_settings,          "use_snap_self"          )                                      6645                    if          object_mode          in          {          'OBJECT'          ,          'POSE'          ,          'EDIT'          ,          'WEIGHT_PAINT'          }:                                      6646                    col.          prop          (tool_settings,          "use_snap_align_rotation"          )                                      6647                                                6648                    if          'FACE'          in          snap_elements:                                      6649                    col.          prop          (tool_settings,          "use_snap_project"          )                                      6650                                                6651                    if          'VOLUME'          in          snap_elements:                                      6652                    col.          prop          (tool_settings,          "use_snap_peel_object"          )                                      6653                                                6654                    col.          label          (text=          "Affect"          )                                      6655                    row          =          col.          row          (align=          True          )                                      6656                    row.          prop          (tool_settings,          "use_snap_translate"          ,          text=          "Move"          ,          toggle=          True          )                                      6657                    row.          prop          (tool_settings,          "use_snap_rotate"          ,          text=          "Rotate"          ,          toggle=          True          )                                      6658                    row.          prop          (tool_settings,          "use_snap_scale"          ,          text=          "Scale"          ,          toggle=          True          )                                      6659                                                6660                                                6661                    class          VIEW3D_PT_proportional_edit          (Panel):                                      6662                    bl_space_type          =          'VIEW_3D'                                      6663                    bl_region_type          =          'HEADER'                                      6664                    bl_label          =          "Proportional Editing"                                      6665                    bl_ui_units_x          =          8                                      6666                                                6667                    def          draw          (self,          context):                                      6668                    layout          =          self.layout                              6669                    tool_settings          =          context.tool_settings                              6670                    col          =          layout.          column          ()                                      6671                    col.active          = (tool_settings.use_proportional_edit_objects          if          context.mode          ==          'OBJECT'                                      6672                    else          tool_settings.use_proportional_edit)                                      6673                                                6674                    if          context.mode          !=          'OBJECT'          :                                      6675                    col.          prop          (tool_settings,          "use_proportional_connected"          )                                      6676                    sub          =          col.          column          ()                                      6677                    sub.active          =          not          tool_settings.use_proportional_connected                              6678                    sub.          prop          (tool_settings,          "use_proportional_projected"          )                                      6679                    col.          separator          ()                                      6680                                                6681                    col.          prop          (tool_settings,          "proportional_edit_falloff"          ,          expand=          True          )                                      6682                                                6683                                                6684                    class          VIEW3D_PT_transform_orientations          (Panel):                                      6685                    bl_space_type          =          'VIEW_3D'                                      6686                    bl_region_type          =          'HEADER'                                      6687                    bl_label          =          "Transform Orientations"                                      6688                    bl_ui_units_x          =          8                                      6689                                                6690                    def          draw          (self,          context):                                      6691                    layout          =          self.layout                              6692                    layout.          label          (text=          "Transform Orientations"          )                                      6693                                                6694                    scene          =          context.scene                              6695                    orient_slot          =          scene.transform_orientation_slots[          0          ]                                      6696                    orientation          =          orient_slot.custom_orientation                              6697                                                6698                    row          =          layout.          row          ()                                      6699                    col          =          row.          column          ()                                      6700                    col.          prop          (orient_slot,          "type"          ,          expand=          True          )                                      6701                    row.          operator          (          "transform.create_orientation"          ,          text=          ""          ,          icon=          'ADD'          ,          emboss=          False          ).use          =          True                                      6702                                                6703                    if          orientation:                                      6704                    row          =          layout.          row          (align=          False          )                                      6705                    row.          prop          (orientation,          "name"          ,          text=          ""          ,          icon=          'OBJECT_ORIGIN'          )                                      6706                    row.          operator          (          "transform.delete_orientation"          ,          text=          ""          ,          icon=          'X'          ,          emboss=          False          )                                      6707                                                6708                                                6709                    class          VIEW3D_PT_gpencil_origin          (Panel):                                      6710                    bl_space_type          =          'VIEW_3D'                                      6711                    bl_region_type          =          'HEADER'                                      6712                    bl_label          =          "Stroke Placement"                                      6713                                                6714                    def          draw          (self,          context):                                      6715                    layout          =          self.layout                              6716                    tool_settings          =          context.tool_settings                              6717                    gpd          =          context.gpencil_data                              6718                                                6719                    layout.          label          (text=          "Stroke Placement"          )                                      6720                                                6721                    row          =          layout.          row          ()                                      6722                    col          =          row.          column          ()                                      6723                    col.          prop          (tool_settings,          "gpencil_stroke_placement_view3d"          ,          expand=          True          )                                      6724                                                6725                    if          tool_settings.gpencil_stroke_placement_view3d          ==          'SURFACE'          :                                      6726                    row          =          layout.          row          ()                                      6727                    row.          label          (text=          "Offset"          )                                      6728                    row          =          layout.          row          ()                                      6729                    row.          prop          (gpd,          "zdepth_offset"          ,          text=          ""          )                                      6730                                                6731                    if          tool_settings.gpencil_stroke_placement_view3d          ==          'STROKE'          :                                      6732                    row          =          layout.          row          ()                                      6733                    row.          label          (text=          "Target"          )                                      6734                    row          =          layout.          row          ()                                      6735                    row.          prop          (tool_settings,          "gpencil_stroke_snap_mode"          ,          expand=          True          )                                      6736                                                6737                                                6738                    class          VIEW3D_PT_gpencil_lock          (Panel):                                      6739                    bl_space_type          =          'VIEW_3D'                                      6740                    bl_region_type          =          'HEADER'                                      6741                    bl_label          =          "Drawing Plane"                                      6742                                                6743                    def          draw          (self,          context):                                      6744                    layout          =          self.layout                              6745                    layout.          label          (text=          "Drawing Plane"          )                                      6746                                                6747                    row          =          layout.          row          ()                                      6748                    col          =          row.          column          ()                                      6749                    col.          prop          (context.tool_settings.gpencil_sculpt,          "lock_axis"          ,          expand=          True          )                                      6750                                                6751                                                6752                    class          VIEW3D_PT_gpencil_guide          (Panel):                                      6753                    bl_space_type          =          'VIEW_3D'                                      6754                    bl_region_type          =          'HEADER'                                      6755                    bl_label          =          "Guides"                                      6756                                                6757                    def          draw          (self,          context):                                      6758                    settings          =          context.tool_settings.gpencil_sculpt.guide                              6759                                                6760                    layout          =          self.layout                              6761                    layout.          label          (text=          "Guides"          )                                      6762                                                6763                    col          =          layout.          column          ()                                      6764                    col.active          =          settings.use_guide                              6765                    col.          prop          (settings,          "type"          ,          expand=          True          )                                      6766                                                6767                    if          settings.          type          in          {          'ISO'          ,          'PARALLEL'          ,          'RADIAL'          }:                                      6768                    col.          prop          (settings,          "angle"          )                                      6769                    row          =          col.          row          (align=          True          )                                      6770                                                6771                    col.          prop          (settings,          "use_snapping"          )                                      6772                    if          settings.use_snapping:                                      6773                                                6774                    if          settings.          type          ==          'RADIAL'          :                                      6775                    col.          prop          (settings,          "angle_snap"          )                                      6776                    else          :                                      6777                    col.          prop          (settings,          "spacing"          )                                      6778                                                6779                    if          settings.          type          in          {          'CIRCULAR'          ,          'RADIAL'          }          or          settings.use_snapping:                                      6780                    col.          label          (text=          "Reference Point"          )                                      6781                    row          =          col.          row          (align=          True          )                                      6782                    row.          prop          (settings,          "reference_point"          ,          expand=          True          )                                      6783                    if          settings.reference_point          ==          'CUSTOM'          :                                      6784                    col.          prop          (settings,          "location"          ,          text=          "Custom Location"          )                                      6785                    elif          settings.reference_point          ==          'OBJECT'          :                                      6786                    col.          prop          (settings,          "reference_object"          ,          text=          "Object Location"          )                                      6787                    if not          settings.reference_object:                                      6788                    col.          label          (text=          "No object selected, using cursor"          )                                      6789                                                6790                                                6791                    class          VIEW3D_PT_overlay_gpencil_options          (Panel):                                      6792                    bl_space_type          =          'VIEW_3D'                                      6793                    bl_region_type          =          'HEADER'                                      6794                    bl_parent_id          =          'VIEW3D_PT_overlay'                                      6795                    bl_label          =          ""                                      6796                                                6797                    @classmethod                                      6798                    def          poll          (cls,          context):                                      6799                    return          context.          object          and          context.          object          .          type          ==          'GPENCIL'                                      6800                                                6801                    def          draw_header          (self,          context):                                      6802                    layout          =          self.layout                              6803                    layout.          label          (text={                                      6804                    'PAINT_GPENCIL'          :          "Draw Grease Pencil"          ,                                      6805                    'EDIT_GPENCIL'          :          "Edit Grease Pencil"          ,                                      6806                    'SCULPT_GPENCIL'          :          "Sculpt Grease Pencil"          ,                                      6807                    'WEIGHT_GPENCIL'          :          "Weight Grease Pencil"          ,                                      6808                    'VERTEX_GPENCIL'          :          "Vertex Grease Pencil"          ,                                      6809                    'OBJECT'          :          "Grease Pencil"          ,                                      6810                    }[context.mode])                                      6811                                                6812                    def          draw          (self,          context):                                      6813                    layout          =          self.layout                              6814                    view          =          context.space_data                              6815                    overlay          =          view.overlay                              6816                                                6817                    layout.          prop          (overlay,          "use_gpencil_onion_skin"          ,          text=          "Onion Skin"          )                                      6818                                                6819                    col          =          layout.          column          ()                                      6820                    row          =          col.          row          ()                                      6821                    row.          prop          (overlay,          "use_gpencil_grid"          ,          text=          ""          )                                      6822                    sub          =          row.          row          (align=          True          )                                      6823                    sub.active          =          overlay.use_gpencil_grid                              6824                    sub.          prop          (overlay,          "gpencil_grid_opacity"          ,          text=          "Canvas"          ,          slider=          True          )                                      6825                    sub.          prop          (overlay,          "use_gpencil_canvas_xray"          ,          text=          ""          ,          icon=          'XRAY'          )                                      6826                                                6827                    row          =          col.          row          ()                                      6828                    row.          prop          (overlay,          "use_gpencil_fade_layers"          ,          text=          ""          )                                      6829                    sub          =          row.          row          ()                                      6830                    sub.active          =          overlay.use_gpencil_fade_layers                              6831                    sub.          prop          (overlay,          "gpencil_fade_layer"          ,          text=          "Fade Layers"          ,          slider=          True          )                                      6832                                                6833                    row          =          col.          row          ()                                      6834                    row.          prop          (overlay,          "use_gpencil_fade_objects"          ,          text=          ""          )                                      6835                    sub          =          row.          row          (align=          True          )                                      6836                    sub.active          =          overlay.use_gpencil_fade_objects                              6837                    sub.          prop          (overlay,          "gpencil_fade_objects"          ,          text=          "Fade Objects"          ,          slider=          True          )                                      6838                    sub.          prop          (overlay,          "use_gpencil_fade_gp_objects"          ,          text=          ""          ,          icon=          'OUTLINER_OB_GREASEPENCIL'          )                                      6839                                                6840                    if          context.          object          .mode          in          {          'EDIT_GPENCIL'          ,          'SCULPT_GPENCIL'          ,          'WEIGHT_GPENCIL'          ,          'VERTEX_GPENCIL'          }:                                      6841                    split          =          layout.          split          ()                                      6842                    col          =          split.          column          ()                                      6843                    col.          prop          (overlay,          "use_gpencil_edit_lines"          ,          text=          "Edit Lines"          )                                      6844                    col          =          split.          column          ()                                      6845                    col.          prop          (overlay,          "use_gpencil_multiedit_line_only"          ,          text=          "Only in Multiframe"          )                                      6846                                                6847                    if          context.          object          .mode          ==          'EDIT_GPENCIL'          :                                      6848                    split          =          layout.          split          ()                                      6849                    col          =          split.          column          ()                                      6850                    col.          prop          (overlay,          "use_gpencil_show_directions"          )                                      6851                    col          =          split.          column          ()                                      6852                    col.          prop          (overlay,          "use_gpencil_show_material_name"          ,          text=          "Material Name"          )                                      6853                                                6854                    layout.          prop          (overlay,          "vertex_opacity"          ,          text=          "Vertex Opacity"          ,          slider=          True          )                                      6855                                                6856                    # Handles for Curve Edit                                      6857                    if          context.          object          .mode          ==          'EDIT_GPENCIL'          :                                      6858                    gpd          =          context.          object          .data                              6859                    if          gpd.use_curve_edit:                                      6860                    layout.          prop          (overlay,          "display_handle"          ,          text=          "Handles"          )                                      6861                                                6862                    if          context.          object          .mode          in          {          'PAINT_GPENCIL'          ,          'VERTEX_GPENCIL'          }:                                      6863                    layout.          label          (text=          "Vertex Paint"          )                                      6864                    row          =          layout.          row          ()                                      6865                    shading          =          VIEW3D_PT_shading.          get_shading          (context)                                      6866                    row.enabled          =          shading.          type          not in          {          'WIREFRAME'          ,          'RENDERED'          }                                      6867                    row.          prop          (overlay,          "gpencil_vertex_paint_opacity"          ,          text=          "Opacity"          ,          slider=          True          )                                      6868                                                6869                                                6870                    class          VIEW3D_PT_quad_view          (Panel):                                      6871                    bl_space_type          =          'VIEW_3D'                                      6872                    bl_region_type          =          'UI'                                      6873                    bl_category          =          "View"                                      6874                    bl_label          =          "Quad View"                                      6875                    bl_options          = {          'DEFAULT_CLOSED'          }                                      6876                                                6877                    @classmethod                                      6878                    def          poll          (cls,          context):                                      6879                    view          =          context.space_data                              6880                    return          view.region_quadviews                              6881                                                6882                    def          draw          (self,          context):                                      6883                    layout          =          self.layout                              6884                                                6885                    view          =          context.space_data                              6886                                                6887                    region          =          view.region_quadviews[          2          ]                                      6888                    col          =          layout.          column          ()                                      6889                    col.          prop          (region,          "lock_rotation"          )                                      6890                    row          =          col.          row          ()                                      6891                    row.enabled          =          region.lock_rotation                              6892                    row.          prop          (region,          "show_sync_view"          )                                      6893                    row          =          col.          row          ()                                      6894                    row.enabled          =          region.lock_rotation          and          region.show_sync_view                              6895                    row.          prop          (region,          "use_box_clip"          )                                      6896                                                6897                                                6898                    # Annotation properties                                      6899                    class          VIEW3D_PT_grease_pencil          (AnnotationDataPanel,          Panel):                                      6900                    bl_space_type          =          'VIEW_3D'                                      6901                    bl_region_type          =          'UI'                                      6902                    bl_category          =          "View"                                      6903                                                6904                    # NOTE: this is just a wrapper around the generic GP Panel                                      6905                                                6906                                                6907                    class          VIEW3D_PT_annotation_onion          (AnnotationOnionSkin,          Panel):                                      6908                    bl_space_type          =          'VIEW_3D'                                      6909                    bl_region_type          =          'UI'                                      6910                    bl_category          =          "View"                                      6911                    bl_parent_id          =          'VIEW3D_PT_grease_pencil'                                      6912                                                6913                    # NOTE: this is just a wrapper around the generic GP Panel                                      6914                                                6915                                                6916                    class          TOPBAR_PT_annotation_layers          (Panel,          AnnotationDataPanel):                                      6917                    bl_space_type          =          'VIEW_3D'                                      6918                    bl_region_type          =          'HEADER'                                      6919                    bl_label          =          "Layers"                                      6920                    bl_ui_units_x          =          14                                      6921                                                6922                                                6923                    class          VIEW3D_PT_view3d_stereo          (Panel):                                      6924                    bl_space_type          =          'VIEW_3D'                                      6925                    bl_region_type          =          'UI'                                      6926                    bl_category          =          "View"                                      6927                    bl_label          =          "Stereoscopy"                                      6928                    bl_options          = {          'DEFAULT_CLOSED'          }                                      6929                                                6930                    @classmethod                                      6931                    def          poll          (cls,          context):                                      6932                    scene          =          context.scene                              6933                                                6934                    multiview          =          scene.render.use_multiview                              6935                    return          multiview                              6936                                                6937                    def          draw          (self,          context):                                      6938                    layout          =          self.layout                              6939                    view          =          context.space_data                              6940                                                6941                    basic_stereo          =          context.scene.render.views_format          ==          'STEREO_3D'                                      6942                                                6943                    col          =          layout.          column          ()                                      6944                    col.          row          ().          prop          (view,          "stereo_3d_camera"          ,          expand=          True          )                                      6945                                                6946                    col.          label          (text=          "Display"          )                                      6947                    row          =          col.          row          ()                                      6948                    row.active          =          basic_stereo                              6949                    row.          prop          (view,          "show_stereo_3d_cameras"          )                                      6950                    row          =          col.          row          ()                                      6951                    row.active          =          basic_stereo                              6952                    split          =          row.          split          ()                                      6953                    split.          prop          (view,          "show_stereo_3d_convergence_plane"          )                                      6954                    split          =          row.          split          ()                                      6955                    split.          prop          (view,          "stereo_3d_convergence_plane_alpha"          ,          text=          "Alpha"          )                                      6956                    split.active          =          view.show_stereo_3d_convergence_plane                              6957                    row          =          col.          row          ()                                      6958                    split          =          row.          split          ()                                      6959                    split.          prop          (view,          "show_stereo_3d_volume"          )                                      6960                    split          =          row.          split          ()                                      6961                    split.active          =          view.show_stereo_3d_volume                              6962                    split.          prop          (view,          "stereo_3d_volume_alpha"          ,          text=          "Alpha"          )                                      6963                                                6964                                                6965                    class          VIEW3D_PT_context_properties          (Panel):                                      6966                    bl_space_type          =          'VIEW_3D'                                      6967                    bl_region_type          =          'UI'                                      6968                    bl_category          =          "Item"                                      6969                    bl_label          =          "Properties"                                      6970                    bl_options          = {          'DEFAULT_CLOSED'          }                                      6971                                                6972                    @staticmethod                                      6973                    def          _active_context_member          (context):                                      6974                    obj          =          context.          object                                      6975                    if          obj:                                      6976                    object_mode          =          obj.mode                              6977                    if          object_mode          ==          'POSE'          :                                      6978                    return          "active_pose_bone"                                      6979                    elif          object_mode          ==          'EDIT'          and          obj.          type          ==          'ARMATURE'          :                                      6980                    return          "active_bone"                                      6981                    else          :                                      6982                    return          "object"                                      6983                                                6984                    return          ""                                      6985                                                6986                    @classmethod                                      6987                    def          poll          (cls,          context):                                      6988                    import          rna_prop_ui                              6989                    member          =          cls._active_context_member(context)                                      6990                                                6991                    if          member:                                      6992                    context_member,          member          =          rna_prop_ui.          rna_idprop_context_value          (context,          member,          object          )                                      6993                    return          context_member          and          rna_prop_ui.          rna_idprop_has_properties          (context_member)                                      6994                                                6995                    return False                                      6996                                                6997                    def          draw          (self,          context):                                      6998                    import          rna_prop_ui                              6999                    member          =          VIEW3D_PT_context_properties._active_context_member(context)                                      7000                                                7001                    if          member:                                      7002                    # Draw with no edit button                                      7003                    rna_prop_ui.          draw          (self.layout,          context,          member,          object          ,          use_edit=          False          )                                      7004                                                7005                                                7006                    # Grease Pencil Object - Multiframe falloff tools                                      7007                    class          VIEW3D_PT_gpencil_multi_frame          (Panel):                                      7008                    bl_space_type          =          'VIEW_3D'                                      7009                    bl_region_type          =          'HEADER'                                      7010                    bl_label          =          "Multi Frame"                                      7011                                                7012                    def          draw          (self,          context):                                      7013                    gpd          =          context.gpencil_data                              7014                    settings          =          context.tool_settings.gpencil_sculpt                              7015                                                7016                    layout          =          self.layout                              7017                    col          =          layout.          column          (align=          True          )                                      7018                    col.          prop          (settings,          "use_multiframe_falloff"          )                                      7019                                                7020                    # Falloff curve                                      7021                    if          gpd.use_multiedit          and          settings.use_multiframe_falloff:                                      7022                    layout.          template_curve_mapping          (settings,          "multiframe_falloff_curve"          ,          brush=          True          )                                      7023                                                7024                                                7025                    # Grease Pencil Object - Curve Editing tools                                      7026                    class          VIEW3D_PT_gpencil_curve_edit          (Panel):                                      7027                    bl_space_type          =          'VIEW_3D'                                      7028                    bl_region_type          =          'HEADER'                                      7029                    bl_label          =          "Curve Editing"                                      7030                                                7031                    def          draw          (self,          context):                                      7032                    layout          =          self.layout                              7033                                                7034                    gpd          =          context.gpencil_data                              7035                    col          =          layout.          column          (align=          True          )                                      7036                    col.          prop          (gpd,          "edit_curve_resolution"          )                                      7037                    col.          prop          (gpd,          "curve_edit_threshold"          )                                      7038                    col.          prop          (gpd,          "curve_edit_corner_angle"          )                                      7039                    col.          prop          (gpd,          "use_adaptive_curve_resolution"          )                                      7040                                                7041                                                7042                    class          VIEW3D_MT_gpencil_edit_context_menu          (Menu):                                      7043                    bl_label          =          ""                                      7044                                                7045                    def          draw          (self,          context):                                      7046                                                7047                    is_point_mode          =          context.tool_settings.gpencil_selectmode_edit          ==          'POINT'                                      7048                    is_stroke_mode          =          context.tool_settings.gpencil_selectmode_edit          ==          'STROKE'                                      7049                    is_segment_mode          =          context.tool_settings.gpencil_selectmode_edit          ==          'SEGMENT'                                      7050                                                7051                    layout          =          self.layout                              7052                                                7053                    layout.operator_context          =          'INVOKE_REGION_WIN'                                      7054                                                7055                    row          =          layout.          row          ()                                      7056                                                7057                    if          is_point_mode          or          is_segment_mode:                                      7058                    col          =          row.          column          (align=          True          )                                      7059                                                7060                    col.          label          (text=          "Point Context Menu"          ,          icon=          'GP_SELECT_POINTS'          )                                      7061                    col.          separator          ()                                      7062                                                7063                    # Additive Operators                                      7064                    col.          operator          (          "gpencil.stroke_subdivide"          ,          text=          "Subdivide"          ).only_selected          =          True                                      7065                                                7066                    col.          separator          ()                                      7067                                                7068                    col.          operator          (          "gpencil.extrude_move"          ,          text=          "Extrude"          )                                      7069                                                7070                    col.          separator          ()                                      7071                                                7072                    # Deform Operators                                      7073                    col.          operator          (          "gpencil.stroke_smooth"          ,          text=          "Smooth"          ).only_selected          =          True                                      7074                    col.          operator          (          "transform.bend"          ,          text=          "Bend"          )                                      7075                    col.          operator          (          "transform.shear"          ,          text=          "Shear"          )                                      7076                    col.          operator          (          "transform.tosphere"          ,          text=          "To Sphere"          )                                      7077                    col.          operator          (          "transform.transform"          ,          text=          "Shrink/Fatten"          ).mode          =          'GPENCIL_SHRINKFATTEN'                                      7078                                                7079                    col.          separator          ()                                      7080                                                7081                    col.          menu          (          "VIEW3D_MT_mirror"          ,          text=          "Mirror"          )                                      7082                    col.          menu          (          "GPENCIL_MT_snap"          ,          text=          "Snap"          )                                      7083                                                7084                    col.          separator          ()                                      7085                                                7086                    # Duplicate operators                                      7087                    col.          operator          (          "gpencil.duplicate_move"          ,          text=          "Duplicate"          )                                      7088                    col.          operator          (          "gpencil.copy"          ,          text=          "Copy"          ,          icon=          'COPYDOWN'          )                                      7089                    col.          operator          (          "gpencil.paste"          ,          text=          "Paste"          ,          icon=          'PASTEDOWN'          ).          type          =          'ACTIVE'                                      7090                    col.          operator          (          "gpencil.paste"          ,          text=          "Paste by Layer"          ).          type          =          'LAYER'                                      7091                                                7092                    col.          separator          ()                                      7093                                                7094                    # Removal Operators                                      7095                    col.          operator          (          "gpencil.stroke_merge"          ,          text=          "Merge"          )                                      7096                    col.          operator          (          "gpencil.stroke_merge_by_distance"          ).use_unselected          =          False                                      7097                    col.          operator          (          "gpencil.stroke_split"          ,          text=          "Split"          )                                      7098                    col.          operator          (          "gpencil.stroke_separate"          ,          text=          "Separate"          ).mode          =          'POINT'                                      7099                                                7100                    col.          separator          ()                                      7101                                                7102                    col.          operator          (          "gpencil.delete"          ,          text=          "Delete"          ).          type          =          'POINTS'                                      7103                    col.          operator          (          "gpencil.dissolve"          ,          text=          "Dissolve"          ).          type          =          'POINTS'                                      7104                    col.          operator          (          "gpencil.dissolve"          ,          text=          "Dissolve Between"          ).          type          =          'BETWEEN'                                      7105                    col.          operator          (          "gpencil.dissolve"          ,          text=          "Dissolve Unselected"          ).          type          =          'UNSELECT'                                      7106                                                7107                    if          is_stroke_mode:                                      7108                                                7109                    col          =          row.          column          (align=          True          )                                      7110                    col.          label          (text=          "Stroke Context Menu"          ,          icon=          'GP_SELECT_STROKES'          )                                      7111                    col.          separator          ()                                      7112                                                7113                    # Main Strokes Operators                                      7114                    col.          operator          (          "gpencil.stroke_subdivide"          ,          text=          "Subdivide"          ).only_selected          =          False                                      7115                    col.          menu          (          "VIEW3D_MT_gpencil_simplify"          )                                      7116                    col.          operator          (          "gpencil.stroke_trim"          ,          text=          "Trim"          )                                      7117                                                7118                    col.          separator          ()                                      7119                                                7120                    col.          operator          (          "gpencil.stroke_smooth"          ,          text=          "Smooth"          ).only_selected          =          False                                      7121                    col.          operator          (          "transform.transform"          ,          text=          "Shrink/Fatten"          ).mode          =          'GPENCIL_SHRINKFATTEN'                                      7122                                                7123                    col.          separator          ()                                      7124                                                7125                    # Layer and Materials operators                                      7126                    col.          menu          (          "GPENCIL_MT_move_to_layer"          )                                      7127                    col.          menu          (          "VIEW3D_MT_assign_material"          )                                      7128                    col.          operator          (          "gpencil.set_active_material"          ,          text=          "Set as Active Material"          )                                      7129                    col.          operator_menu_enum          (          "gpencil.stroke_arrange"          ,          "direction"          ,          text=          "Arrange"          )                                      7130                                                7131                    col.          separator          ()                                      7132                                                7133                    col.          menu          (          "VIEW3D_MT_mirror"          ,          text=          "Mirror"          )                                      7134                    col.          menu          (          "VIEW3D_MT_snap"          ,          text=          "Snap"          )                                      7135                                                7136                    col.          separator          ()                                      7137                                                7138                    # Duplicate operators                                      7139                    col.          operator          (          "gpencil.duplicate_move"          ,          text=          "Duplicate"          )                                      7140                    col.          operator          (          "gpencil.copy"          ,          text=          "Copy"          ,          icon=          'COPYDOWN'          )                                      7141                    col.          operator          (          "gpencil.paste"          ,          text=          "Paste"          ,          icon=          'PASTEDOWN'          ).          type          =          'ACTIVE'                                      7142                    col.          operator          (          "gpencil.paste"          ,          text=          "Paste by Layer"          ).          type          =          'LAYER'                                      7143                                                7144                    col.          separator          ()                                      7145                                                7146                    # Removal Operators                                      7147                    col.          operator          (          "gpencil.stroke_merge_by_distance"          ).use_unselected          =          True                                      7148                    col.          operator_menu_enum          (          "gpencil.stroke_join"          ,          "type"          ,          text=          "Join"          )                                      7149                    col.          operator          (          "gpencil.stroke_split"          ,          text=          "Split"          )                                      7150                    col.          operator          (          "gpencil.stroke_separate"          ,          text=          "Separate"          ).mode          =          'STROKE'                                      7151                                                7152                    col.          separator          ()                                      7153                                                7154                    col.          operator          (          "gpencil.delete"          ,          text=          "Delete"          ).          type          =          'STROKES'                                      7155                                                7156                    col.          separator          ()                                      7157                                                7158                    col.          operator          (          "gpencil.reproject"          ,          text=          "Reproject"          )                                      7159                                                7160                                                7161                    def          draw_gpencil_layer_active          (context,          layout):                                      7162                    gpl          =          context.active_gpencil_layer                              7163                    if          gpl:                                      7164                    layout.          label          (text=          "Active Layer"          )                                      7165                    row          =          layout.          row          (align=          True          )                                      7166                    row.operator_context          =          'EXEC_REGION_WIN'                                      7167                    row.          operator_menu_enum          (          "gpencil.layer_change"          ,          "layer"          ,          text=          ""          ,          icon=          'GREASEPENCIL'          )                                      7168                    row.          prop          (gpl,          "info"          ,          text=          ""          )                                      7169                    row.          operator          (          "gpencil.layer_remove"          ,          text=          ""          ,          icon=          'X'          )                                      7170                                                7171                                                7172                    def          draw_gpencil_material_active          (context,          layout):                                      7173                    ob          =          context.active_object                              7174                    if          ob          and          len          (ob.material_slots) >          0          and          ob.active_material_index          >=          0          :                                      7175                    ma          =          ob.material_slots[ob.active_material_index].material                              7176                    if          ma:                                      7177                    layout.          label          (text=          "Active Material"          )                                      7178                    row          =          layout.          row          (align=          True          )                                      7179                    row.operator_context          =          'EXEC_REGION_WIN'                                      7180                    row.          operator_menu_enum          (          "gpencil.material_set"          ,          "slot"          ,          text=          ""          ,          icon=          'MATERIAL'          )                                      7181                    row.          prop          (ma,          "name"          ,          text=          ""          )                                      7182                                                7183                                                7184                    class          VIEW3D_PT_gpencil_sculpt_context_menu          (Panel):                                      7185                    bl_space_type          =          'VIEW_3D'                                      7186                    bl_region_type          =          'WINDOW'                                      7187                    bl_label          =          "Sculpt Context Menu"                                      7188                    bl_ui_units_x          =          12                                      7189                                                7190                    def          draw          (self,          context):                                      7191                    ts          =          context.tool_settings                              7192                    settings          =          ts.gpencil_sculpt_paint                              7193                    brush          =          settings.brush                              7194                                                7195                    layout          =          self.layout                              7196                                                7197                    layout.          prop          (brush,          "size"          ,          slider=          True          )                                      7198                    layout.          prop          (brush,          "strength"          )                                      7199                                                7200                    # Layers                                      7201                    draw_gpencil_layer_active          (context,          layout)                                      7202                                                7203                                                7204                    class          VIEW3D_PT_gpencil_weight_context_menu          (Panel):                                      7205                    bl_space_type          =          'VIEW_3D'                                      7206                    bl_region_type          =          'WINDOW'                                      7207                    bl_label          =          "Weight Paint Context Menu"                                      7208                    bl_ui_units_x          =          12                                      7209                                                7210                    def          draw          (self,          context):                                      7211                    ts          =          context.tool_settings                              7212                    settings          =          ts.gpencil_weight_paint                              7213                    brush          =          settings.brush                              7214                                                7215                    layout          =          self.layout                              7216                                                7217                    layout.          prop          (brush,          "size"          ,          slider=          True          )                                      7218                    layout.          prop          (brush,          "strength"          )                                      7219                    layout.          prop          (brush,          "weight"          )                                      7220                                                7221                    # Layers                                      7222                    draw_gpencil_layer_active          (context,          layout)                                      7223                                                7224                                                7225                    class          VIEW3D_PT_gpencil_draw_context_menu          (Panel):                                      7226                    bl_space_type          =          'VIEW_3D'                                      7227                    bl_region_type          =          'WINDOW'                                      7228                    bl_label          =          "Draw Context Menu"                                      7229                    bl_ui_units_x          =          12                                      7230                                                7231                    def          draw          (self,          context):                                      7232                    ts          =          context.tool_settings                              7233                    settings          =          ts.gpencil_paint                              7234                    brush          =          settings.brush                              7235                    gp_settings          =          brush.gpencil_settings                              7236                                                7237                    layout          =          self.layout                              7238                    is_pin_vertex          =          gp_settings.brush_draw_mode          ==          'VERTEXCOLOR'                                      7239                    is_vertex          =          settings.color_mode          ==          'VERTEXCOLOR'          or          brush.gpencil_tool          ==          'TINT'          or          is_pin_vertex                              7240                                                7241                    if          brush.gpencil_tool          not in          {          'ERASE'          ,          'CUTTER'          ,          'EYEDROPPER'          }          and          is_vertex:                                      7242                    split          =          layout.          split          (factor=          0.1          )                                      7243                    split.          prop          (brush,          "color"          ,          text=          ""          )                                      7244                    split.          template_color_picker          (brush,          "color"          ,          value_slider=          True          )                                      7245                                                7246                    col          =          layout.          column          ()                                      7247                    col.          separator          ()                                      7248                    col.          prop_menu_enum          (gp_settings,          "vertex_mode"          ,          text=          "Mode"          )                                      7249                    col.          separator          ()                                      7250                                                7251                    if          brush.gpencil_tool          not in          {          'FILL'          ,          'CUTTER'          }:                                      7252                    layout.          prop          (brush,          "size"          ,          slider=          True          )                                      7253                    if          brush.gpencil_tool          not in          {          'ERASE'          ,          'FILL'          ,          'CUTTER'          }:                                      7254                    layout.          prop          (gp_settings,          "pen_strength"          )                                      7255                                                7256                    # Layers                                      7257                    draw_gpencil_layer_active          (context,          layout)                                      7258                    # Material                                      7259                    if not          is_vertex:                                      7260                    draw_gpencil_material_active          (context,          layout)                                      7261                                                7262                                                7263                    class          VIEW3D_PT_gpencil_vertex_context_menu          (Panel):                                      7264                    bl_space_type          =          'VIEW_3D'                                      7265                    bl_region_type          =          'WINDOW'                                      7266                    bl_label          =          "Vertex Paint Context Menu"                                      7267                    bl_ui_units_x          =          12                                      7268                                                7269                    def          draw          (self,          context):                                      7270                    layout          =          self.layout                              7271                    ts          =          context.tool_settings                              7272                    settings          =          ts.gpencil_vertex_paint                              7273                    brush          =          settings.brush                              7274                    gp_settings          =          brush.gpencil_settings                              7275                                                7276                    col          =          layout.          column          ()                                      7277                                                7278                    if          brush.gpencil_vertex_tool          in          {          'DRAW'          ,          'REPLACE'          }:                                      7279                    split          =          layout.          split          (factor=          0.1          )                                      7280                    split.          prop          (brush,          "color"          ,          text=          ""          )                                      7281                    split.          template_color_picker          (brush,          "color"          ,          value_slider=          True          )                                      7282                                                7283                    col          =          layout.          column          ()                                      7284                    col.          separator          ()                                      7285                    col.          prop_menu_enum          (gp_settings,          "vertex_mode"          ,          text=          "Mode"          )                                      7286                    col.          separator          ()                                      7287                                                7288                    row          =          col.          row          (align=          True          )                                      7289                    row.          prop          (brush,          "size"          ,          text=          "Radius"          )                                      7290                    row.          prop          (gp_settings,          "use_pressure"          ,          text=          ""          ,          icon=          'STYLUS_PRESSURE'          )                                      7291                                                7292                    if          brush.gpencil_vertex_tool          in          {          'DRAW'          ,          'BLUR'          ,          'SMEAR'          }:                                      7293                    row          =          layout.          row          (align=          True          )                                      7294                    row.          prop          (gp_settings,          "pen_strength"          ,          slider=          True          )                                      7295                    row.          prop          (gp_settings,          "use_strength_pressure"          ,          text=          ""          ,          icon=          'STYLUS_PRESSURE'          )                                      7296                                                7297                    # Layers                                      7298                    draw_gpencil_layer_active          (context,          layout)                                      7299                                                7300                                                7301                    class          VIEW3D_PT_paint_vertex_context_menu          (Panel):                                      7302                    # Only for popover, these are dummy values.                                      7303                    bl_space_type          =          'VIEW_3D'                                      7304                    bl_region_type          =          'WINDOW'                                      7305                    bl_label          =          "Vertex Paint Context Menu"                                      7306                                                7307                    def          draw          (self,          context):                                      7308                    layout          =          self.layout                              7309                                                7310                    brush          =          context.tool_settings.vertex_paint.brush                              7311                    capabilities          =          brush.vertex_paint_capabilities                              7312                                                7313                    if          capabilities.has_color:                                      7314                    split          =          layout.          split          (factor=          0.1          )                                      7315                    UnifiedPaintPanel.          prop_unified_color          (split,          context,          brush,          "color"          ,          text=          ""          )                                      7316                    UnifiedPaintPanel.          prop_unified_color_picker          (split,          context,          brush,          "color"          ,          value_slider=          True          )                                      7317                    layout.          prop          (brush,          "blend"          ,          text=          ""          )                                      7318                                                7319                    UnifiedPaintPanel.          prop_unified          (                                      7320                    layout,                                      7321                    context,                                      7322                    brush,                                      7323                    "size"          ,                                      7324                    unified_name=          "use_unified_size"          ,                                      7325                    pressure_name=          "use_pressure_size"          ,                                      7326                    slider=          True          ,                                      7327                    )                                      7328                    UnifiedPaintPanel.          prop_unified          (                                      7329                    layout,                                      7330                    context,                                      7331                    brush,                                      7332                    "strength"          ,                                      7333                    unified_name=          "use_unified_strength"          ,                                      7334                    pressure_name=          "use_pressure_strength"          ,                                      7335                    slider=          True          ,                                      7336                    )                                      7337                                                7338                                                7339                    class          VIEW3D_PT_paint_texture_context_menu          (Panel):                                      7340                    # Only for popover, these are dummy values.                                      7341                    bl_space_type          =          'VIEW_3D'                                      7342                    bl_region_type          =          'WINDOW'                                      7343                    bl_label          =          "Texture Paint Context Menu"                                      7344                                                7345                    def          draw          (self,          context):                                      7346                    layout          =          self.layout                              7347                                                7348                    brush          =          context.tool_settings.image_paint.brush                              7349                    capabilities          =          brush.image_paint_capabilities                              7350                                                7351                    if          capabilities.has_color:                                      7352                    split          =          layout.          split          (factor=          0.1          )                                      7353                    UnifiedPaintPanel.          prop_unified_color          (split,          context,          brush,          "color"          ,          text=          ""          )                                      7354                    UnifiedPaintPanel.          prop_unified_color_picker          (split,          context,          brush,          "color"          ,          value_slider=          True          )                                      7355                    layout.          prop          (brush,          "blend"          ,          text=          ""          )                                      7356                                                7357                    if          capabilities.has_radius:                                      7358                    UnifiedPaintPanel.          prop_unified          (                                      7359                    layout,                                      7360                    context,                                      7361                    brush,                                      7362                    "size"          ,                                      7363                    unified_name=          "use_unified_size"          ,                                      7364                    pressure_name=          "use_pressure_size"          ,                                      7365                    slider=          True          ,                                      7366                    )                                      7367                    UnifiedPaintPanel.          prop_unified          (                                      7368                    layout,                                      7369                    context,                                      7370                    brush,                                      7371                    "strength"          ,                                      7372                    unified_name=          "use_unified_strength"          ,                                      7373                    pressure_name=          "use_pressure_strength"          ,                                      7374                    slider=          True          ,                                      7375                    )                                      7376                                                7377                                                7378                    class          VIEW3D_PT_paint_weight_context_menu          (Panel):                                      7379                    # Only for popover, these are dummy values.                                      7380                    bl_space_type          =          'VIEW_3D'                                      7381                    bl_region_type          =          'WINDOW'                                      7382                    bl_label          =          "Weights Context Menu"                                      7383                                                7384                    def          draw          (self,          context):                                      7385                    layout          =          self.layout                              7386                                                7387                    brush          =          context.tool_settings.weight_paint.brush                              7388                    UnifiedPaintPanel.          prop_unified          (                                      7389                    layout,                                      7390                    context,                                      7391                    brush,                                      7392                    "weight"          ,                                      7393                    unified_name=          "use_unified_weight"          ,                                      7394                    slider=          True          ,                                      7395                    )                                      7396                    UnifiedPaintPanel.          prop_unified          (                                      7397                    layout,                                      7398                    context,                                      7399                    brush,                                      7400                    "size"          ,                                      7401                    unified_name=          "use_unified_size"          ,                                      7402                    pressure_name=          "use_pressure_size"          ,                                      7403                    slider=          True          ,                                      7404                    )                                      7405                    UnifiedPaintPanel.          prop_unified          (                                      7406                    layout,                                      7407                    context,                                      7408                    brush,                                      7409                    "strength"          ,                                      7410                    unified_name=          "use_unified_strength"          ,                                      7411                    pressure_name=          "use_pressure_strength"          ,                                      7412                    slider=          True          ,                                      7413                    )                                      7414                                                7415                                                7416                    class          VIEW3D_PT_sculpt_context_menu          (Panel):                                      7417                    # Only for popover, these are dummy values.                                      7418                    bl_space_type          =          'VIEW_3D'                                      7419                    bl_region_type          =          'WINDOW'                                      7420                    bl_label          =          "Sculpt Context Menu"                                      7421                                                7422                    def          draw          (self,          context):                                      7423                    layout          =          self.layout                              7424                                                7425                    brush          =          context.tool_settings.sculpt.brush                              7426                    capabilities          =          brush.sculpt_capabilities                              7427                                                7428                    if          capabilities.has_color:                                      7429                    split          =          layout.          split          (factor=          0.1          )                                      7430                    UnifiedPaintPanel.          prop_unified_color          (split,          context,          brush,          "color"          ,          text=          ""          )                                      7431                    UnifiedPaintPanel.          prop_unified_color_picker          (split,          context,          brush,          "color"          ,          value_slider=          True          )                                      7432                    layout.          prop          (brush,          "blend"          ,          text=          ""          )                                      7433                                                7434                    UnifiedPaintPanel.          prop_unified          (                                      7435                    layout,                                      7436                    context,                                      7437                    brush,                                      7438                    "size"          ,                                      7439                    unified_name=          "use_unified_size"          ,                                      7440                    pressure_name=          "use_pressure_size"          ,                                      7441                    slider=          True          ,                                      7442                    )                                      7443                    UnifiedPaintPanel.          prop_unified          (                                      7444                    layout,                                      7445                    context,                                      7446                    brush,                                      7447                    "strength"          ,                                      7448                    unified_name=          "use_unified_strength"          ,                                      7449                    pressure_name=          "use_pressure_strength"          ,                                      7450                    slider=          True          ,                                      7451                    )                                      7452                                                7453                    if          capabilities.has_auto_smooth:                                      7454                    layout.          prop          (brush,          "auto_smooth_factor"          ,          slider=          True          )                                      7455                                                7456                    if          capabilities.has_normal_weight:                                      7457                    layout.          prop          (brush,          "normal_weight"          ,          slider=          True          )                                      7458                                                7459                    if          capabilities.has_pinch_factor:                                      7460                    text          =          "Pinch"                                      7461                    if          brush.sculpt_tool          in          {          'BLOB'          ,          'SNAKE_HOOK'          }:                                      7462                    text          =          "Magnify"                                      7463                    layout.          prop          (brush,          "crease_pinch_factor"          ,          slider=          True          ,          text=text)                                      7464                                                7465                    if          capabilities.has_rake_factor:                                      7466                    layout.          prop          (brush,          "rake_factor"          ,          slider=          True          )                                      7467                                                7468                    if          capabilities.has_plane_offset:                                      7469                    layout.          prop          (brush,          "plane_offset"          ,          slider=          True          )                                      7470                    layout.          prop          (brush,          "plane_trim"          ,          slider=          True          ,          text=          "Distance"          )                                      7471                                                7472                    if          capabilities.has_height:                                      7473                    layout.          prop          (brush,          "height"          ,          slider=          True          ,          text=          "Height"          )                                      7474                                                7475                                                7476                    class          TOPBAR_PT_gpencil_materials          (GreasePencilMaterialsPanel,          Panel):                                      7477                    bl_space_type          =          'VIEW_3D'                                      7478                    bl_region_type          =          'HEADER'                                      7479                    bl_label          =          "Materials"                                      7480                    bl_ui_units_x          =          14                                      7481                                                7482                    @classmethod                                      7483                    def          poll          (cls,          context):                                      7484                    ob          =          context.          object                                      7485                    return          ob          and          ob.          type          ==          'GPENCIL'                                      7486                                                7487                                                7488                    class          TOPBAR_PT_gpencil_vertexcolor          (GreasePencilVertexcolorPanel,          Panel):                                      7489                    bl_space_type          =          'VIEW_3D'                                      7490                    bl_region_type          =          'HEADER'                                      7491                    bl_label          =          "Vertex Color"                                      7492                    bl_ui_units_x          =          10                                      7493                                                7494                    @classmethod                                      7495                    def          poll          (cls,          context):                                      7496                    ob          =          context.          object                                      7497                    return          ob          and          ob.          type          ==          'GPENCIL'                                      7498                                                7499                                                7500          classes          = (                                      7501                    VIEW3D_HT_header,                                      7502                    VIEW3D_HT_tool_header,                                      7503                    VIEW3D_MT_editor_menus,                                      7504                    VIEW3D_MT_transform,                                      7505                    VIEW3D_MT_transform_object,                                      7506                    VIEW3D_MT_transform_armature,                                      7507                    VIEW3D_MT_mirror,                                      7508                    VIEW3D_MT_snap,                                      7509                    VIEW3D_MT_uv_map,                                      7510                    VIEW3D_MT_view,                                      7511                    VIEW3D_MT_view_local,                                      7512                    VIEW3D_MT_view_cameras,                                      7513                    VIEW3D_MT_view_navigation,                                      7514                    VIEW3D_MT_view_align,                                      7515                    VIEW3D_MT_view_align_selected,                                      7516                    VIEW3D_MT_view_viewpoint,                                      7517                    VIEW3D_MT_view_regions,                                      7518                    VIEW3D_MT_select_object,                                      7519                    VIEW3D_MT_select_object_more_less,                                      7520                    VIEW3D_MT_select_pose,                                      7521                    VIEW3D_MT_select_pose_more_less,                                      7522                    VIEW3D_MT_select_particle,                                      7523                    VIEW3D_MT_edit_mesh,                                      7524                    VIEW3D_MT_edit_mesh_select_similar,                                      7525                    VIEW3D_MT_edit_mesh_select_by_trait,                                      7526                    VIEW3D_MT_edit_mesh_select_more_less,                                      7527                    VIEW3D_MT_select_edit_mesh,                                      7528                    VIEW3D_MT_select_edit_curve,                                      7529                    VIEW3D_MT_select_edit_surface,                                      7530                    VIEW3D_MT_select_edit_text,                                      7531                    VIEW3D_MT_select_edit_metaball,                                      7532                    VIEW3D_MT_edit_lattice_context_menu,                                      7533                    VIEW3D_MT_select_edit_lattice,                                      7534                    VIEW3D_MT_select_edit_armature,                                      7535                    VIEW3D_MT_select_gpencil,                                      7536                    VIEW3D_MT_select_paint_mask,                                      7537                    VIEW3D_MT_select_paint_mask_vertex,                                      7538                    VIEW3D_MT_angle_control,                                      7539                    VIEW3D_MT_mesh_add,                                      7540                    VIEW3D_MT_curve_add,                                      7541                    VIEW3D_MT_surface_add,                                      7542                    VIEW3D_MT_edit_metaball_context_menu,                                      7543                    VIEW3D_MT_metaball_add,                                      7544                    TOPBAR_MT_edit_curve_add,                                      7545                    TOPBAR_MT_edit_armature_add,                                      7546                    VIEW3D_MT_armature_add,                                      7547                    VIEW3D_MT_light_add,                                      7548                    VIEW3D_MT_lightprobe_add,                                      7549                    VIEW3D_MT_camera_add,                                      7550                    VIEW3D_MT_volume_add,                                      7551                    VIEW3D_MT_add,                                      7552                    VIEW3D_MT_image_add,                                      7553                    VIEW3D_MT_object,                                      7554                    VIEW3D_MT_object_animation,                                      7555                    VIEW3D_MT_object_asset,                                      7556                    VIEW3D_MT_object_rigid_body,                                      7557                    VIEW3D_MT_object_clear,                                      7558                    VIEW3D_MT_object_context_menu,                                      7559                    VIEW3D_MT_object_convert,                                      7560                    VIEW3D_MT_object_shading,                                      7561                    VIEW3D_MT_object_apply,                                      7562                    VIEW3D_MT_object_relations,                                      7563                    VIEW3D_MT_object_parent,                                      7564                    VIEW3D_MT_object_track,                                      7565                    VIEW3D_MT_object_collection,                                      7566                    VIEW3D_MT_object_constraints,                                      7567                    VIEW3D_MT_object_quick_effects,                                      7568                    VIEW3D_MT_object_showhide,                                      7569                    VIEW3D_MT_object_cleanup,                                      7570                    VIEW3D_MT_make_single_user,                                      7571                    VIEW3D_MT_make_links,                                      7572                    VIEW3D_MT_brush_paint_modes,                                      7573                    VIEW3D_MT_paint_vertex,                                      7574                    VIEW3D_MT_hook,                                      7575                    VIEW3D_MT_vertex_group,                                      7576                    VIEW3D_MT_gpencil_vertex_group,                                      7577                    VIEW3D_MT_paint_weight,                                      7578                    VIEW3D_MT_paint_weight_lock,                                      7579                    VIEW3D_MT_sculpt,                                      7580                    VIEW3D_MT_sculpt_set_pivot,                                      7581                    VIEW3D_MT_mask,                                      7582                    VIEW3D_MT_face_sets,                                      7583                    VIEW3D_MT_face_sets_init,                                      7584                    VIEW3D_MT_random_mask,                                      7585                    VIEW3D_MT_particle,                                      7586                    VIEW3D_MT_particle_context_menu,                                      7587                    VIEW3D_MT_particle_showhide,                                      7588                    VIEW3D_MT_pose,                                      7589                    VIEW3D_MT_pose_transform,                                      7590                    VIEW3D_MT_pose_slide,                                      7591                    VIEW3D_MT_pose_propagate,                                      7592                    VIEW3D_MT_pose_library,                                      7593                    VIEW3D_MT_pose_motion,                                      7594                    VIEW3D_MT_pose_group,                                      7595                    VIEW3D_MT_pose_ik,                                      7596                    VIEW3D_MT_pose_constraints,                                      7597                    VIEW3D_MT_pose_names,                                      7598                    VIEW3D_MT_pose_showhide,                                      7599                    VIEW3D_MT_pose_apply,                                      7600                    VIEW3D_MT_pose_context_menu,                                      7601                    VIEW3D_MT_bone_options_toggle,                                      7602                    VIEW3D_MT_bone_options_enable,                                      7603                    VIEW3D_MT_bone_options_disable,                                      7604                    VIEW3D_MT_edit_mesh_context_menu,                                      7605                    VIEW3D_MT_edit_mesh_select_mode,                                      7606                    VIEW3D_MT_edit_mesh_select_linked,                                      7607                    VIEW3D_MT_edit_mesh_select_loops,                                      7608                    VIEW3D_MT_edit_mesh_extrude,                                      7609                    VIEW3D_MT_edit_mesh_vertices,                                      7610                    VIEW3D_MT_edit_mesh_edges,                                      7611                    VIEW3D_MT_edit_mesh_faces,                                      7612                    VIEW3D_MT_edit_mesh_faces_data,                                      7613                    VIEW3D_MT_edit_mesh_normals,                                      7614                    VIEW3D_MT_edit_mesh_normals_select_strength,                                      7615                    VIEW3D_MT_edit_mesh_normals_set_strength,                                      7616                    VIEW3D_MT_edit_mesh_normals_average,                                      7617                    VIEW3D_MT_edit_mesh_shading,                                      7618                    VIEW3D_MT_edit_mesh_weights,                                      7619                    VIEW3D_MT_edit_mesh_clean,                                      7620                    VIEW3D_MT_edit_mesh_delete,                                      7621                    VIEW3D_MT_edit_mesh_merge,                                      7622                    VIEW3D_MT_edit_mesh_split,                                      7623                    VIEW3D_MT_edit_mesh_showhide,                                      7624                    VIEW3D_MT_paint_gpencil,                                      7625                    VIEW3D_MT_draw_gpencil,                                      7626                    VIEW3D_MT_assign_material,                                      7627                    VIEW3D_MT_edit_gpencil,                                      7628                    VIEW3D_MT_edit_gpencil_stroke,                                      7629                    VIEW3D_MT_edit_gpencil_point,                                      7630                    VIEW3D_MT_edit_gpencil_delete,                                      7631                    VIEW3D_MT_edit_gpencil_showhide,                                      7632                    VIEW3D_MT_weight_gpencil,                                      7633                    VIEW3D_MT_gpencil_animation,                                      7634                    VIEW3D_MT_gpencil_simplify,                                      7635                    VIEW3D_MT_gpencil_autoweights,                                      7636                    VIEW3D_MT_gpencil_edit_context_menu,                                      7637                    VIEW3D_MT_edit_curve,                                      7638                    VIEW3D_MT_edit_curve_ctrlpoints,                                      7639                    VIEW3D_MT_edit_curve_segments,                                      7640                    VIEW3D_MT_edit_curve_clean,                                      7641                    VIEW3D_MT_edit_curve_context_menu,                                      7642                    VIEW3D_MT_edit_curve_delete,                                      7643                    VIEW3D_MT_edit_curve_showhide,                                      7644                    VIEW3D_MT_edit_surface,                                      7645                    VIEW3D_MT_edit_font,                                      7646                    VIEW3D_MT_edit_font_chars,                                      7647                    VIEW3D_MT_edit_font_kerning,                                      7648                    VIEW3D_MT_edit_font_delete,                                      7649                    VIEW3D_MT_edit_font_context_menu,                                      7650                    VIEW3D_MT_edit_meta,                                      7651                    VIEW3D_MT_edit_meta_showhide,                                      7652                    VIEW3D_MT_edit_lattice,                                      7653                    VIEW3D_MT_edit_armature,                                      7654                    VIEW3D_MT_armature_context_menu,                                      7655                    VIEW3D_MT_edit_armature_parent,                                      7656                    VIEW3D_MT_edit_armature_roll,                                      7657                    VIEW3D_MT_edit_armature_names,                                      7658                    VIEW3D_MT_edit_armature_delete,                                      7659                    VIEW3D_MT_edit_gpencil_transform,                                      7660                    VIEW3D_MT_object_mode_pie,                                      7661                    VIEW3D_MT_view_pie,                                      7662                    VIEW3D_MT_transform_gizmo_pie,                                      7663                    VIEW3D_MT_shading_pie,                                      7664                    VIEW3D_MT_shading_ex_pie,                                      7665                    VIEW3D_MT_pivot_pie,                                      7666                    VIEW3D_MT_snap_pie,                                      7667                    VIEW3D_MT_orientations_pie,                                      7668                    VIEW3D_MT_proportional_editing_falloff_pie,                                      7669                    VIEW3D_MT_sculpt_mask_edit_pie,                                      7670                    VIEW3D_MT_sculpt_automasking_pie,                                      7671                    VIEW3D_MT_wpaint_vgroup_lock_pie,                                      7672                    VIEW3D_MT_sculpt_face_sets_edit_pie,                                      7673                    VIEW3D_PT_active_tool,                                      7674                    VIEW3D_PT_active_tool_duplicate,                                      7675                    VIEW3D_PT_view3d_properties,                                      7676                    VIEW3D_PT_view3d_lock,                                      7677                    VIEW3D_PT_view3d_cursor,                                      7678                    VIEW3D_PT_collections,                                      7679                    VIEW3D_PT_object_type_visibility,                                      7680                    VIEW3D_PT_grease_pencil,                                      7681                    VIEW3D_PT_annotation_onion,                                      7682                    VIEW3D_PT_gpencil_multi_frame,                                      7683                    VIEW3D_PT_gpencil_curve_edit,                                      7684                    VIEW3D_PT_quad_view,                                      7685                    VIEW3D_PT_view3d_stereo,                                      7686                    VIEW3D_PT_shading,                                      7687                    VIEW3D_PT_shading_lighting,                                      7688                    VIEW3D_PT_shading_color,                                      7689                    VIEW3D_PT_shading_options,                                      7690                    VIEW3D_PT_shading_options_shadow,                                      7691                    VIEW3D_PT_shading_options_ssao,                                      7692                    VIEW3D_PT_shading_render_pass,                                      7693                    VIEW3D_PT_gizmo_display,                                      7694                    VIEW3D_PT_overlay,                                      7695                    VIEW3D_PT_overlay_guides,                                      7696                    VIEW3D_PT_overlay_object,                                      7697                    VIEW3D_PT_overlay_geometry,                                      7698                    VIEW3D_PT_overlay_motion_tracking,                                      7699                    VIEW3D_PT_overlay_edit_mesh,                                      7700                    VIEW3D_PT_overlay_edit_mesh_shading,                                      7701                    VIEW3D_PT_overlay_edit_mesh_measurement,                                      7702                    VIEW3D_PT_overlay_edit_mesh_normals,                                      7703                    VIEW3D_PT_overlay_edit_mesh_freestyle,                                      7704                    VIEW3D_PT_overlay_edit_curve,                                      7705                    VIEW3D_PT_overlay_texture_paint,                                      7706                    VIEW3D_PT_overlay_vertex_paint,                                      7707                    VIEW3D_PT_overlay_weight_paint,                                      7708                    VIEW3D_PT_overlay_pose,                                      7709                    VIEW3D_PT_overlay_sculpt,                                      7710                    VIEW3D_PT_snapping,                                      7711                    VIEW3D_PT_proportional_edit,                                      7712                    VIEW3D_PT_gpencil_origin,                                      7713                    VIEW3D_PT_gpencil_lock,                                      7714                    VIEW3D_PT_gpencil_guide,                                      7715                    VIEW3D_PT_transform_orientations,                                      7716                    VIEW3D_PT_overlay_gpencil_options,                                      7717                    VIEW3D_PT_context_properties,                                      7718                    VIEW3D_PT_paint_vertex_context_menu,                                      7719                    VIEW3D_PT_paint_texture_context_menu,                                      7720                    VIEW3D_PT_paint_weight_context_menu,                                      7721                    VIEW3D_PT_gpencil_vertex_context_menu,                                      7722                    VIEW3D_PT_gpencil_sculpt_context_menu,                                      7723                    VIEW3D_PT_gpencil_weight_context_menu,                                      7724                    VIEW3D_PT_gpencil_draw_context_menu,                                      7725                    VIEW3D_PT_sculpt_context_menu,                                      7726                    TOPBAR_PT_gpencil_materials,                                      7727                    TOPBAR_PT_gpencil_vertexcolor,                                      7728                    TOPBAR_PT_annotation_layers,                                      7729                    )                                      7730                                                7731                                                7732                    if          __name__          ==          "__main__"          :          # only for live edit.                                      7733                    from          bpy.utils          import          register_class                              7734                    for          cls          in          classes:                                      7735                    register_class          (cls)              

Use_gpencil_draw_onback Toggle

Source: https://fossies.org/linux/blender/release/scripts/startup/bl_ui/space_view3d.py

0 Response to "Use_gpencil_draw_onback Toggle"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel