| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- import torch
- import traceback
- import socket
- import json
- from scene.cameras import MiniCam
- host = "127.0.0.1"
- port = 6009
- conn = None
- addr = None
- listener = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- def init(wish_host, wish_port):
- global host, port, listener
- host = wish_host
- port = wish_port
- listener.bind((host, port))
- listener.listen()
- listener.settimeout(0)
- def try_connect():
- global conn, addr, listener
- try:
- conn, addr = listener.accept()
- print(f"\nConnected by {addr}")
- conn.settimeout(None)
- except Exception as inst:
- pass
-
- def read():
- global conn
- messageLength = conn.recv(4)
- messageLength = int.from_bytes(messageLength, 'little')
- message = conn.recv(messageLength)
- return json.loads(message.decode("utf-8"))
- def send(message_bytes, verify):
- global conn
- if message_bytes != None:
- conn.sendall(message_bytes)
- conn.sendall(len(verify).to_bytes(4, 'little'))
- conn.sendall(bytes(verify, 'ascii'))
- def receive():
- message = read()
- width = message["resolution_x"]
- height = message["resolution_y"]
- if width != 0 and height != 0:
- try:
- do_training = bool(message["train"])
- fovy = message["fov_y"]
- fovx = message["fov_x"]
- znear = message["z_near"]
- zfar = message["z_far"]
- do_shs_python = bool(message["shs_python"])
- do_rot_scale_python = bool(message["rot_scale_python"])
- keep_alive = bool(message["keep_alive"])
- scaling_modifier = message["scaling_modifier"]
- world_view_transform = torch.reshape(torch.tensor(message["view_matrix"]), (4, 4)).cuda()
- world_view_transform[:,1] = -world_view_transform[:,1]
- world_view_transform[:,2] = -world_view_transform[:,2]
- full_proj_transform = torch.reshape(torch.tensor(message["view_projection_matrix"]), (4, 4)).cuda()
- full_proj_transform[:,1] = -full_proj_transform[:,1]
- custom_cam = MiniCam(width, height, fovy, fovx, znear, zfar, world_view_transform, full_proj_transform)
- except Exception as e:
- print("")
- traceback.print_exc()
- raise e
- return custom_cam, do_training, do_shs_python, do_rot_scale_python, keep_alive, scaling_modifier
- else:
- return None, None, None, None, None, None
|