mage-engine 3.24.4 → 3.24.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.github/workflows/test.yml +29 -0
- package/__mocks__/three.js +178 -0
- package/coverage/clover.xml +3094 -0
- package/coverage/coverage-final.json +60 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +87 -0
- package/coverage/lcov-report/entities/Element.js.html +3463 -0
- package/coverage/lcov-report/entities/Entity.js.html +2740 -0
- package/coverage/lcov-report/entities/animations/AnimationHandler.js.html +1006 -0
- package/coverage/lcov-report/entities/animations/SpriteAnimationHandler.js.html +91 -0
- package/coverage/lcov-report/entities/animations/index.html +131 -0
- package/coverage/lcov-report/entities/animations/lib/NodeFrame.js.html +214 -0
- package/coverage/lcov-report/entities/animations/lib/index.html +116 -0
- package/coverage/lcov-report/entities/base/AnimatedSprite.js.html +220 -0
- package/coverage/lcov-report/entities/base/Axes.js.html +316 -0
- package/coverage/lcov-report/entities/base/Box.js.html +253 -0
- package/coverage/lcov-report/entities/base/Cone.js.html +304 -0
- package/coverage/lcov-report/entities/base/Cube.js.html +217 -0
- package/coverage/lcov-report/entities/base/CurveLine.js.html +166 -0
- package/coverage/lcov-report/entities/base/Cylinder.js.html +259 -0
- package/coverage/lcov-report/entities/base/Grid.js.html +190 -0
- package/coverage/lcov-report/entities/base/HelperSprite.js.html +163 -0
- package/coverage/lcov-report/entities/base/Label.js.html +373 -0
- package/coverage/lcov-report/entities/base/Line.js.html +334 -0
- package/coverage/lcov-report/entities/base/Plane.js.html +265 -0
- package/coverage/lcov-report/entities/base/Sphere.js.html +217 -0
- package/coverage/lcov-report/entities/base/Sprite.js.html +445 -0
- package/coverage/lcov-report/entities/base/index.html +326 -0
- package/coverage/lcov-report/entities/base/index.js.html +172 -0
- package/coverage/lcov-report/entities/camera.js.html +751 -0
- package/coverage/lcov-report/entities/constants.js.html +655 -0
- package/coverage/lcov-report/entities/index.html +176 -0
- package/coverage/lcov-report/entities/index.js.html +187 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/images/Images.js.html +724 -0
- package/coverage/lcov-report/images/index.html +116 -0
- package/coverage/lcov-report/index.html +266 -0
- package/coverage/lcov-report/lib/Color.js.html +187 -0
- package/coverage/lcov-report/lib/array.js.html +97 -0
- package/coverage/lcov-report/lib/colliders.js.html +217 -0
- package/coverage/lcov-report/lib/constants.js.html +1171 -0
- package/coverage/lcov-report/lib/dom.js.html +202 -0
- package/coverage/lcov-report/lib/easing.js.html +229 -0
- package/coverage/lcov-report/lib/features.js.html +826 -0
- package/coverage/lcov-report/lib/functions.js.html +130 -0
- package/coverage/lcov-report/lib/index.html +401 -0
- package/coverage/lcov-report/lib/location.js.html +127 -0
- package/coverage/lcov-report/lib/map.js.html +172 -0
- package/coverage/lcov-report/lib/math.js.html +511 -0
- package/coverage/lcov-report/lib/meshUtils.js.html +685 -0
- package/coverage/lcov-report/lib/messages.js.html +415 -0
- package/coverage/lcov-report/lib/network.js.html +136 -0
- package/coverage/lcov-report/lib/object.js.html +187 -0
- package/coverage/lcov-report/lib/palettes.js.html +259 -0
- package/coverage/lcov-report/lib/query.js.html +172 -0
- package/coverage/lcov-report/lib/strings.js.html +139 -0
- package/coverage/lcov-report/lib/url.js.html +85 -0
- package/coverage/lcov-report/lib/utils/assets.js.html +94 -0
- package/coverage/lcov-report/lib/utils/index.html +116 -0
- package/coverage/lcov-report/lib/uuid.js.html +112 -0
- package/coverage/lcov-report/models/Models.js.html +1489 -0
- package/coverage/lcov-report/models/SkeletonUtils.js.html +1879 -0
- package/coverage/lcov-report/models/index.html +131 -0
- package/coverage/lcov-report/physics/constants.js.html +307 -0
- package/coverage/lcov-report/physics/hitbox.js.html +235 -0
- package/coverage/lcov-report/physics/index.html +176 -0
- package/coverage/lcov-report/physics/index.js.html +1324 -0
- package/coverage/lcov-report/physics/messages.js.html +238 -0
- package/coverage/lcov-report/physics/utils.js.html +679 -0
- package/coverage/lcov-report/physics/worker/effects.js.html +325 -0
- package/coverage/lcov-report/physics/worker/elements.js.html +694 -0
- package/coverage/lcov-report/physics/worker/index.html +176 -0
- package/coverage/lcov-report/physics/worker/lib/dispatcher.js.html +160 -0
- package/coverage/lcov-report/physics/worker/lib/index.html +131 -0
- package/coverage/lcov-report/physics/worker/lib/math.js.html +109 -0
- package/coverage/lcov-report/physics/worker/player.js.html +301 -0
- package/coverage/lcov-report/physics/worker/vehicles.js.html +832 -0
- package/coverage/lcov-report/physics/worker/world.js.html +796 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +210 -0
- package/coverage/lcov.info +6368 -0
- package/dist/mage.js +7993 -9021
- package/eslint.config.js +73 -0
- package/jest.config.js +31 -0
- package/package.json +17 -5
|
@@ -0,0 +1,751 @@
|
|
|
1
|
+
|
|
2
|
+
<!doctype html>
|
|
3
|
+
<html lang="en">
|
|
4
|
+
|
|
5
|
+
<head>
|
|
6
|
+
<title>Code coverage report for entities/camera.js</title>
|
|
7
|
+
<meta charset="utf-8" />
|
|
8
|
+
<link rel="stylesheet" href="../prettify.css" />
|
|
9
|
+
<link rel="stylesheet" href="../base.css" />
|
|
10
|
+
<link rel="shortcut icon" type="image/x-icon" href="../favicon.png" />
|
|
11
|
+
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
12
|
+
<style type='text/css'>
|
|
13
|
+
.coverage-summary .sorter {
|
|
14
|
+
background-image: url(../sort-arrow-sprite.png);
|
|
15
|
+
}
|
|
16
|
+
</style>
|
|
17
|
+
</head>
|
|
18
|
+
|
|
19
|
+
<body>
|
|
20
|
+
<div class='wrapper'>
|
|
21
|
+
<div class='pad1'>
|
|
22
|
+
<h1><a href="../index.html">All files</a> / <a href="index.html">entities</a> camera.js</h1>
|
|
23
|
+
<div class='clearfix'>
|
|
24
|
+
|
|
25
|
+
<div class='fl pad1y space-right2'>
|
|
26
|
+
<span class="strong">0% </span>
|
|
27
|
+
<span class="quiet">Statements</span>
|
|
28
|
+
<span class='fraction'>0/86</span>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
<div class='fl pad1y space-right2'>
|
|
33
|
+
<span class="strong">0% </span>
|
|
34
|
+
<span class="quiet">Branches</span>
|
|
35
|
+
<span class='fraction'>0/52</span>
|
|
36
|
+
</div>
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
<div class='fl pad1y space-right2'>
|
|
40
|
+
<span class="strong">0% </span>
|
|
41
|
+
<span class="quiet">Functions</span>
|
|
42
|
+
<span class='fraction'>0/20</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
<div class='fl pad1y space-right2'>
|
|
47
|
+
<span class="strong">0% </span>
|
|
48
|
+
<span class="quiet">Lines</span>
|
|
49
|
+
<span class='fraction'>0/85</span>
|
|
50
|
+
</div>
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
</div>
|
|
54
|
+
<p class="quiet">
|
|
55
|
+
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
|
+
</p>
|
|
57
|
+
<template id="filterTemplate">
|
|
58
|
+
<div class="quiet">
|
|
59
|
+
Filter:
|
|
60
|
+
<input type="search" id="fileSearch">
|
|
61
|
+
</div>
|
|
62
|
+
</template>
|
|
63
|
+
</div>
|
|
64
|
+
<div class='status-line low'></div>
|
|
65
|
+
<pre><table class="coverage">
|
|
66
|
+
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
|
+
<a name='L2'></a><a href='#L2'>2</a>
|
|
68
|
+
<a name='L3'></a><a href='#L3'>3</a>
|
|
69
|
+
<a name='L4'></a><a href='#L4'>4</a>
|
|
70
|
+
<a name='L5'></a><a href='#L5'>5</a>
|
|
71
|
+
<a name='L6'></a><a href='#L6'>6</a>
|
|
72
|
+
<a name='L7'></a><a href='#L7'>7</a>
|
|
73
|
+
<a name='L8'></a><a href='#L8'>8</a>
|
|
74
|
+
<a name='L9'></a><a href='#L9'>9</a>
|
|
75
|
+
<a name='L10'></a><a href='#L10'>10</a>
|
|
76
|
+
<a name='L11'></a><a href='#L11'>11</a>
|
|
77
|
+
<a name='L12'></a><a href='#L12'>12</a>
|
|
78
|
+
<a name='L13'></a><a href='#L13'>13</a>
|
|
79
|
+
<a name='L14'></a><a href='#L14'>14</a>
|
|
80
|
+
<a name='L15'></a><a href='#L15'>15</a>
|
|
81
|
+
<a name='L16'></a><a href='#L16'>16</a>
|
|
82
|
+
<a name='L17'></a><a href='#L17'>17</a>
|
|
83
|
+
<a name='L18'></a><a href='#L18'>18</a>
|
|
84
|
+
<a name='L19'></a><a href='#L19'>19</a>
|
|
85
|
+
<a name='L20'></a><a href='#L20'>20</a>
|
|
86
|
+
<a name='L21'></a><a href='#L21'>21</a>
|
|
87
|
+
<a name='L22'></a><a href='#L22'>22</a>
|
|
88
|
+
<a name='L23'></a><a href='#L23'>23</a>
|
|
89
|
+
<a name='L24'></a><a href='#L24'>24</a>
|
|
90
|
+
<a name='L25'></a><a href='#L25'>25</a>
|
|
91
|
+
<a name='L26'></a><a href='#L26'>26</a>
|
|
92
|
+
<a name='L27'></a><a href='#L27'>27</a>
|
|
93
|
+
<a name='L28'></a><a href='#L28'>28</a>
|
|
94
|
+
<a name='L29'></a><a href='#L29'>29</a>
|
|
95
|
+
<a name='L30'></a><a href='#L30'>30</a>
|
|
96
|
+
<a name='L31'></a><a href='#L31'>31</a>
|
|
97
|
+
<a name='L32'></a><a href='#L32'>32</a>
|
|
98
|
+
<a name='L33'></a><a href='#L33'>33</a>
|
|
99
|
+
<a name='L34'></a><a href='#L34'>34</a>
|
|
100
|
+
<a name='L35'></a><a href='#L35'>35</a>
|
|
101
|
+
<a name='L36'></a><a href='#L36'>36</a>
|
|
102
|
+
<a name='L37'></a><a href='#L37'>37</a>
|
|
103
|
+
<a name='L38'></a><a href='#L38'>38</a>
|
|
104
|
+
<a name='L39'></a><a href='#L39'>39</a>
|
|
105
|
+
<a name='L40'></a><a href='#L40'>40</a>
|
|
106
|
+
<a name='L41'></a><a href='#L41'>41</a>
|
|
107
|
+
<a name='L42'></a><a href='#L42'>42</a>
|
|
108
|
+
<a name='L43'></a><a href='#L43'>43</a>
|
|
109
|
+
<a name='L44'></a><a href='#L44'>44</a>
|
|
110
|
+
<a name='L45'></a><a href='#L45'>45</a>
|
|
111
|
+
<a name='L46'></a><a href='#L46'>46</a>
|
|
112
|
+
<a name='L47'></a><a href='#L47'>47</a>
|
|
113
|
+
<a name='L48'></a><a href='#L48'>48</a>
|
|
114
|
+
<a name='L49'></a><a href='#L49'>49</a>
|
|
115
|
+
<a name='L50'></a><a href='#L50'>50</a>
|
|
116
|
+
<a name='L51'></a><a href='#L51'>51</a>
|
|
117
|
+
<a name='L52'></a><a href='#L52'>52</a>
|
|
118
|
+
<a name='L53'></a><a href='#L53'>53</a>
|
|
119
|
+
<a name='L54'></a><a href='#L54'>54</a>
|
|
120
|
+
<a name='L55'></a><a href='#L55'>55</a>
|
|
121
|
+
<a name='L56'></a><a href='#L56'>56</a>
|
|
122
|
+
<a name='L57'></a><a href='#L57'>57</a>
|
|
123
|
+
<a name='L58'></a><a href='#L58'>58</a>
|
|
124
|
+
<a name='L59'></a><a href='#L59'>59</a>
|
|
125
|
+
<a name='L60'></a><a href='#L60'>60</a>
|
|
126
|
+
<a name='L61'></a><a href='#L61'>61</a>
|
|
127
|
+
<a name='L62'></a><a href='#L62'>62</a>
|
|
128
|
+
<a name='L63'></a><a href='#L63'>63</a>
|
|
129
|
+
<a name='L64'></a><a href='#L64'>64</a>
|
|
130
|
+
<a name='L65'></a><a href='#L65'>65</a>
|
|
131
|
+
<a name='L66'></a><a href='#L66'>66</a>
|
|
132
|
+
<a name='L67'></a><a href='#L67'>67</a>
|
|
133
|
+
<a name='L68'></a><a href='#L68'>68</a>
|
|
134
|
+
<a name='L69'></a><a href='#L69'>69</a>
|
|
135
|
+
<a name='L70'></a><a href='#L70'>70</a>
|
|
136
|
+
<a name='L71'></a><a href='#L71'>71</a>
|
|
137
|
+
<a name='L72'></a><a href='#L72'>72</a>
|
|
138
|
+
<a name='L73'></a><a href='#L73'>73</a>
|
|
139
|
+
<a name='L74'></a><a href='#L74'>74</a>
|
|
140
|
+
<a name='L75'></a><a href='#L75'>75</a>
|
|
141
|
+
<a name='L76'></a><a href='#L76'>76</a>
|
|
142
|
+
<a name='L77'></a><a href='#L77'>77</a>
|
|
143
|
+
<a name='L78'></a><a href='#L78'>78</a>
|
|
144
|
+
<a name='L79'></a><a href='#L79'>79</a>
|
|
145
|
+
<a name='L80'></a><a href='#L80'>80</a>
|
|
146
|
+
<a name='L81'></a><a href='#L81'>81</a>
|
|
147
|
+
<a name='L82'></a><a href='#L82'>82</a>
|
|
148
|
+
<a name='L83'></a><a href='#L83'>83</a>
|
|
149
|
+
<a name='L84'></a><a href='#L84'>84</a>
|
|
150
|
+
<a name='L85'></a><a href='#L85'>85</a>
|
|
151
|
+
<a name='L86'></a><a href='#L86'>86</a>
|
|
152
|
+
<a name='L87'></a><a href='#L87'>87</a>
|
|
153
|
+
<a name='L88'></a><a href='#L88'>88</a>
|
|
154
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
155
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
156
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
157
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
158
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
159
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
160
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
161
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
162
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
163
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
164
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
165
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
166
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
167
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
168
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
169
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
170
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
171
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
172
|
+
<a name='L107'></a><a href='#L107'>107</a>
|
|
173
|
+
<a name='L108'></a><a href='#L108'>108</a>
|
|
174
|
+
<a name='L109'></a><a href='#L109'>109</a>
|
|
175
|
+
<a name='L110'></a><a href='#L110'>110</a>
|
|
176
|
+
<a name='L111'></a><a href='#L111'>111</a>
|
|
177
|
+
<a name='L112'></a><a href='#L112'>112</a>
|
|
178
|
+
<a name='L113'></a><a href='#L113'>113</a>
|
|
179
|
+
<a name='L114'></a><a href='#L114'>114</a>
|
|
180
|
+
<a name='L115'></a><a href='#L115'>115</a>
|
|
181
|
+
<a name='L116'></a><a href='#L116'>116</a>
|
|
182
|
+
<a name='L117'></a><a href='#L117'>117</a>
|
|
183
|
+
<a name='L118'></a><a href='#L118'>118</a>
|
|
184
|
+
<a name='L119'></a><a href='#L119'>119</a>
|
|
185
|
+
<a name='L120'></a><a href='#L120'>120</a>
|
|
186
|
+
<a name='L121'></a><a href='#L121'>121</a>
|
|
187
|
+
<a name='L122'></a><a href='#L122'>122</a>
|
|
188
|
+
<a name='L123'></a><a href='#L123'>123</a>
|
|
189
|
+
<a name='L124'></a><a href='#L124'>124</a>
|
|
190
|
+
<a name='L125'></a><a href='#L125'>125</a>
|
|
191
|
+
<a name='L126'></a><a href='#L126'>126</a>
|
|
192
|
+
<a name='L127'></a><a href='#L127'>127</a>
|
|
193
|
+
<a name='L128'></a><a href='#L128'>128</a>
|
|
194
|
+
<a name='L129'></a><a href='#L129'>129</a>
|
|
195
|
+
<a name='L130'></a><a href='#L130'>130</a>
|
|
196
|
+
<a name='L131'></a><a href='#L131'>131</a>
|
|
197
|
+
<a name='L132'></a><a href='#L132'>132</a>
|
|
198
|
+
<a name='L133'></a><a href='#L133'>133</a>
|
|
199
|
+
<a name='L134'></a><a href='#L134'>134</a>
|
|
200
|
+
<a name='L135'></a><a href='#L135'>135</a>
|
|
201
|
+
<a name='L136'></a><a href='#L136'>136</a>
|
|
202
|
+
<a name='L137'></a><a href='#L137'>137</a>
|
|
203
|
+
<a name='L138'></a><a href='#L138'>138</a>
|
|
204
|
+
<a name='L139'></a><a href='#L139'>139</a>
|
|
205
|
+
<a name='L140'></a><a href='#L140'>140</a>
|
|
206
|
+
<a name='L141'></a><a href='#L141'>141</a>
|
|
207
|
+
<a name='L142'></a><a href='#L142'>142</a>
|
|
208
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
209
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
210
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
211
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
212
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
213
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
214
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
215
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
216
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
217
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
218
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
219
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
220
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
221
|
+
<a name='L156'></a><a href='#L156'>156</a>
|
|
222
|
+
<a name='L157'></a><a href='#L157'>157</a>
|
|
223
|
+
<a name='L158'></a><a href='#L158'>158</a>
|
|
224
|
+
<a name='L159'></a><a href='#L159'>159</a>
|
|
225
|
+
<a name='L160'></a><a href='#L160'>160</a>
|
|
226
|
+
<a name='L161'></a><a href='#L161'>161</a>
|
|
227
|
+
<a name='L162'></a><a href='#L162'>162</a>
|
|
228
|
+
<a name='L163'></a><a href='#L163'>163</a>
|
|
229
|
+
<a name='L164'></a><a href='#L164'>164</a>
|
|
230
|
+
<a name='L165'></a><a href='#L165'>165</a>
|
|
231
|
+
<a name='L166'></a><a href='#L166'>166</a>
|
|
232
|
+
<a name='L167'></a><a href='#L167'>167</a>
|
|
233
|
+
<a name='L168'></a><a href='#L168'>168</a>
|
|
234
|
+
<a name='L169'></a><a href='#L169'>169</a>
|
|
235
|
+
<a name='L170'></a><a href='#L170'>170</a>
|
|
236
|
+
<a name='L171'></a><a href='#L171'>171</a>
|
|
237
|
+
<a name='L172'></a><a href='#L172'>172</a>
|
|
238
|
+
<a name='L173'></a><a href='#L173'>173</a>
|
|
239
|
+
<a name='L174'></a><a href='#L174'>174</a>
|
|
240
|
+
<a name='L175'></a><a href='#L175'>175</a>
|
|
241
|
+
<a name='L176'></a><a href='#L176'>176</a>
|
|
242
|
+
<a name='L177'></a><a href='#L177'>177</a>
|
|
243
|
+
<a name='L178'></a><a href='#L178'>178</a>
|
|
244
|
+
<a name='L179'></a><a href='#L179'>179</a>
|
|
245
|
+
<a name='L180'></a><a href='#L180'>180</a>
|
|
246
|
+
<a name='L181'></a><a href='#L181'>181</a>
|
|
247
|
+
<a name='L182'></a><a href='#L182'>182</a>
|
|
248
|
+
<a name='L183'></a><a href='#L183'>183</a>
|
|
249
|
+
<a name='L184'></a><a href='#L184'>184</a>
|
|
250
|
+
<a name='L185'></a><a href='#L185'>185</a>
|
|
251
|
+
<a name='L186'></a><a href='#L186'>186</a>
|
|
252
|
+
<a name='L187'></a><a href='#L187'>187</a>
|
|
253
|
+
<a name='L188'></a><a href='#L188'>188</a>
|
|
254
|
+
<a name='L189'></a><a href='#L189'>189</a>
|
|
255
|
+
<a name='L190'></a><a href='#L190'>190</a>
|
|
256
|
+
<a name='L191'></a><a href='#L191'>191</a>
|
|
257
|
+
<a name='L192'></a><a href='#L192'>192</a>
|
|
258
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
259
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
260
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
261
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
262
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
263
|
+
<a name='L198'></a><a href='#L198'>198</a>
|
|
264
|
+
<a name='L199'></a><a href='#L199'>199</a>
|
|
265
|
+
<a name='L200'></a><a href='#L200'>200</a>
|
|
266
|
+
<a name='L201'></a><a href='#L201'>201</a>
|
|
267
|
+
<a name='L202'></a><a href='#L202'>202</a>
|
|
268
|
+
<a name='L203'></a><a href='#L203'>203</a>
|
|
269
|
+
<a name='L204'></a><a href='#L204'>204</a>
|
|
270
|
+
<a name='L205'></a><a href='#L205'>205</a>
|
|
271
|
+
<a name='L206'></a><a href='#L206'>206</a>
|
|
272
|
+
<a name='L207'></a><a href='#L207'>207</a>
|
|
273
|
+
<a name='L208'></a><a href='#L208'>208</a>
|
|
274
|
+
<a name='L209'></a><a href='#L209'>209</a>
|
|
275
|
+
<a name='L210'></a><a href='#L210'>210</a>
|
|
276
|
+
<a name='L211'></a><a href='#L211'>211</a>
|
|
277
|
+
<a name='L212'></a><a href='#L212'>212</a>
|
|
278
|
+
<a name='L213'></a><a href='#L213'>213</a>
|
|
279
|
+
<a name='L214'></a><a href='#L214'>214</a>
|
|
280
|
+
<a name='L215'></a><a href='#L215'>215</a>
|
|
281
|
+
<a name='L216'></a><a href='#L216'>216</a>
|
|
282
|
+
<a name='L217'></a><a href='#L217'>217</a>
|
|
283
|
+
<a name='L218'></a><a href='#L218'>218</a>
|
|
284
|
+
<a name='L219'></a><a href='#L219'>219</a>
|
|
285
|
+
<a name='L220'></a><a href='#L220'>220</a>
|
|
286
|
+
<a name='L221'></a><a href='#L221'>221</a>
|
|
287
|
+
<a name='L222'></a><a href='#L222'>222</a>
|
|
288
|
+
<a name='L223'></a><a href='#L223'>223</a></td><td class="line-coverage quiet"><span class="cline-any cline-neutral"> </span>
|
|
289
|
+
<span class="cline-any cline-neutral"> </span>
|
|
290
|
+
<span class="cline-any cline-neutral"> </span>
|
|
291
|
+
<span class="cline-any cline-neutral"> </span>
|
|
292
|
+
<span class="cline-any cline-neutral"> </span>
|
|
293
|
+
<span class="cline-any cline-neutral"> </span>
|
|
294
|
+
<span class="cline-any cline-neutral"> </span>
|
|
295
|
+
<span class="cline-any cline-neutral"> </span>
|
|
296
|
+
<span class="cline-any cline-neutral"> </span>
|
|
297
|
+
<span class="cline-any cline-neutral"> </span>
|
|
298
|
+
<span class="cline-any cline-neutral"> </span>
|
|
299
|
+
<span class="cline-any cline-neutral"> </span>
|
|
300
|
+
<span class="cline-any cline-neutral"> </span>
|
|
301
|
+
<span class="cline-any cline-neutral"> </span>
|
|
302
|
+
<span class="cline-any cline-neutral"> </span>
|
|
303
|
+
<span class="cline-any cline-neutral"> </span>
|
|
304
|
+
<span class="cline-any cline-neutral"> </span>
|
|
305
|
+
<span class="cline-any cline-no"> </span>
|
|
306
|
+
<span class="cline-any cline-neutral"> </span>
|
|
307
|
+
<span class="cline-any cline-no"> </span>
|
|
308
|
+
<span class="cline-any cline-neutral"> </span>
|
|
309
|
+
<span class="cline-any cline-no"> </span>
|
|
310
|
+
<span class="cline-any cline-no"> </span>
|
|
311
|
+
<span class="cline-any cline-neutral"> </span>
|
|
312
|
+
<span class="cline-any cline-no"> </span>
|
|
313
|
+
<span class="cline-any cline-no"> </span>
|
|
314
|
+
<span class="cline-any cline-no"> </span>
|
|
315
|
+
<span class="cline-any cline-no"> </span>
|
|
316
|
+
<span class="cline-any cline-neutral"> </span>
|
|
317
|
+
<span class="cline-any cline-neutral"> </span>
|
|
318
|
+
<span class="cline-any cline-no"> </span>
|
|
319
|
+
<span class="cline-any cline-neutral"> </span>
|
|
320
|
+
<span class="cline-any cline-no"> </span>
|
|
321
|
+
<span class="cline-any cline-neutral"> </span>
|
|
322
|
+
<span class="cline-any cline-no"> </span>
|
|
323
|
+
<span class="cline-any cline-neutral"> </span>
|
|
324
|
+
<span class="cline-any cline-neutral"> </span>
|
|
325
|
+
<span class="cline-any cline-neutral"> </span>
|
|
326
|
+
<span class="cline-any cline-no"> </span>
|
|
327
|
+
<span class="cline-any cline-neutral"> </span>
|
|
328
|
+
<span class="cline-any cline-neutral"> </span>
|
|
329
|
+
<span class="cline-any cline-neutral"> </span>
|
|
330
|
+
<span class="cline-any cline-no"> </span>
|
|
331
|
+
<span class="cline-any cline-neutral"> </span>
|
|
332
|
+
<span class="cline-any cline-neutral"> </span>
|
|
333
|
+
<span class="cline-any cline-neutral"> </span>
|
|
334
|
+
<span class="cline-any cline-no"> </span>
|
|
335
|
+
<span class="cline-any cline-neutral"> </span>
|
|
336
|
+
<span class="cline-any cline-no"> </span>
|
|
337
|
+
<span class="cline-any cline-no"> </span>
|
|
338
|
+
<span class="cline-any cline-no"> </span>
|
|
339
|
+
<span class="cline-any cline-no"> </span>
|
|
340
|
+
<span class="cline-any cline-no"> </span>
|
|
341
|
+
<span class="cline-any cline-no"> </span>
|
|
342
|
+
<span class="cline-any cline-no"> </span>
|
|
343
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
|
+
<span class="cline-any cline-no"> </span>
|
|
345
|
+
<span class="cline-any cline-neutral"> </span>
|
|
346
|
+
<span class="cline-any cline-no"> </span>
|
|
347
|
+
<span class="cline-any cline-neutral"> </span>
|
|
348
|
+
<span class="cline-any cline-no"> </span>
|
|
349
|
+
<span class="cline-any cline-neutral"> </span>
|
|
350
|
+
<span class="cline-any cline-neutral"> </span>
|
|
351
|
+
<span class="cline-any cline-no"> </span>
|
|
352
|
+
<span class="cline-any cline-no"> </span>
|
|
353
|
+
<span class="cline-any cline-neutral"> </span>
|
|
354
|
+
<span class="cline-any cline-neutral"> </span>
|
|
355
|
+
<span class="cline-any cline-neutral"> </span>
|
|
356
|
+
<span class="cline-any cline-neutral"> </span>
|
|
357
|
+
<span class="cline-any cline-no"> </span>
|
|
358
|
+
<span class="cline-any cline-neutral"> </span>
|
|
359
|
+
<span class="cline-any cline-neutral"> </span>
|
|
360
|
+
<span class="cline-any cline-no"> </span>
|
|
361
|
+
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-no"> </span>
|
|
364
|
+
<span class="cline-any cline-neutral"> </span>
|
|
365
|
+
<span class="cline-any cline-neutral"> </span>
|
|
366
|
+
<span class="cline-any cline-no"> </span>
|
|
367
|
+
<span class="cline-any cline-no"> </span>
|
|
368
|
+
<span class="cline-any cline-no"> </span>
|
|
369
|
+
<span class="cline-any cline-no"> </span>
|
|
370
|
+
<span class="cline-any cline-no"> </span>
|
|
371
|
+
<span class="cline-any cline-no"> </span>
|
|
372
|
+
<span class="cline-any cline-no"> </span>
|
|
373
|
+
<span class="cline-any cline-no"> </span>
|
|
374
|
+
<span class="cline-any cline-neutral"> </span>
|
|
375
|
+
<span class="cline-any cline-neutral"> </span>
|
|
376
|
+
<span class="cline-any cline-neutral"> </span>
|
|
377
|
+
<span class="cline-any cline-no"> </span>
|
|
378
|
+
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-neutral"> </span>
|
|
380
|
+
<span class="cline-any cline-no"> </span>
|
|
381
|
+
<span class="cline-any cline-no"> </span>
|
|
382
|
+
<span class="cline-any cline-no"> </span>
|
|
383
|
+
<span class="cline-any cline-no"> </span>
|
|
384
|
+
<span class="cline-any cline-neutral"> </span>
|
|
385
|
+
<span class="cline-any cline-neutral"> </span>
|
|
386
|
+
<span class="cline-any cline-no"> </span>
|
|
387
|
+
<span class="cline-any cline-neutral"> </span>
|
|
388
|
+
<span class="cline-any cline-neutral"> </span>
|
|
389
|
+
<span class="cline-any cline-no"> </span>
|
|
390
|
+
<span class="cline-any cline-neutral"> </span>
|
|
391
|
+
<span class="cline-any cline-no"> </span>
|
|
392
|
+
<span class="cline-any cline-neutral"> </span>
|
|
393
|
+
<span class="cline-any cline-neutral"> </span>
|
|
394
|
+
<span class="cline-any cline-neutral"> </span>
|
|
395
|
+
<span class="cline-any cline-no"> </span>
|
|
396
|
+
<span class="cline-any cline-neutral"> </span>
|
|
397
|
+
<span class="cline-any cline-neutral"> </span>
|
|
398
|
+
<span class="cline-any cline-neutral"> </span>
|
|
399
|
+
<span class="cline-any cline-neutral"> </span>
|
|
400
|
+
<span class="cline-any cline-neutral"> </span>
|
|
401
|
+
<span class="cline-any cline-neutral"> </span>
|
|
402
|
+
<span class="cline-any cline-neutral"> </span>
|
|
403
|
+
<span class="cline-any cline-no"> </span>
|
|
404
|
+
<span class="cline-any cline-no"> </span>
|
|
405
|
+
<span class="cline-any cline-neutral"> </span>
|
|
406
|
+
<span class="cline-any cline-no"> </span>
|
|
407
|
+
<span class="cline-any cline-neutral"> </span>
|
|
408
|
+
<span class="cline-any cline-neutral"> </span>
|
|
409
|
+
<span class="cline-any cline-neutral"> </span>
|
|
410
|
+
<span class="cline-any cline-neutral"> </span>
|
|
411
|
+
<span class="cline-any cline-neutral"> </span>
|
|
412
|
+
<span class="cline-any cline-neutral"> </span>
|
|
413
|
+
<span class="cline-any cline-neutral"> </span>
|
|
414
|
+
<span class="cline-any cline-no"> </span>
|
|
415
|
+
<span class="cline-any cline-no"> </span>
|
|
416
|
+
<span class="cline-any cline-neutral"> </span>
|
|
417
|
+
<span class="cline-any cline-neutral"> </span>
|
|
418
|
+
<span class="cline-any cline-neutral"> </span>
|
|
419
|
+
<span class="cline-any cline-no"> </span>
|
|
420
|
+
<span class="cline-any cline-no"> </span>
|
|
421
|
+
<span class="cline-any cline-neutral"> </span>
|
|
422
|
+
<span class="cline-any cline-neutral"> </span>
|
|
423
|
+
<span class="cline-any cline-neutral"> </span>
|
|
424
|
+
<span class="cline-any cline-neutral"> </span>
|
|
425
|
+
<span class="cline-any cline-neutral"> </span>
|
|
426
|
+
<span class="cline-any cline-neutral"> </span>
|
|
427
|
+
<span class="cline-any cline-no"> </span>
|
|
428
|
+
<span class="cline-any cline-neutral"> </span>
|
|
429
|
+
<span class="cline-any cline-no"> </span>
|
|
430
|
+
<span class="cline-any cline-no"> </span>
|
|
431
|
+
<span class="cline-any cline-neutral"> </span>
|
|
432
|
+
<span class="cline-any cline-neutral"> </span>
|
|
433
|
+
<span class="cline-any cline-no"> </span>
|
|
434
|
+
<span class="cline-any cline-no"> </span>
|
|
435
|
+
<span class="cline-any cline-neutral"> </span>
|
|
436
|
+
<span class="cline-any cline-neutral"> </span>
|
|
437
|
+
<span class="cline-any cline-neutral"> </span>
|
|
438
|
+
<span class="cline-any cline-neutral"> </span>
|
|
439
|
+
<span class="cline-any cline-no"> </span>
|
|
440
|
+
<span class="cline-any cline-neutral"> </span>
|
|
441
|
+
<span class="cline-any cline-neutral"> </span>
|
|
442
|
+
<span class="cline-any cline-no"> </span>
|
|
443
|
+
<span class="cline-any cline-no"> </span>
|
|
444
|
+
<span class="cline-any cline-neutral"> </span>
|
|
445
|
+
<span class="cline-any cline-neutral"> </span>
|
|
446
|
+
<span class="cline-any cline-neutral"> </span>
|
|
447
|
+
<span class="cline-any cline-no"> </span>
|
|
448
|
+
<span class="cline-any cline-neutral"> </span>
|
|
449
|
+
<span class="cline-any cline-no"> </span>
|
|
450
|
+
<span class="cline-any cline-no"> </span>
|
|
451
|
+
<span class="cline-any cline-neutral"> </span>
|
|
452
|
+
<span class="cline-any cline-neutral"> </span>
|
|
453
|
+
<span class="cline-any cline-neutral"> </span>
|
|
454
|
+
<span class="cline-any cline-neutral"> </span>
|
|
455
|
+
<span class="cline-any cline-no"> </span>
|
|
456
|
+
<span class="cline-any cline-neutral"> </span>
|
|
457
|
+
<span class="cline-any cline-no"> </span>
|
|
458
|
+
<span class="cline-any cline-no"> </span>
|
|
459
|
+
<span class="cline-any cline-neutral"> </span>
|
|
460
|
+
<span class="cline-any cline-neutral"> </span>
|
|
461
|
+
<span class="cline-any cline-no"> </span>
|
|
462
|
+
<span class="cline-any cline-neutral"> </span>
|
|
463
|
+
<span class="cline-any cline-neutral"> </span>
|
|
464
|
+
<span class="cline-any cline-neutral"> </span>
|
|
465
|
+
<span class="cline-any cline-neutral"> </span>
|
|
466
|
+
<span class="cline-any cline-neutral"> </span>
|
|
467
|
+
<span class="cline-any cline-no"> </span>
|
|
468
|
+
<span class="cline-any cline-neutral"> </span>
|
|
469
|
+
<span class="cline-any cline-neutral"> </span>
|
|
470
|
+
<span class="cline-any cline-neutral"> </span>
|
|
471
|
+
<span class="cline-any cline-no"> </span>
|
|
472
|
+
<span class="cline-any cline-no"> </span>
|
|
473
|
+
<span class="cline-any cline-no"> </span>
|
|
474
|
+
<span class="cline-any cline-no"> </span>
|
|
475
|
+
<span class="cline-any cline-neutral"> </span>
|
|
476
|
+
<span class="cline-any cline-neutral"> </span>
|
|
477
|
+
<span class="cline-any cline-neutral"> </span>
|
|
478
|
+
<span class="cline-any cline-no"> </span>
|
|
479
|
+
<span class="cline-any cline-neutral"> </span>
|
|
480
|
+
<span class="cline-any cline-neutral"> </span>
|
|
481
|
+
<span class="cline-any cline-neutral"> </span>
|
|
482
|
+
<span class="cline-any cline-no"> </span>
|
|
483
|
+
<span class="cline-any cline-no"> </span>
|
|
484
|
+
<span class="cline-any cline-no"> </span>
|
|
485
|
+
<span class="cline-any cline-no"> </span>
|
|
486
|
+
<span class="cline-any cline-neutral"> </span>
|
|
487
|
+
<span class="cline-any cline-neutral"> </span>
|
|
488
|
+
<span class="cline-any cline-neutral"> </span>
|
|
489
|
+
<span class="cline-any cline-no"> </span>
|
|
490
|
+
<span class="cline-any cline-neutral"> </span>
|
|
491
|
+
<span class="cline-any cline-neutral"> </span>
|
|
492
|
+
<span class="cline-any cline-neutral"> </span>
|
|
493
|
+
<span class="cline-any cline-no"> </span>
|
|
494
|
+
<span class="cline-any cline-no"> </span>
|
|
495
|
+
<span class="cline-any cline-no"> </span>
|
|
496
|
+
<span class="cline-any cline-no"> </span>
|
|
497
|
+
<span class="cline-any cline-neutral"> </span>
|
|
498
|
+
<span class="cline-any cline-neutral"> </span>
|
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
500
|
+
<span class="cline-any cline-no"> </span>
|
|
501
|
+
<span class="cline-any cline-no"> </span>
|
|
502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
503
|
+
<span class="cline-any cline-neutral"> </span>
|
|
504
|
+
<span class="cline-any cline-neutral"> </span>
|
|
505
|
+
<span class="cline-any cline-neutral"> </span>
|
|
506
|
+
<span class="cline-any cline-neutral"> </span>
|
|
507
|
+
<span class="cline-any cline-neutral"> </span>
|
|
508
|
+
<span class="cline-any cline-neutral"> </span>
|
|
509
|
+
<span class="cline-any cline-neutral"> </span>
|
|
510
|
+
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import { PerspectiveCamera, Vector3, CameraHelper } from "three";
|
|
511
|
+
import config from "../core/config";
|
|
512
|
+
import Scene from "../core/Scene";
|
|
513
|
+
import { ENTITY_TYPES } from "./constants";
|
|
514
|
+
import Entity from "./Entity";
|
|
515
|
+
import HelperSprite from "./base/HelperSprite";
|
|
516
|
+
import { TAGS } from "../lib/constants";
|
|
517
|
+
|
|
518
|
+
export default class Camera extends Entity {
|
|
519
|
+
<span class="fstat-no" title="function not covered" > co</span>nstructor(options = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
520
|
+
const {
|
|
521
|
+
name = <span class="branch-0 cbranch-no" title="branch not covered" >"Main PerspectiveCamera",</span>
|
|
522
|
+
fov = <span class="branch-0 cbranch-no" title="branch not covered" >config.camera().fov,</span>
|
|
523
|
+
ratio = <span class="branch-0 cbranch-no" title="branch not covered" >config.screen().ratio,</span>
|
|
524
|
+
near = <span class="branch-0 cbranch-no" title="branch not covered" >config.camera().near,</span>
|
|
525
|
+
far = <span class="branch-0 cbranch-no" title="branch not covered" >config.camera().far,</span>
|
|
526
|
+
serializable = <span class="branch-0 cbranch-no" title="branch not covered" >true,</span>
|
|
527
|
+
} = <span class="cstat-no" title="statement not covered" >options;</span>
|
|
528
|
+
|
|
529
|
+
<span class="cstat-no" title="statement not covered" > super({ name, serializable });</span>
|
|
530
|
+
|
|
531
|
+
<span class="cstat-no" title="statement not covered" > this.extendOptions(options);</span>
|
|
532
|
+
const body = <span class="cstat-no" title="statement not covered" >new PerspectiveCamera(fov, ratio, near, far);</span>
|
|
533
|
+
|
|
534
|
+
<span class="cstat-no" title="statement not covered" > this.setBody({ body });</span>
|
|
535
|
+
<span class="cstat-no" title="statement not covered" > this.setEntityType(ENTITY_TYPES.CAMERA.TYPE);</span>
|
|
536
|
+
<span class="cstat-no" title="statement not covered" > this.setEntitySubtype(ENTITY_TYPES.CAMERA.SUBTYPES.MAIN);</span>
|
|
537
|
+
<span class="cstat-no" title="statement not covered" > this.setName(name);</span>
|
|
538
|
+
|
|
539
|
+
// Helper body for this camera
|
|
540
|
+
<span class="cstat-no" title="statement not covered" > this.isUsingHelper = false;</span>
|
|
541
|
+
// Holder body representing the camera (for selection in editor)
|
|
542
|
+
<span class="cstat-no" title="statement not covered" > this.holder = null;</span>
|
|
543
|
+
// THREE.js CameraHelper for visual feedback
|
|
544
|
+
<span class="cstat-no" title="statement not covered" > this.helper = null;</span>
|
|
545
|
+
}
|
|
546
|
+
|
|
547
|
+
<span class="fstat-no" title="function not covered" > ha</span>sHolder() {
|
|
548
|
+
<span class="cstat-no" title="statement not covered" > return !!this.holder;</span>
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
<span class="fstat-no" title="function not covered" > us</span>ingHelper() {
|
|
552
|
+
<span class="cstat-no" title="statement not covered" > return this.isUsingHelper;</span>
|
|
553
|
+
}
|
|
554
|
+
|
|
555
|
+
<span class="fstat-no" title="function not covered" > ad</span>dHolder(name = <span class="branch-0 cbranch-no" title="branch not covered" >"cameraholder",</span> size = <span class="branch-0 cbranch-no" title="branch not covered" >0.05)</span> {
|
|
556
|
+
const holderSprite = <span class="cstat-no" title="statement not covered" >new HelperSprite(size, size, name, { name });</span>
|
|
557
|
+
|
|
558
|
+
<span class="cstat-no" title="statement not covered" > if (holderSprite) {</span>
|
|
559
|
+
<span class="cstat-no" title="statement not covered" > holderSprite.setSizeAttenuation(false);</span>
|
|
560
|
+
<span class="cstat-no" title="statement not covered" > holderSprite.setDepthTest(false);</span>
|
|
561
|
+
<span class="cstat-no" title="statement not covered" > holderSprite.setDepthWrite(false);</span>
|
|
562
|
+
<span class="cstat-no" title="statement not covered" > holderSprite.setSerializable(false);</span>
|
|
563
|
+
<span class="cstat-no" title="statement not covered" > holderSprite.setPosition(this.getPosition());</span>
|
|
564
|
+
<span class="cstat-no" title="statement not covered" > holderSprite.addTags([TAGS.HELPER, TAGS.CAMERA_HELPER, name]);</span>
|
|
565
|
+
|
|
566
|
+
<span class="cstat-no" title="statement not covered" > holderSprite.setHelperTarget(this);</span>
|
|
567
|
+
|
|
568
|
+
<span class="cstat-no" title="statement not covered" > this.holder = holderSprite;</span>
|
|
569
|
+
|
|
570
|
+
<span class="cstat-no" title="statement not covered" > return true;</span>
|
|
571
|
+
}
|
|
572
|
+
|
|
573
|
+
<span class="cstat-no" title="statement not covered" > console.warn("[Mage] Camera holder texture not found");</span>
|
|
574
|
+
<span class="cstat-no" title="statement not covered" > return false;</span>
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
<span class="fstat-no" title="function not covered" > ad</span>dHelpers({ holderName = <span class="branch-0 cbranch-no" title="branch not covered" >"cameraholder",</span> holderSize = <span class="branch-0 cbranch-no" title="branch not covered" >0.05 </span>} = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
578
|
+
// Add THREE.js CameraHelper for visual feedback
|
|
579
|
+
<span class="cstat-no" title="statement not covered" > this.helper = new CameraHelper(this.getBody());</span>
|
|
580
|
+
|
|
581
|
+
// Set to layer 1 ONLY so mirrors don't render camera helper
|
|
582
|
+
<span class="cstat-no" title="statement not covered" > this.helper.layers.set(1);</span>
|
|
583
|
+
|
|
584
|
+
// Disable depth test so helper always renders on top of sky/water
|
|
585
|
+
<span class="cstat-no" title="statement not covered" > this.helper.renderOrder = 999;</span>
|
|
586
|
+
|
|
587
|
+
// Helper function to set depth properties on materials
|
|
588
|
+
const setMaterialDepth = <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >(m</span>aterial) => {</span>
|
|
589
|
+
<span class="cstat-no" title="statement not covered" > if (!material) <span class="cstat-no" title="statement not covered" >return;</span></span>
|
|
590
|
+
const mats = <span class="cstat-no" title="statement not covered" >Array.isArray(material) ? material : [material];</span>
|
|
591
|
+
<span class="cstat-no" title="statement not covered" > mats.forEach(<span class="fstat-no" title="function not covered" >ma</span>t => {</span>
|
|
592
|
+
<span class="cstat-no" title="statement not covered" > mat.depthTest = false;</span>
|
|
593
|
+
<span class="cstat-no" title="statement not covered" > mat.depthWrite = false;</span>
|
|
594
|
+
<span class="cstat-no" title="statement not covered" > mat.transparent = true;</span>
|
|
595
|
+
<span class="cstat-no" title="statement not covered" > mat.needsUpdate = true;</span>
|
|
596
|
+
});
|
|
597
|
+
};
|
|
598
|
+
|
|
599
|
+
<span class="cstat-no" title="statement not covered" > setMaterialDepth(this.helper.material);</span>
|
|
600
|
+
|
|
601
|
+
// Also apply to all children
|
|
602
|
+
<span class="cstat-no" title="statement not covered" > this.helper.traverse(<span class="fstat-no" title="function not covered" >ch</span>ild => {</span>
|
|
603
|
+
<span class="cstat-no" title="statement not covered" > child.layers.set(1);</span>
|
|
604
|
+
<span class="cstat-no" title="statement not covered" > child.renderOrder = 999;</span>
|
|
605
|
+
<span class="cstat-no" title="statement not covered" > setMaterialDepth(child.material);</span>
|
|
606
|
+
});
|
|
607
|
+
|
|
608
|
+
<span class="cstat-no" title="statement not covered" > Scene.add(this.helper, null, false);</span>
|
|
609
|
+
|
|
610
|
+
// Add holder sprite for selection
|
|
611
|
+
<span class="cstat-no" title="statement not covered" > this.addHolder(holderName, holderSize);</span>
|
|
612
|
+
|
|
613
|
+
<span class="cstat-no" title="statement not covered" > this.isUsingHelper = true;</span>
|
|
614
|
+
}
|
|
615
|
+
|
|
616
|
+
<span class="fstat-no" title="function not covered" > ge</span>tPosition() {
|
|
617
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
618
|
+
x: this.body.position.x,
|
|
619
|
+
y: this.body.position.y,
|
|
620
|
+
z: this.body.position.z,
|
|
621
|
+
};
|
|
622
|
+
}
|
|
623
|
+
|
|
624
|
+
<span class="fstat-no" title="function not covered" > ge</span>tDirection() {
|
|
625
|
+
const vector = <span class="cstat-no" title="statement not covered" >new Vector3();</span>
|
|
626
|
+
const { x, y, z } = <span class="cstat-no" title="statement not covered" >this.getBody().getWorldDirection(vector);</span>
|
|
627
|
+
|
|
628
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
629
|
+
x,
|
|
630
|
+
y,
|
|
631
|
+
z,
|
|
632
|
+
};
|
|
633
|
+
}
|
|
634
|
+
|
|
635
|
+
<span class="fstat-no" title="function not covered" > lo</span>okAt(position = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
636
|
+
const { x = <span class="branch-0 cbranch-no" title="branch not covered" >0,</span> y = <span class="branch-0 cbranch-no" title="branch not covered" >0,</span> z = <span class="branch-0 cbranch-no" title="branch not covered" >0 </span>} = <span class="cstat-no" title="statement not covered" >position;</span>
|
|
637
|
+
<span class="cstat-no" title="statement not covered" > this.body.lookAt(x, y, z);</span>
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
<span class="fstat-no" title="function not covered" > se</span>tPosition(where, { updateHolder = <span class="branch-0 cbranch-no" title="branch not covered" >true </span>} = <span class="branch-0 cbranch-no" title="branch not covered" >{})</span> {
|
|
641
|
+
const currentPos = <span class="cstat-no" title="statement not covered" >this.getPosition();</span>
|
|
642
|
+
const position = <span class="cstat-no" title="statement not covered" >{</span>
|
|
643
|
+
x: currentPos.x,
|
|
644
|
+
y: currentPos.y,
|
|
645
|
+
z: currentPos.z,
|
|
646
|
+
...where,
|
|
647
|
+
};
|
|
648
|
+
|
|
649
|
+
const { x, y, z } = <span class="cstat-no" title="statement not covered" >position;</span>
|
|
650
|
+
|
|
651
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasBody()) {</span>
|
|
652
|
+
<span class="cstat-no" title="statement not covered" > this.body.position.set(x, y, z);</span>
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasHolder() && updateHolder) {</span>
|
|
656
|
+
<span class="cstat-no" title="statement not covered" > this.holder.setPosition({ x, y, z });</span>
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
|
|
660
|
+
<span class="fstat-no" title="function not covered" > up</span>date(dt) {
|
|
661
|
+
<span class="cstat-no" title="statement not covered" > super.update && super.update(dt);</span>
|
|
662
|
+
|
|
663
|
+
// Update the THREE.js CameraHelper
|
|
664
|
+
<span class="cstat-no" title="statement not covered" > if (this.usingHelper() && this.helper) {</span>
|
|
665
|
+
<span class="cstat-no" title="statement not covered" > this.helper.update();</span>
|
|
666
|
+
}
|
|
667
|
+
|
|
668
|
+
// Sync camera position from holder (when user drags the holder)
|
|
669
|
+
<span class="cstat-no" title="statement not covered" > if (this.hasHolder()) {</span>
|
|
670
|
+
// Read directly from the holder's THREE.js body position
|
|
671
|
+
const holderBody = <span class="cstat-no" title="statement not covered" >this.holder.getBody();</span>
|
|
672
|
+
const holderPos = <span class="cstat-no" title="statement not covered" >{</span>
|
|
673
|
+
x: holderBody.position.x,
|
|
674
|
+
y: holderBody.position.y,
|
|
675
|
+
z: holderBody.position.z,
|
|
676
|
+
};
|
|
677
|
+
const cameraPos = <span class="cstat-no" title="statement not covered" >this.getPosition();</span>
|
|
678
|
+
// Only update if positions differ significantly
|
|
679
|
+
const threshold = <span class="cstat-no" title="statement not covered" >0.001;</span>
|
|
680
|
+
<span class="cstat-no" title="statement not covered" > if (Math.abs(holderPos.x - cameraPos.x) > threshold ||</span>
|
|
681
|
+
Math.abs(holderPos.y - cameraPos.y) > threshold ||
|
|
682
|
+
Math.abs(holderPos.z - cameraPos.z) > threshold) {
|
|
683
|
+
<span class="cstat-no" title="statement not covered" > this.setPosition(holderPos, { updateHolder: false });</span>
|
|
684
|
+
}
|
|
685
|
+
}
|
|
686
|
+
}
|
|
687
|
+
|
|
688
|
+
<span class="fstat-no" title="function not covered" > ge</span>tFov() {
|
|
689
|
+
<span class="cstat-no" title="statement not covered" > return this.getBody().fov;</span>
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
<span class="fstat-no" title="function not covered" > se</span>tFov(fov) {
|
|
693
|
+
const num = <span class="cstat-no" title="statement not covered" >Number(fov);</span>
|
|
694
|
+
const numericFov = <span class="cstat-no" title="statement not covered" >Number.isFinite(num) ? num : 75;</span>
|
|
695
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().fov = numericFov;</span>
|
|
696
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().updateProjectionMatrix();</span>
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
<span class="fstat-no" title="function not covered" > ge</span>tNear() {
|
|
700
|
+
<span class="cstat-no" title="statement not covered" > return this.getBody().near;</span>
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
<span class="fstat-no" title="function not covered" > se</span>tNear(near) {
|
|
704
|
+
const num = <span class="cstat-no" title="statement not covered" >Number(near);</span>
|
|
705
|
+
const numericNear = <span class="cstat-no" title="statement not covered" >Number.isFinite(num) ? num : 0.1;</span>
|
|
706
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().near = numericNear;</span>
|
|
707
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().updateProjectionMatrix();</span>
|
|
708
|
+
}
|
|
709
|
+
|
|
710
|
+
<span class="fstat-no" title="function not covered" > ge</span>tFar() {
|
|
711
|
+
<span class="cstat-no" title="statement not covered" > return this.getBody().far;</span>
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
<span class="fstat-no" title="function not covered" > se</span>tFar(far) {
|
|
715
|
+
const num = <span class="cstat-no" title="statement not covered" >Number(far);</span>
|
|
716
|
+
const numericFar = <span class="cstat-no" title="statement not covered" >Number.isFinite(num) ? num : 3000000;</span>
|
|
717
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().far = numericFar;</span>
|
|
718
|
+
<span class="cstat-no" title="statement not covered" > this.getBody().updateProjectionMatrix();</span>
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
<span class="fstat-no" title="function not covered" > to</span>JSON(parseJSON = <span class="branch-0 cbranch-no" title="branch not covered" >false)</span> {
|
|
722
|
+
<span class="cstat-no" title="statement not covered" > if (this.isSerializable()) {</span>
|
|
723
|
+
<span class="cstat-no" title="statement not covered" > return {</span>
|
|
724
|
+
...super.toJSON(parseJSON),
|
|
725
|
+
fov: this.getFov(),
|
|
726
|
+
near: this.getNear(),
|
|
727
|
+
far: this.getFar(),
|
|
728
|
+
};
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
</pre></td></tr></table></pre>
|
|
733
|
+
|
|
734
|
+
<div class='push'></div><!-- for sticky footer -->
|
|
735
|
+
</div><!-- /wrapper -->
|
|
736
|
+
<div class='footer quiet pad2 space-top1 center small'>
|
|
737
|
+
Code coverage generated by
|
|
738
|
+
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
739
|
+
at 2026-03-02T17:28:15.675Z
|
|
740
|
+
</div>
|
|
741
|
+
<script src="../prettify.js"></script>
|
|
742
|
+
<script>
|
|
743
|
+
window.onload = function () {
|
|
744
|
+
prettyPrint();
|
|
745
|
+
};
|
|
746
|
+
</script>
|
|
747
|
+
<script src="../sorter.js"></script>
|
|
748
|
+
<script src="../block-navigation.js"></script>
|
|
749
|
+
</body>
|
|
750
|
+
</html>
|
|
751
|
+
|