Переглянути джерело

Revert "push fix shit"

This reverts commit 9e6301d2bd90715b1ef42398f7dfc0423ac68d99.
Sergiu 11 місяців тому
батько
коміт
05698c4c10

+ 59 - 80
03_blender/sd_blender/__init__.py

@@ -416,94 +416,73 @@ def set_environment(scene_data):
 
 
 def create_cameras(scene_data):
-    # Get the 05_Cameras collection, or create it if it doesn't exist
+    # # Get the 05_Cameras collection, or create it if it doesn't exist
     collection_name = "05_Cameras"
     if collection_name in bpy.data.collections:
         collection = bpy.data.collections[collection_name]
     else:
         return
 
-    for camera_data in scene_data["scene"]["cameras"]:
-        if camera_data["properties"]["active"]:
-            # Create a new camera object
-            # bpy.ops.object.camera_add()
 
-            camera = bpy.data.objects["Camera"]
-
-            # Get the newly created camera
-            # camera = bpy.context.object
-            camera_position = bpy.data.objects["Camera_Transform"]
-            camera_rotation = bpy.data.objects["Camera_Rotation"]
-
-            position = camera_data["properties"]["transform"]["position"]
-            camera_position.location.x = position[0]
-            camera_position.location.y = -position[2]
-            camera_position.location.z = position[1]
-
-            rotation = camera_data["properties"]["transform"]["rotation"]
-
-            rotation_euler = Euler(
-                (
-                    math.radians(rotation[0] - 90),
-                    math.radians(rotation[2]),
-                    math.radians(rotation[1]),
-                ),
-                "XYZ",
-            )
+# Assuming `scene_data` and `collection` are already defined
+for camera_data in scene_data["scene"]["cameras"]:
+    # Create a new camera object
+    bpy.ops.object.camera_add()
+
+    # Get the newly created camera
+    camera = bpy.context.object
+
+    # Set the camera's name
+    camera.name = camera_data["name"]
+
+    # Set the camera's position
+    position = camera_data["properties"]["transform"]["position"]
+    camera.location.x = position[0]
+    camera.location.y = -position[2]
+    camera.location.z = position[1]
+
+    # Set the camera's rotation
+    rotation = camera_data["properties"]["transform"]["rotation"]
+    local_rotation = Euler(
+        (
+            math.radians(rotation[0]),
+            math.radians(rotation[1]),
+            math.radians(rotation[2]),
+        ),
+        "XYZ",
+    )
 
-            camera_rotation.rotation_euler = rotation_euler
-
-            # Set the camera's name
-            # camera.name = camera_data["name"]
-
-            # Set the camera's position
-            # position = camera_data["properties"]["transform"]["position"]
-            # camera.location.x = position[0]
-            # camera.location.y = -position[2]
-            # camera.location.z = position[1]
-
-            # Set the camera's rotation
-            # rotation = camera_data["properties"]["transform"]["rotation"]
-            # local_rotation = Euler(
-            #     (
-            #         math.radians(rotation[0]),
-            #         math.radians(rotation[1]),
-            #         math.radians(rotation[2]),
-            #     ),
-            #     "XYZ",
-            # )
-
-            # # Apply the local rotation to the camera
-            # camera.rotation_euler = local_rotation
-
-            # # Update the camera's matrix_world to apply the local transformation
-            # camera.matrix_world = camera.matrix_basis
-
-            # # Calculate the global rotation
-            # global_rotation = camera.matrix_world.to_euler()
-
-            # # Set the camera's rotation to the global rotation
-            # camera.rotation_euler = global_rotation
-
-            # Set the camera's lens properties
-            lens = camera_data["properties"]["lens"]
-            type_mapping = {
-                "PERSPECTIVE": "PERSP",
-                "ORTHOGRAPHIC": "ORTHO",
-                "PANORAMIC": "PANO",
-            }
-            camera.data.type = type_mapping.get(lens["type"].upper(), "PERSP")
-            camera.data.angle = math.radians(lens["fov"])
-            camera.data.clip_start = lens["near"]
-            camera.data.clip_end = lens["far"]
-
-            # Add the camera to the 05_Cameras collection
-            # collection.objects.link(camera)
-            # bpy.context.scene.collection.objects.unlink(camera)
-
-            # Set the camera as the active camera if "active" is true
-            # if camera_data["properties"]["active"]:
-            #     bpy.context.scene.camera = camera
+    # Apply the local rotation to the camera
+    camera.rotation_euler = local_rotation
+
+    # Update the camera's matrix_world to apply the local transformation
+    camera.matrix_world = camera.matrix_basis
+
+    # Calculate the global rotation
+    global_rotation = camera.matrix_world.to_euler()
+
+    # Set the camera's rotation to the global rotation
+    camera.rotation_euler = global_rotation
+
+    # Set the camera's lens properties
+    lens = camera_data["properties"]["lens"]
+    type_mapping = {
+        "PERSPECTIVE": "PERSP",
+        "ORTHOGRAPHIC": "ORTHO",
+        "PANORAMIC": "PANO",
+    }
+    camera.data.type = type_mapping.get(lens["type"].upper(), "PERSP")
+    camera.data.angle = math.radians(lens["fov"])
+    camera.data.clip_start = lens["near"]
+    camera.data.clip_end = lens["far"]
+
+    # Add the camera to the 05_Cameras collection
+    collection.objects.link(camera)
+    bpy.context.scene.collection.objects.unlink(camera)
+
+    # Set the camera as the active camera if "active" is true
+    if camera_data["properties"]["active"]:
+        bpy.context.scene.camera = camera
 
 
 def set_output_paths(base_path, project_name):

BIN
03_blender/sd_blender/__pycache__/__init__.cpython-311.pyc