@@ -13,6 +13,7 @@ var createRegl = require('regl');
13
13
var Registry = require ( '../../registry' ) ;
14
14
var getModuleCalcData = require ( '../../plots/get_data' ) . getModuleCalcData ;
15
15
var Cartesian = require ( '../../plots/cartesian' ) ;
16
+ var AxisIDs = require ( '../../plots/cartesian/axis_ids' ) ;
16
17
17
18
var SPLOM = 'splom' ;
18
19
@@ -45,6 +46,30 @@ function plot(gd) {
45
46
_module . plot ( gd , { } , splomCalcData ) ;
46
47
}
47
48
49
+ function drag ( gd ) {
50
+ var cd = gd . calcdata ;
51
+
52
+ for ( var i = 0 ; i < cd . length ; i ++ ) {
53
+ var cd0 = cd [ i ] [ 0 ] ;
54
+ var trace = cd0 . trace ;
55
+ var scene = cd0 . t . _scene ;
56
+
57
+ if ( trace . type === 'splom' && scene && scene . matrix ) {
58
+ var dimLength = trace . dimensions . length ;
59
+ var ranges = new Array ( dimLength ) ;
60
+
61
+ for ( var j = 0 ; j < dimLength ; j ++ ) {
62
+ var xrng = AxisIDs . getFromId ( gd , trace . xaxes [ j ] ) . range ;
63
+ var yrng = AxisIDs . getFromId ( gd , trace . yaxes [ j ] ) . range ;
64
+ ranges [ j ] = [ xrng [ 0 ] , yrng [ 0 ] , xrng [ 1 ] , yrng [ 1 ] ] ;
65
+ }
66
+
67
+ scene . matrix . update ( { ranges : ranges } ) ;
68
+ scene . matrix . draw ( ) ;
69
+ }
70
+ }
71
+ }
72
+
48
73
function clean ( newFullData , newFullLayout , oldFullData , oldFullLayout ) {
49
74
// TODO clear regl-splom instances
50
75
// TODO clear regl-line2d grid instance!
@@ -59,6 +84,7 @@ module.exports = {
59
84
supplyLayoutDefaults : Cartesian . supplyLayoutDefaults ,
60
85
drawFramework : Cartesian . drawFramework ,
61
86
plot : plot ,
87
+ drag : drag ,
62
88
clean : clean ,
63
89
toSVG : Cartesian . toSVG
64
90
} ;
0 commit comments