a #e@sTddlmZddlmZddlmZddlmZGdddeZGdd d eZ d S) )TaskNestedView)get_and_check_project)Response) exceptionsc@s eZdZdddZdddZdS)SceneNcCs|||}t|jS)z3 Retrieve Potree scene information )get_and_check_taskr potree_scene)selfrequestpk project_pktaskr/webodm/app/api/potree.pygets z Scene.getcCsnt||dd|||}|j}|ddkr:tjdd|D]}|dvr>|||j|<q>|tdd iS) zE Store potree scene information (except camera view) change_projectpermstypePotreezInvalid potree scenedetail)viewZ pointcloudssettingssuccessT) rrdatarrValidationErrorr saver)r r r r rZscenekrrrposts  z Scene.post)NN)NN)__name__ __module__ __qualname__rr!rrrrrs rc@seZdZdddZdS) CameraViewNcCsdt||dd|||}|j}|s0tjdd|jsFddd}||_||jd<|td d iS) z/ Store camera view information rrzview parameter missingrrg333333?)rversionrrT)rrrrrr rr)r r r r rrZinit_prrrr!#s   zCameraView.post)NN)r"r#r$r!rrrrr%"sr%N) tasksrcommonrrest_framework.responserrest_frameworkrrr%rrrrs