MCPcopy Create free account
hub / github.com/MotrixLab/AiOS / add_camera

Method add_camera

detrsmpl/core/renderer/vedo_render.py:53–89  ·  view source on GitHub ↗

Add an camera to the scene. Args: camera_parameter (CameraParameter): An instance of class CameraParameter which stores rotation, translation and name of a camera. arrow_len (int, optional): Length of the arrow. Default

(self, camera_parameter, arrow_len=30)

Source from the content-addressed store, hash-verified

51 scipy_Rotation.from_euler('z', 180, degrees=True)
52
53 def add_camera(self, camera_parameter, arrow_len=30):
54 """Add an camera to the scene.
55
56 Args:
57 camera_parameter (CameraParameter):
58 An instance of class CameraParameter which stores
59 rotation, translation and name of a camera.
60 arrow_len (int, optional):
61 Length of the arrow. Defaults to 30.
62
63 Returns:
64 list:
65 A list of vedo items related to the input camera.
66 """
67 rot_mat = np.asarray(camera_parameter.get_value('rotation_mat'))
68 translation = np.asarray(camera_parameter.get_value('translation'))
69 cam_center = -np.linalg.inv(rot_mat).dot(translation)
70 arrow_end_origin = np.eye(3) * arrow_len * self.scale
71 colors = ['r', 'g', 'b'] # r-x, g-y, b-z
72 arrow_end_camera = \
73 np.einsum('ij,kj->ki', np.linalg.inv(rot_mat), arrow_end_origin)
74 if self.y_reverse:
75 cam_center = self.y_reverse_rotation.apply(cam_center)
76 for axis_index in range(3):
77 arrow_end_camera[axis_index, :] = \
78 self.y_reverse_rotation.apply(
79 arrow_end_camera[axis_index, :]
80 )
81 vedo_list = []
82 for i in range(3):
83 vedo_list.append(
84 vedo.Arrows([cam_center],
85 [cam_center + arrow_end_camera[i]]).c(colors[i]))
86 vedo_list.append(
87 vedo.Text3D(camera_parameter.name, cam_center, s=self.scale * 10))
88 self.camera_list += vedo_list
89 return vedo_list
90
91 def show(self, with_axis=True, interactive=True):
92 """Show cameras as well as axis arrow by vedo.show()

Calls 1

get_valueMethod · 0.80

Tested by

no test coverage detected