1+ function WeightedUndirectedGraphTracer ( module ) {
2+ if ( WeightedDirectedGraphTracer . call ( this , module || WeightedUndirectedGraphTracer ) ) {
3+ WeightedUndirectedGraphTracer . prototype . init . call ( this ) ;
4+ return true ;
5+ }
6+ return false ;
7+ }
8+
9+ WeightedUndirectedGraphTracer . prototype = $ . extend ( true , Object . create ( WeightedDirectedGraphTracer . prototype ) , {
10+ constructor : WeightedUndirectedGraphTracer ,
11+ init : function ( ) {
12+ var tracer = this ;
13+
14+ s . settings ( {
15+ defaultEdgeType : 'def'
16+ } ) ;
17+ sigma . canvas . edges . def = function ( edge , source , target , context , settings ) {
18+ var color = tracer . getColor ( edge , source , target , settings ) ;
19+ tracer . drawEdge ( edge , source , target , color , context , settings ) ;
20+ tracer . drawEdgeWeight ( edge , source , target , color , context , settings ) ;
21+ } ;
22+ } ,
23+ _setData : function ( G ) {
24+ if ( Tracer . prototype . _setData . call ( this , arguments ) ) return true ;
25+
26+ graph . clear ( ) ;
27+ var nodes = [ ] ;
28+ var edges = [ ] ;
29+ var unitAngle = 2 * Math . PI / G . length ;
30+ var currentAngle = 0 ;
31+ for ( var i = 0 ; i < G . length ; i ++ ) {
32+ currentAngle += unitAngle ;
33+ nodes . push ( {
34+ id : this . n ( i ) ,
35+ label : '' + i ,
36+ x : .5 + Math . sin ( currentAngle ) / 2 ,
37+ y : .5 + Math . cos ( currentAngle ) / 2 ,
38+ size : 1 ,
39+ color : this . color . default ,
40+ weight : 0
41+ } ) ;
42+ }
43+ for ( var i = 0 ; i < G . length ; i ++ ) {
44+ for ( var j = 0 ; j <= i ; j ++ ) {
45+ if ( G [ i ] [ j ] || G [ j ] [ i ] ) {
46+ edges . push ( {
47+ id : this . e ( i , j ) ,
48+ source : this . n ( i ) ,
49+ target : this . n ( j ) ,
50+ color : this . color . default ,
51+ size : 1 ,
52+ weight : G [ i ] [ j ]
53+ } ) ;
54+ }
55+ }
56+ }
57+
58+ graph . read ( {
59+ nodes : nodes ,
60+ edges : edges
61+ } ) ;
62+ s . camera . goTo ( {
63+ x : 0 ,
64+ y : 0 ,
65+ angle : 0 ,
66+ ratio : 1
67+ } ) ;
68+ this . refresh ( ) ;
69+
70+ return false ;
71+ } ,
72+ e : UndirectedGraphTracer . prototype . e ,
73+ drawOnHover : UndirectedGraphTracer . prototype . drawOnHover ,
74+ drawEdge : UndirectedGraphTracer . prototype . drawEdge ,
75+ drawEdgeWeight : function ( edge , source , target , color , context , settings ) {
76+ var prefix = settings ( 'prefix' ) || '' ;
77+ if ( source [ prefix + 'x' ] > target [ prefix + 'x' ] ) {
78+ var temp = source ;
79+ source = target ;
80+ target = temp ;
81+ }
82+ console . log ( source ) ;
83+ console . log ( target ) ;
84+ WeightedDirectedGraphTracer . prototype . drawEdgeWeight . call ( this , edge , source , target , color , context , settings ) ;
85+ }
86+ } ) ;
87+
88+ var WeightedUndirectedGraph = {
89+ random : function ( N , ratio , min , max ) {
90+ if ( ! N ) N = 5 ;
91+ if ( ! ratio ) ratio = .3 ;
92+ if ( ! min ) min = 1 ;
93+ if ( ! max ) max = 5 ;
94+ var G = new Array ( N ) ;
95+ for ( var i = 0 ; i < N ; i ++ ) G [ i ] = new Array ( N ) ;
96+ for ( var i = 0 ; i < N ; i ++ ) {
97+ for ( var j = 0 ; j < N ; j ++ ) {
98+ if ( i > j && ( Math . random ( ) * ( 1 / ratio ) | 0 ) == 0 ) {
99+ G [ i ] [ j ] = G [ j ] [ i ] = ( Math . random ( ) * ( max - min + 1 ) | 0 ) + min ;
100+ }
101+ }
102+ }
103+ return G ;
104+ }
105+ } ;
0 commit comments