gravatar
deba@inf.elte.hu
deba@inf.elte.hu
Fix bug #83 in graph concept, extender and smart graph
0 4 0
default
4 files changed with 17 insertions and 17 deletions:
↑ Collapse diff ↑
Ignore white space 12 line context
... ...
@@ -364,27 +364,27 @@
364 364

	
365 365
    Edge fromId(int id, Edge) const {
366 366
      return Parent::edgeFromId(id);
367 367
    }
368 368

	
369 369
    Node oppositeNode(const Node &n, const Edge &e) const {
370
      if( n == Parent::source(e))
371
	return Parent::target(e);
372
      else if( n == Parent::target(e))
373
	return Parent::source(e);
370
      if( n == Parent::u(e))
371
	return Parent::v(e);
372
      else if( n == Parent::v(e))
373
	return Parent::u(e);
374 374
      else
375 375
	return INVALID;
376 376
    }
377 377

	
378 378
    Arc oppositeArc(const Arc &arc) const {
379 379
      return Parent::direct(arc, !Parent::direction(arc));
380 380
    }
381 381

	
382 382
    using Parent::direct;
383 383
    Arc direct(const Edge &edge, const Node &node) const {
384
      return Parent::direct(edge, Parent::source(edge) == node);
384
      return Parent::direct(edge, Parent::u(edge) == node);
385 385
    }
386 386

	
387 387
    // Alterable extension
388 388

	
389 389
    typedef AlterationNotifier<GraphExtender, Node> NodeNotifier;
390 390
    typedef AlterationNotifier<GraphExtender, Arc> ArcNotifier;
... ...
@@ -583,19 +583,19 @@
583 583
    }
584 584

	
585 585
    /// Base node of the iterator
586 586
    ///
587 587
    /// Returns the base node of the iterator
588 588
    Node baseNode(const IncEdgeIt &edge) const {
589
      return edge._direction ? source(edge) : target(edge);
589
      return edge._direction ? u(edge) : v(edge);
590 590
    }
591 591
    /// Running node of the iterator
592 592
    ///
593 593
    /// Returns the running node of the iterator
594 594
    Node runningNode(const IncEdgeIt &edge) const {
595
      return edge._direction ? target(edge) : source(edge);
595
      return edge._direction ? v(edge) : u(edge);
596 596
    }
597 597

	
598 598
    // Mappable extension
599 599

	
600 600
    template <typename _Value>
601 601
    class NodeMap 
Ignore white space 12 line context
... ...
@@ -464,18 +464,18 @@
464 464
        ArcMap& operator=(const CMap&) { 
465 465
          checkConcept<ReadMap<Arc, T>, CMap>();
466 466
          return *this; 
467 467
        }
468 468
      };
469 469

	
470
      template <typename RDigraph>
470
      template <typename _Digraph>
471 471
      struct Constraints {
472 472
        void constraints() {
473
          checkConcept<IterableDigraphComponent<>, Digraph>();
474
	  checkConcept<IDableDigraphComponent<>, Digraph>();
475
          checkConcept<MappableDigraphComponent<>, Digraph>();
473
          checkConcept<IterableDigraphComponent<>, _Digraph>();
474
	  checkConcept<IDableDigraphComponent<>, _Digraph>();
475
          checkConcept<MappableDigraphComponent<>, _Digraph>();
476 476
        }
477 477
      };
478 478

	
479 479
    };
480 480
    
481 481
  } //namespace concepts  
Ignore white space 12 line context
... ...
@@ -728,18 +728,18 @@
728 728
      ///
729 729
      /// Returns the running node of the iterator
730 730
      Node runningNode(IncEdgeIt) const {
731 731
	return INVALID;
732 732
      }
733 733

	
734
      template <typename Graph>
734
      template <typename _Graph>
735 735
      struct Constraints {
736 736
	void constraints() {
737
	  checkConcept<IterableGraphComponent<>, Graph>();
738
	  checkConcept<IDableGraphComponent<>, Graph>();
739
	  checkConcept<MappableGraphComponent<>, Graph>();
737
	  checkConcept<IterableGraphComponent<>, _Graph>();
738
	  checkConcept<IDableGraphComponent<>, _Graph>();
739
	  checkConcept<MappableGraphComponent<>, _Graph>();
740 740
	}
741 741
      };
742 742

	
743 743
    };
744 744

	
745 745
  }
Ignore white space 12 line context
... ...
@@ -467,14 +467,14 @@
467 467
    int maxEdgeId() const { return arcs.size() / 2 - 1; }
468 468
    int maxArcId() const { return arcs.size()-1; }
469 469

	
470 470
    Node source(Arc e) const { return Node(arcs[e._id ^ 1].target); }
471 471
    Node target(Arc e) const { return Node(arcs[e._id].target); }
472 472

	
473
    Node source(Edge e) const { return Node(arcs[2 * e._id].target); }
474
    Node target(Edge e) const { return Node(arcs[2 * e._id + 1].target); }
473
    Node u(Edge e) const { return Node(arcs[2 * e._id].target); }
474
    Node v(Edge e) const { return Node(arcs[2 * e._id + 1].target); }
475 475

	
476 476
    static bool direction(Arc e) {
477 477
      return (e._id & 1) == 1;
478 478
    }
479 479

	
480 480
    static Arc direct(Edge e, bool d) {
0 comments (0 inline)