[Bf-blender-cvs] [00bb15512f5] blender2.8: Physics Fluid: Use Single Column and Grid Flow layout
Vuk GardaÅ¡eviÄ
noreply at git.blender.org
Fri Aug 17 12:05:46 CEST 2018
Commit: 00bb15512f5cbb1bcaf0bc5978e56ce0672b283f
Author: Vuk Gardašević
Date: Fri Aug 17 11:57:24 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB00bb15512f5cbb1bcaf0bc5978e56ce0672b283f
Physics Fluid: Use Single Column and Grid Flow layout
===================================================================
M release/scripts/startup/bl_ui/properties_physics_fluid.py
===================================================================
diff --git a/release/scripts/startup/bl_ui/properties_physics_fluid.py b/release/scripts/startup/bl_ui/properties_physics_fluid.py
index 94611808059..451b17b72b7 100644
--- a/release/scripts/startup/bl_ui/properties_physics_fluid.py
+++ b/release/scripts/startup/bl_ui/properties_physics_fluid.py
@@ -17,8 +17,11 @@
# ##### END GPL LICENSE BLOCK #####
# <pep8 compliant>
+
import bpy
-from bpy.types import Panel, Menu
+from bpy.types import (
+ Panel,
+)
from bpy.app.translations import pgettext_iface as iface_
from bl_operators.presets import PresetMenu
@@ -35,172 +38,239 @@ class PhysicButtonsPanel:
bl_region_type = 'WINDOW'
bl_context = "physics"
- @classmethod
- def poll(cls, context):
+ def poll_fluid(context):
ob = context.object
- return (ob and ob.type == 'MESH') and context.engine in cls.COMPAT_ENGINES and (context.fluid)
+ if not ((ob and ob.type == 'MESH') and (context.fluid)):
+ return False
+
+ return (bpy.app.build_options.mod_fluid)
+
+ def poll_fluid_settings(context):
+ if not (PhysicButtonsPanel.poll_fluid(context)):
+ return False
+
+ md = context.fluid
+ return md and md.settings and (md.settings.type != 'NONE')
+
+ def poll_fluid_domain(context):
+ if not PhysicButtonsPanel.poll_fluid(context):
+ return False
+
+ md = context.fluid
+ return md and md.settings and (md.settings.type == 'DOMAIN')
class PHYSICS_PT_fluid(PhysicButtonsPanel, Panel):
bl_label = "Fluid"
COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE'}
+ @classmethod
+ def poll(cls, context):
+ ob = context.object
+ return (ob and ob.type == 'MESH') and context.engine in cls.COMPAT_ENGINES and (context.fluid)
+
def draw(self, context):
layout = self.layout
+ layout.use_property_split = True
- md = context.fluid
- fluid = md.settings
-
- col = layout.column()
if not bpy.app.build_options.mod_fluid:
+ col = layout.column()
+ col.alignment = 'RIGHT'
col.label("Built without fluids")
return
+ md = context.fluid
+ fluid = md.settings
+
+ col = layout.column()
col.prop(fluid, "type")
+
+
+class PHYSICS_PT_fluid_settings(PhysicButtonsPanel, Panel):
+ bl_label = "Settings"
+ bl_parent_id = "PHYSICS_PT_fluid"
+ COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_EEVEE'}
+
+ @classmethod
+ def poll(cls, context):
+ if not PhysicButtonsPanel.poll_fluid_settings(context):
+ return False
+
+ return (context.engine in cls.COMPAT_ENGINES)
+
+ def draw_header(self, context):
+ md = context.fluid
+ fluid = md.settings
if fluid.type not in {'NONE', 'DOMAIN', 'PARTICLE', 'FLUID', 'OBSTACLE'}:
- col.prop(fluid, "use")
+ self.layout.prop(fluid, "use", text="")
+
+ def draw(self, context):
+ layout = self.layout
+ layout.use_property_split = True
+
+ md = context.fluid
+ fluid = md.settings
+
+ flow = layout.grid_flow(row_major=True, columns=0, even_columns=True, even_rows=False, align=True)
- layout = layout.column()
if fluid.type not in {'NONE', 'DOMAIN', 'PARTICLE', 'FLUID', 'OBSTACLE'}:
- layout.active = fluid.use
+ flow.active = fluid.use
if fluid.type == 'DOMAIN':
- # odd formatting here so translation script can extract string
- layout.operator("fluid.bake", text=iface_("Bake (Req. Memory: %s)") % fluid.memory_estimate,
- translate=False, icon='MOD_FLUIDSIM')
+ col = flow.column()
if bpy.app.build_options.openmp:
- layout.prop(fluid, "threads", text="Simulation Threads")
+ col.prop(fluid, "threads", text="Simulation Threads")
+ col.separator()
- split = layout.split()
+ col.prop(fluid, "resolution", text="Final Resolution")
+ col.prop(fluid, "preview_resolution", text="Preview")
- col = split.column()
- col.label(text="Resolution:")
- col.prop(fluid, "resolution", text="Final")
- col.label(text="Render Display:")
- col.prop(fluid, "render_display_mode", text="")
+ col.separator()
- col = split.column()
- col.label()
- col.prop(fluid, "preview_resolution", text="Preview")
- col.label(text="Viewport Display:")
- col.prop(fluid, "viewport_display_mode", text="")
+ col = flow.column()
+ col.prop(fluid, "render_display_mode", text="Render Display")
+ col.prop(fluid, "viewport_display_mode", text="Viewport")
- split = layout.split()
+ col.separator()
- col = split.column()
- col.label(text="Time:")
+ col = flow.column()
sub = col.column(align=True)
- sub.prop(fluid, "start_time", text="Start")
+ sub.prop(fluid, "start_time", text="Time Start")
sub.prop(fluid, "end_time", text="End")
col.prop(fluid, "simulation_rate", text="Speed")
- col = split.column()
- col.label()
- sub = col.column(align=True)
- sub.prop(fluid, "use_speed_vectors")
- sub.prop(fluid, "use_reverse_frames")
+ col = flow.column()
+ col.prop(fluid, "use_speed_vectors")
+ col.prop(fluid, "use_reverse_frames")
col.prop(fluid, "frame_offset", text="Offset")
- layout.prop(fluid, "filepath", text="")
-
elif fluid.type == 'FLUID':
- split = layout.split()
-
- col = split.column()
- col.label(text="Volume Initialization:")
- col.prop(fluid, "volume_initialization", text="")
+ col = flow.column()
+ col.prop(fluid, "volume_initialization", text="Volume Initialization")
col.prop(fluid, "use_animated_mesh")
- col = split.column()
- col.label(text="Initial Velocity:")
- col.prop(fluid, "initial_velocity", text="")
+ col = flow.column()
+ col.prop(fluid, "initial_velocity", text="Initial Velocity")
elif fluid.type == 'OBSTACLE':
- split = layout.split()
-
- col = split.column()
- col.label(text="Volume Initialization:")
- col.prop(fluid, "volume_initialization", text="")
+ col = flow.column()
+ col.prop(fluid, "volume_initialization", text="Volume Initialization")
col.prop(fluid, "use_animated_mesh")
- col = split.column()
- subsplit = col.split()
- subcol = subsplit.column()
- if fluid.use_animated_mesh:
- subcol.enabled = False
- subcol.label(text="Slip Type:")
- subcol.prop(fluid, "slip_type", text="")
+ col = flow.column()
+ subcol = col.column()
+ subcol.enabled = not fluid.use_animated_mesh
+ subcol.prop(fluid, "slip_type", text="Slip Type")
+
if fluid.slip_type == 'PARTIALSLIP':
- subcol.prop(fluid, "partial_slip_factor", slider=True, text="Amount")
+ subcol.prop(fluid, "partial_slip_factor", text="Amount", slider=True)
- col.label(text="Impact:")
- col.prop(fluid, "impact_factor", text="Factor")
+ col.prop(fluid, "impact_factor", text="Impact Factor")
elif fluid.type == 'INFLOW':
- split = layout.split()
-
- col = split.column()
- col.label(text="Volume Initialization:")
- col.prop(fluid, "volume_initialization", text="")
+ col = flow.column()
+ col.prop(fluid, "volume_initialization", text="Volume Initialization")
col.prop(fluid, "use_animated_mesh")
+
row = col.row()
row.active = not fluid.use_animated_mesh
row.prop(fluid, "use_local_coords")
- col = split.column()
- col.label(text="Inflow Velocity:")
- col.prop(fluid, "inflow_velocity", text="")
+ col = flow.column()
+ col.prop(fluid, "inflow_velocity", text="Inflow Velocity")
elif fluid.type == 'OUTFLOW':
- col = layout.column()
- col.label(text="Volume Initialization:")
- col.prop(fluid, "volume_initialization", text="")
+ col = flow.column()
+ col.prop(fluid, "volume_initialization", text="Volume Initialization")
+
+ col = flow.column()
col.prop(fluid, "use_animated_mesh")
elif fluid.type == 'PARTICLE':
- split = layout.split()
-
- col = split.column()
- col.label(text="Influence:")
- col.prop(fluid, "particle_influence", text="Size")
+ col = flow.column()
+ col.prop(fluid, "particle_influence", text="Influence Size")
col.prop(fluid, "alpha_influence", text="Alpha")
- col = split.column()
- col.label(text="Type:")
+ col = flow.column()
col.prop(fluid, "use_drops")
col.prop(fluid, "use_floats")
col.prop(fluid, "show_tracer")
- layout.prop(fluid, "filepath", text="")
-
elif fluid.type == 'CONTROL':
- split = layout.split()
-
- col = split.column()
- col.label(text="")
+ col = flow.column()
col.prop(fluid, "quality", slider=True)
col.prop(fluid, "use_reverse_frames")
- col = split.column()
- col.label(text="Time:")
- sub = col.column(align=True)
- sub.prop(fluid, "start_time", text="Start")
- sub.prop(fluid, "end_time", text="End")
+ col = flow.column()
+ col.prop(fluid, "start_time", text="Time Start")
+ col.prop(fluid, "end_time", text="End")
- split = layout.split()
+ col.separator()
-
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list