6
6
* LICENSE file in the root directory of this source tree.
7
7
*/
8
8
9
-
10
9
'use strict' ;
11
10
12
- var createMesh = require ( 'gl-cone3d' ) . createConeMesh ;
11
+ var createScatterPlot = require ( 'gl-scatter3d' ) ;
12
+ var createConeMesh = require ( 'gl-cone3d' ) . createConeMesh ;
13
13
var cone2mesh = require ( './helpers' ) . cone2mesh ;
14
14
15
- function Mesh3DTrace ( scene , mesh , uid ) {
15
+ function Cone ( scene , uid ) {
16
16
this . scene = scene ;
17
17
this . uid = uid ;
18
- this . mesh = mesh ;
18
+ this . mesh = null ;
19
+ this . pts = null ;
19
20
this . data = null ;
20
21
}
21
22
22
- var proto = Mesh3DTrace . prototype ;
23
+ var proto = Cone . prototype ;
23
24
24
25
proto . handlePick = function ( selection ) {
25
- if ( selection . object === this . mesh ) {
26
+ if ( selection . object === this . pts ) {
26
27
var selectIndex = selection . index = selection . data . index ;
27
28
28
29
selection . traceCoordinate = [
@@ -48,25 +49,44 @@ function convert(scene, trace) {
48
49
49
50
proto . update = function ( data ) {
50
51
this . data = data ;
51
- this . mesh . update ( convert ( this . scene , data ) ) ;
52
+
53
+ var meshData = convert ( this . scene , data ) ;
54
+
55
+ this . mesh . update ( meshData ) ;
56
+ this . pts . update ( { position : meshData . _pts } ) ;
52
57
} ;
53
58
54
59
proto . dispose = function ( ) {
60
+ this . scene . glplot . remove ( this . pts ) ;
61
+ this . pts . dispose ( ) ;
55
62
this . scene . glplot . remove ( this . mesh ) ;
56
63
this . mesh . dispose ( ) ;
57
64
} ;
58
65
59
- function createMesh3DTrace ( scene , data ) {
66
+ function createConeTrace ( scene , data ) {
60
67
var gl = scene . glplot . gl ;
61
- var meshData = convert ( scene , data ) ;
62
- var mesh = createMesh ( gl , meshData ) ;
63
- var result = new Mesh3DTrace ( scene , mesh , data . uid ) ;
64
68
65
- result . data = data ;
66
- mesh . _trace = result ;
69
+ var meshData = convert ( scene , data ) ;
70
+ var mesh = createConeMesh ( gl , meshData ) ;
71
+
72
+ var pts = createScatterPlot ( {
73
+ gl : gl ,
74
+ position : meshData . _pts ,
75
+ project : false ,
76
+ opacity : 0
77
+ } ) ;
78
+
79
+ var cone = new Cone ( scene , data . uid ) ;
80
+ cone . mesh = mesh ;
81
+ cone . pts = pts ;
82
+ cone . data = data ;
83
+ mesh . _trace = cone ;
84
+ pts . _trace = cone ;
85
+
86
+ scene . glplot . add ( pts ) ;
67
87
scene . glplot . add ( mesh ) ;
68
88
69
- return result ;
89
+ return cone ;
70
90
}
71
91
72
- module . exports = createMesh3DTrace ;
92
+ module . exports = createConeTrace ;
0 commit comments