@@ -7,17 +7,19 @@ const NEAR_LIMIT = 5000;
7
7
export default class PanoScene extends HTMLElement {
8
8
#lp;
9
9
#item;
10
+ #panoIcon;
10
11
#near = new Map ( ) ;
11
12
12
13
constructor ( ) {
13
14
super ( ) ;
14
15
new ResizeObserver ( _ => this . #lp && this . #syncSize( ) ) . observe ( this ) ;
15
16
}
16
17
17
- show ( item , allItems ) {
18
+ show ( item , allItems , panoIcon ) {
18
19
let littlePlanet = document . createElement ( "little-planet" ) ;
19
20
littlePlanet . src = item [ "SourceFile" ] ;
20
21
this . #lp = littlePlanet ;
22
+ this . #panoIcon = panoIcon ;
21
23
22
24
// fixme odebrat
23
25
littlePlanet . addEventListener ( "change" , e => this . #onPanoChange( e ) ) ;
@@ -46,18 +48,18 @@ export default class PanoScene extends HTMLElement {
46
48
this . #syncSize( ) ;
47
49
}
48
50
49
- #syncSize( ) { // fixme resizeobserver
50
- const lp = this . #lp;
51
- lp . width = lp . clientWidth * DPR ;
52
- lp . height = lp . clientHeight * DPR ;
53
- }
54
-
55
51
highlight ( item ) {
56
52
for ( let [ i , near ] of this . #near. entries ( ) ) {
57
53
near . classList . toggle ( "highlight" , i == item ) ;
58
54
}
59
55
}
60
56
57
+ #syncSize( ) {
58
+ const lp = this . #lp;
59
+ lp . width = lp . clientWidth * DPR ;
60
+ lp . height = lp . clientHeight * DPR ;
61
+ }
62
+
61
63
#dispatch( type , item ) {
62
64
let event = new CustomEvent ( type , { detail :{ item} } ) ;
63
65
this . dispatchEvent ( event ) ;
@@ -71,11 +73,11 @@ export default class PanoScene extends HTMLElement {
71
73
switch ( mode ) {
72
74
case "pano" :
73
75
let angle = camera . lon + Number ( this . #item[ "FlightYawDegree" ] ) ;
74
- this . #item . panoIcon . drawFov ( angle , camera . fov ) ;
76
+ this . #panoIcon. drawFov ( angle , camera . fov ) ;
75
77
break ;
76
78
77
79
case "planet" :
78
- this . #item . panoIcon . hideFov ( ) ;
80
+ this . #panoIcon. hideFov ( ) ;
79
81
break ;
80
82
}
81
83
0 commit comments