def write_camera(self, camera, name="Active Camera"): pos, target, up = camera.GetOrientation() bpy.ops.object.add(type='CAMERA', location=pos) ob = self.context.object ob.name = name z = (Vector(pos) - Vector(target)) x = Vector(up).cross(z) y = z.cross(x) x.normalize() y.normalize() z.normalize() ob.matrix_world.col[0] = x.resized(4) ob.matrix_world.col[1] = y.resized(4) ob.matrix_world.col[2] = z.resized(4) cam = ob.data aspect_ratio = camera.aspect_ratio fov = camera.fov if aspect_ratio == False: # we seem to be using dynamic / screen aspect ratio sketchupLog( "CAMERA {} uses dynamic / screen aspect ratio ".format(name)) aspect_ratio = self.aspect_ratio if fov == False: sketchupLog("CAMERA {} is ortho ".format(name)) cam.type = 'ORTHO' else: cam.angle = (pi * fov / 180) * aspect_ratio cam.clip_end = self.prefs.camera_far_plane cam.name = name
def write_camera(self, camera, name="Active Camera"): pos, target, up = camera.GetOrientation() bpy.ops.object.add(type='CAMERA', location=pos) ob = self.context.object ob.name = name z = (Vector(pos) - Vector(target)) x = Vector(up).cross(z) y = z.cross(x) x.normalize() y.normalize() z.normalize() ob.matrix_world.col[0] = x.resized(4) ob.matrix_world.col[1] = y.resized(4) ob.matrix_world.col[2] = z.resized(4) cam = ob.data aspect_ratio = camera.aspect_ratio fov = camera.fov if aspect_ratio == False: # skp_log(f"Camera:'{name}' uses dynamic/screen aspect ratio.") aspect_ratio = self.aspect_ratio if fov == False: skp_log(f"Camera:'{name}'' is in Orthographic Mode.") cam.type = 'ORTHO' else: cam.angle = (pi * fov / 180) * aspect_ratio cam.clip_end = self.prefs.camera_far_plane cam.name = name
def write_camera(self, camera, name="Active Camera"): pos, target, up = camera.GetOrientation() bpy.ops.object.add(type='CAMERA', location=pos) ob = self.context.object ob.name = name z = (Vector(pos) - Vector(target)) x = Vector(up).cross(z) y = z.cross(x) x.normalize() y.normalize() z.normalize() ob.matrix_world.col[0] = x.resized(4) ob.matrix_world.col[1] = y.resized(4) ob.matrix_world.col[2] = z.resized(4) cam = ob.data aspect_ratio = camera.aspect_ratio fov = camera.fov if aspect_ratio == False: # we seem to be using dynamic / screen aspect ratio sketchupLog("CAMERA {} uses dynamic / screen aspect ratio ".format(name)) aspect_ratio = self.aspect_ratio if fov == False: sketchupLog("CAMERA {} is ortho ".format(name)) cam.type = 'ORTHO' else: cam.angle = (pi * fov / 180 ) * aspect_ratio cam.clip_end = self.prefs.camera_far_plane cam.name = name
def write_camera(self, camera, name="Active Camera"): pos, target, up = camera.GetOrientation() bpy.ops.object.add(type='CAMERA', location=pos) ob = self.context.object ob.name = name z = (Vector(pos) - Vector(target)) x = Vector(up).cross(z) y = z.cross(x) x.normalize() y.normalize() z.normalize() ob.matrix_world.col[0] = x.resized(4) ob.matrix_world.col[1] = y.resized(4) ob.matrix_world.col[2] = z.resized(4) cam = ob.data aspect_ratio = camera.aspect_ratio if camera.aspect_ratio else self.aspect_ratio cam.angle = (pi * camera.fov / 180) * aspect_ratio cam.clip_end = self.prefs.camera_far_plane cam.name = name
def write_camera(self, camera, name="Active Camera"): pos, target, up = camera.GetOrientation() bpy.ops.object.add(type='CAMERA', location=pos) ob = self.context.object ob.name = name z = (Vector(pos) - Vector(target)) x = Vector(up).cross(z) y = z.cross(x) x.normalize() y.normalize() z.normalize() ob.matrix_world.col[0] = x.resized(4) ob.matrix_world.col[1] = y.resized(4) ob.matrix_world.col[2] = z.resized(4) cam = ob.data aspect_ratio = camera.aspect_ratio if camera.aspect_ratio else self.aspect_ratio cam.angle = (pi * camera.fov / 180 ) * aspect_ratio cam.clip_end = self.prefs.camera_far_plane cam.name = name