Return a BCF camera for an IFC element placement matrix. Args: camera_position: camera position array camera_dir: camera direction versor camera_up_vector: camera up versor Returns: The BCF camera definition.
(
camera_position: list[float], camera_dir: list[float], camera_up: list[float]
)
| 379 | |
| 380 | |
| 381 | def build_camera_from_vectors( |
| 382 | camera_position: list[float], camera_dir: list[float], camera_up: list[float] |
| 383 | ) -> mdl.PerspectiveCamera: |
| 384 | """ |
| 385 | Return a BCF camera for an IFC element placement matrix. |
| 386 | |
| 387 | Args: |
| 388 | camera_position: camera position array |
| 389 | camera_dir: camera direction versor |
| 390 | camera_up_vector: camera up versor |
| 391 | |
| 392 | Returns: |
| 393 | The BCF camera definition. |
| 394 | """ |
| 395 | camera_viewpoint = mdl.Point(x=camera_position[0], y=camera_position[1], z=camera_position[2]) |
| 396 | camera_direction = mdl.Direction(x=camera_dir[0], y=camera_dir[1], z=camera_dir[2]) |
| 397 | camera_up_vector = mdl.Direction(x=camera_up[0], y=camera_up[1], z=camera_up[2]) |
| 398 | return mdl.PerspectiveCamera( |
| 399 | camera_view_point=camera_viewpoint, |
| 400 | camera_direction=camera_direction, |
| 401 | camera_up_vector=camera_up_vector, |
| 402 | field_of_view=60.0, |
| 403 | ) |
no outgoing calls