Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormeta-androcto <meta.androcto1@gmail.com>2019-12-02 02:54:05 +0300
committermeta-androcto <meta.androcto1@gmail.com>2019-12-02 02:54:05 +0300
commit7cfd041403732d6913415eeda89769ea7d424cfe (patch)
treee9d22bb3991f096dbf395c5734b38585ddbe0df9 /add_camera_rigs/ui_panels.py
parent44680646e7111881f723729637e617ad35d63b1a (diff)
add camera rigs: update, move to folder structure: T71763
Diffstat (limited to 'add_camera_rigs/ui_panels.py')
-rw-r--r--add_camera_rigs/ui_panels.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/add_camera_rigs/ui_panels.py b/add_camera_rigs/ui_panels.py
new file mode 100644
index 00000000..3356d389
--- /dev/null
+++ b/add_camera_rigs/ui_panels.py
@@ -0,0 +1,89 @@
+import bpy
+from bpy.types import Panel
+
+
+class ADD_CAMERA_RIGS_PT_camera_rig_ui(Panel):
+ bl_category = 'Create'
+ bl_label = "Camera Rig UI"
+ bl_space_type = 'VIEW_3D'
+ bl_region_type = 'UI'
+
+ _ACTIVE_OBJECT: object = None
+
+ _ACTIVE_RIG_TYPE: str = None
+
+ @classmethod
+ def poll(self, context):
+ self._ACTIVE_OBJECT = bpy.context.active_object
+
+ if self._ACTIVE_OBJECT != None and "rig_id" in self._ACTIVE_OBJECT:
+ rigType = self._ACTIVE_OBJECT["rig_id"]
+
+ if rigType == "Dolly_rig" or rigType == "Crane_rig":
+ self._ACTIVE_RIG_TYPE = rigType
+ return True
+
+ return False
+
+ def draw(self, context):
+ arm = self._ACTIVE_OBJECT.data
+ poseBones = self._ACTIVE_OBJECT.pose.bones
+ activeCameraName = self._ACTIVE_OBJECT.children[0].name
+
+ cam = bpy.data.cameras[bpy.data.objects[activeCameraName].data.name]
+
+ layout = self.layout.box().column()
+ layout.label(text="Clipping:")
+ layout.prop(cam, "clip_start", text="Start")
+ layout.prop(cam, "clip_end", text="End")
+ layout.prop(cam, "type")
+ layout.prop(cam.dof, "use_dof")
+ if cam.dof.use_dof:
+ if cam.dof.focus_object is None:
+ layout.operator("add_camera_rigs.add_dof_object", text="Add DOF Empty")
+ layout.prop(poseBones["Camera"], '["focus_distance"]', text="Focus Distance")
+ layout.prop(poseBones["Camera"], '["f-stop"]', text="F-Stop")
+
+ layout.prop(self._ACTIVE_OBJECT, 'show_in_front', toggle=False, text='Show in front')
+ layout.prop(cam, "show_limits")
+ layout.prop(cam, "show_passepartout")
+ if cam.show_passepartout:
+ layout.prop(cam, "passepartout_alpha")
+
+ layout.row().separator()
+ # added the comp guides here
+ layout.operator(
+ "wm.call_menu", text="Composition Guides").name = "ADD_CAMERA_RIGS_MT_composition_guides_menu"
+ layout.row().separator()
+
+ layout.prop(bpy.data.objects[activeCameraName],
+ "hide_select", text="Make Camera Unselectable")
+
+ layout.operator("add_camera_rigs.add_marker_bind",
+ text="Add Marker and Bind")
+ if bpy.context.scene.camera.name != activeCameraName:
+ layout.operator("add_camera_rigs.set_scene_camera",
+ text="Make Camera Active", icon='CAMERA_DATA')
+ # Camera Lens
+ layout.label(text="Focal Length:")
+ layout.prop(poseBones["Camera"], '["focal_length"]', text="Focal Length (mm)")
+
+ if self._ACTIVE_RIG_TYPE == "Crane_rig":
+ layout = layout.box().column()
+
+ # Crane arm stuff
+ layout.label(text="Crane Arm:")
+ layout.prop(poseBones["Crane_height"], 'scale', index=1, text="Arm Height")
+ layout.prop(poseBones["Crane_arm"], 'scale', index=1, text="Arm Length")
+
+ # Track to Constraint
+ layout.label(text="Tracking:")
+ layout.prop(poseBones["Camera"], '["lock"]', text="Aim Lock", slider=True)
+
+
+def register():
+ bpy.utils.register_class(ADD_CAMERA_RIGS_PT_camera_rig_ui)
+
+
+def unregister():
+ bpy.utils.unregister_class(ADD_CAMERA_RIGS_PT_camera_rig_ui)