;i dZddlZddlZddlmZddlm Z ej dZ ej Z e e de dejZeddd ed e eejejd d aejt2ddZedddeddde eejdddZejdddZde dd dze d ddzz zaejeet2dZ!e!ddde e!ejejd d aejdddZejdddZej"de#Z$ej%ej&e dd dze d ddzzdzdd e$d<e$de$d <ejt2e$ d!d"dd#$Z'e'ddde'ddde e'd%Z(d&Z)ejdde(d z e(d zd Zejdde)d z d e)d zZedzedzzdzZ*e*dzdzZ+ej,dej-dzej-d'z Z.ej/e*ej0d(fe. e.j1dd d ze+ej0d(fz aejedddfedddfd)d#d#*a2ej3gd+td4d,<tdd d de tdda5d-Z6e j7Z8e8j9:e6e8;d.e__doc__numpynp pyqtgraphpgpyqtgraph.openglopenglgl pyqtgraph.QtrmkQAppapp GLViewWidgetwshowsetWindowTitlesetCameraPosition GLGridItemgscale setDepthValueaddItemgaussianFilterrandomnormalr GLSurfacePlotItemp1 translatelinspacerrreshapep2onesfloatrclipcosp3colsrowsdd2arangepiphisinnewaxisr"r arrayr rr&QTimertimertimeoutconnectstart__name__execr#r$r%r]sbi'((BO3444R BMOO!A ! Bbi&&G&44e<<RAh6FGGG'3 S!Q " BKArBKArAIIbOOq QYYq__%9 :;RAa >>> SQ " Bbi&&G&44e<<BKRBKR % ( ( (2aA!5!))Ab//Q:N OTWWXXZ[]^__u u u RAfnnU1&=&=hW\]]]'3 QQ "   BKAtAv&&tAva00BKAtAv&&qa00TAqD[C#X^bi257BE#I&& BF1RZ^ s{{39Q<A>> >??"RZPS^BTT RAaaacF!AAA#}UZchiii""(#F#F#FGG J RQ "  &&&   f B z BGIIIIIr$