Class: GraphLab::Vertex
- Inherits:
-
Object
- Object
- GraphLab::Vertex
- Defined in:
- lib/graphlab.rb
Instance Attribute Summary collapse
-
#adjList ⇒ Object
attribute that represents the node in a graph canvas.
-
#value ⇒ Object
value and coordinate of vertex.
-
#visited ⇒ Object
Returns the value of attribute visited.
-
#xcoord ⇒ Object
Returns the value of attribute xcoord.
-
#ycoord ⇒ Object
Returns the value of attribute ycoord.
Instance Method Summary collapse
-
#addEdge(vertex) ⇒ Object
to add edge to this vertex.
- #deleteEdge(vertex) ⇒ Object
- #getAdjList ⇒ Object
- #init_val(value) ⇒ Object
- #init_valxy(value, x, y) ⇒ Object
-
#initialize(*args) ⇒ Vertex
constructor
A new instance of Vertex.
-
#inspect ⇒ Object
return a string representation of the vertex.
- #isVisited? ⇒ Boolean
-
#to_s ⇒ Object
returns a string representation of the vertex.
Constructor Details
#initialize(*args) ⇒ Vertex
Returns a new instance of Vertex.
350 351 352 353 354 355 356 357 358 359 |
# File 'lib/graphlab.rb', line 350 def initialize *args case args.size when 3 init_valxy *args when 1 init_val *args else error end end |
Instance Attribute Details
#adjList ⇒ Object
attribute that represents the node in a graph canvas
346 347 348 |
# File 'lib/graphlab.rb', line 346 def adjList @adjList end |
#value ⇒ Object
value and coordinate of vertex
342 343 344 |
# File 'lib/graphlab.rb', line 342 def value @value end |
#visited ⇒ Object
Returns the value of attribute visited.
347 348 349 |
# File 'lib/graphlab.rb', line 347 def visited @visited end |
#xcoord ⇒ Object
Returns the value of attribute xcoord.
343 344 345 |
# File 'lib/graphlab.rb', line 343 def xcoord @xcoord end |
#ycoord ⇒ Object
Returns the value of attribute ycoord.
344 345 346 |
# File 'lib/graphlab.rb', line 344 def ycoord @ycoord end |
Instance Method Details
#addEdge(vertex) ⇒ Object
to add edge to this vertex
416 417 418 419 420 |
# File 'lib/graphlab.rb', line 416 def addEdge(vertex) raise "Value must be a Vertex!" if vertex.class != GraphLab::Vertex raise "cannot add edge to itself" if vertex == self adjList << vertex end |
#deleteEdge(vertex) ⇒ Object
422 423 424 425 |
# File 'lib/graphlab.rb', line 422 def deleteEdge(vertex) raise "Value must be a Vertex!" if vertex.class != GraphLab::Vertex adjList.delete(vertex) end |
#getAdjList ⇒ Object
411 412 413 |
# File 'lib/graphlab.rb', line 411 def getAdjList() return self.adjList end |
#init_val(value) ⇒ Object
374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 |
# File 'lib/graphlab.rb', line 374 def init_val(value) raise "Enter other value. Vertex with this value has been created!" if @@createdValues.include?(value) if(!@@createdValues.include?(value)) @@createdValues << value @value = value @xcoord = rand(450)+30 @ycoord = rand(450)+30 coord = (xcoord.to_s + ycoord.to_s) #to avoid overlapping vertex coordinates in canvas while (@@position.include?(coord)) puts "regenerate to avoid collision" @xcoord = rand(450)+30 @ycoord = rand(450)+30 coord = (xcoord.to_s + ycoord.to_s) end #@@position << coord #need to add more y coord and x coord a = 50 x = @xcoord - a y = @ycoord - a for i in 0..100 x = x + i for j in 0..100 y = y + j coord = (x.to_s + y.to_s) @@position << coord end end @adjList = Array.new @visited = false end return @value end |
#init_valxy(value, x, y) ⇒ Object
361 362 363 364 365 366 367 368 369 370 371 372 |
# File 'lib/graphlab.rb', line 361 def init_valxy(value, x , y) raise "Enter other value. Vertex with this value has been created!" if @@createdValues.include?(value) if(!@@createdValues.include?(value)) @@createdValues << value @value = value @xcoord = x @ycoord = y @adjList = Array.new @visited = false end return @value end |
#inspect ⇒ Object
return a string representation of the vertex
428 429 430 |
# File 'lib/graphlab.rb', line 428 def inspect return to_s end |
#isVisited? ⇒ Boolean
441 442 443 |
# File 'lib/graphlab.rb', line 441 def isVisited? return @visited end |
#to_s ⇒ Object
returns a string representation of the vertex
434 435 436 437 438 439 |
# File 'lib/graphlab.rb', line 434 def to_s s = value.to_s+" "; #s+= "("+xcoord.to_s+","; #s+= ycoord.to_s+")"; return s; end |