PGROUTING  2.4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
ch_edge.h
Go to the documentation of this file.
1 /*PGR-GNU*****************************************************************
2 File: ch_edge.h
3 
4 Generated with Template by:
5 Copyright (c) 2015 pgRouting developers
6 Mail: project@pgrouting.org
7 
8 Function's developer:
9 Copyright (c) 2016 Rohith Reddy
10 Mail:
11 
12 ------
13 
14 This program is free software; you can redistribute it and/or modify
15 it under the terms of the GNU General Public License as published by
16 the Free Software Foundation; either version 2 of the License, or
17 (at your option) any later version.
18 
19 This program is distributed in the hope that it will be useful,
20 but WITHOUT ANY WARRANTY; without even the implied warranty of
21 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 GNU General Public License for more details.
23 
24 You should have received a copy of the GNU General Public License
25 along with this program; if not, write to the Free Software
26 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
27 
28  ********************************************************************PGR-GNU*/
29 
30 #ifndef SRC_COMMON_SRC_CH_EDGE_H_
31 #define SRC_COMMON_SRC_CH_EDGE_H_
32 #pragma once
33 
34 #include <iostream>
35 #include <sstream>
36 #include "./ch_vertex.h"
37 // #include "./basic_edge.h"
38 
39 namespace pgrouting {
40 
41 class CH_edge {
42  public:
43  CH_edge() = default;
44 
45  CH_edge(int64_t eid, int64_t source, int64_t target, double cost) :
46  id(eid), source(source),
47  target(target), cost(cost) {}
48 
49  void cp_members(const CH_edge &other);
50 
51  void add_contracted_vertex(CH_vertex& v, int64_t vid);
53 
54  bool has_contracted_vertices() const;
55 
58  friend std::ostream& operator <<(std::ostream& os, const CH_edge& e);
59 
60  public:
61  int64_t id;
62  int64_t source;
63  int64_t target;
64  double cost;
65 
66  private:
68 };
69 
70 } // namespace pgrouting
71 
72 #endif // SRC_COMMON_SRC_CH_EDGE_H_
void clear_contracted_vertices()
Definition: ch_edge.h:56
friend std::ostream & operator<<(std::ostream &os, const CH_edge &e)
Definition: ch_edge.cpp:66
const Identifiers< int64_t > & contracted_vertices() const
Definition: ch_edge.cpp:48
bool has_contracted_vertices() const
Definition: ch_edge.cpp:43
void add_contracted_edge_vertices(CH_edge &e)
Definition: ch_edge.cpp:61
CH_edge(int64_t eid, int64_t source, int64_t target, double cost)
Definition: ch_edge.h:45
void clear()
Definition: identifiers.hpp:59
int64_t target
Definition: ch_edge.h:63
void add_contracted_vertex(CH_vertex &v, int64_t vid)
Definition: ch_edge.cpp:54
void cp_members(const CH_edge &other)
Definition: ch_edge.cpp:35
int64_t source
Definition: ch_edge.h:62
Identifiers< int64_t > m_contracted_vertices
Definition: ch_edge.h:67