7#ifndef GRAPHDOM_VERTEX_HANDLE_IMPL_H
8#define GRAPHDOM_VERTEX_HANDLE_IMPL_H
10#include "../../graph.h"
11#include "../vertex_base_handle.h"
12#include "../vertex_handle.h"
13#include "../../multiset_graph.h"
14#include "../multiset_graph_vertex_handle.h"
16template <
typename VertexType>
18vertex_base_handle< const
graphdom::graph<VertexType>::vertex_container* >( other ) {}
20template <
typename VertexType>
22vertex_base_handle< const
graphdom::
graph<VertexType>::vertex_container* >(
23 other.vertex_container_owner_graph_pointer,
24 other.vertex_container_owner_graph_edges_type,
25 other.vertex_container_pointer
28template<
typename VertexType>
33template<
typename VertexType>
35 if (
this != &other ) {
36 this->vertex_container_owner_graph_pointer = other.vertex_container_owner_graph_pointer;
37 this->vertex_container_owner_graph_edges_type = other.vertex_container_owner_graph_edges_type;
38 this->vertex_container_pointer = other.vertex_container_pointer;
43template<
typename VertexType>
46 this->vertex_container_owner_graph_pointer,
47 this->vertex_container_owner_graph_edges_type,
48 this->vertex_container_pointer
52template<
typename VertexType>
53typename graphdom::graph<VertexType>::adj_list graphdom::graph<VertexType>::vertex_handle::adj_list(
const edge_type edge_type)
const {
54 return graphdom::graph<VertexType>::adj_list(
55 this->vertex_container_owner_graph_pointer,
56 this->vertex_container_owner_graph_edges_type,
57 this->vertex_container_pointer,
59 graphdom::graph<VertexType>::edges_type_selection_type::undirected_edges :
60 graphdom::graph<VertexType>::edges_type_selection_type::directed_edges
64template<
typename VertexType>
65typename graphdom::graph<VertexType>::const_adj_list graphdom::graph<VertexType>::vertex_handle::const_adj_list()
const {
66 return graphdom::graph<VertexType>::const_adj_list(
67 this->vertex_container_owner_graph_pointer,
68 this->vertex_container_owner_graph_edges_type,
69 this->vertex_container_pointer
73template<
typename VertexType>
74typename graphdom::graph<VertexType>::const_adj_list graphdom::graph<VertexType>::vertex_handle::const_adj_list(
const edge_type edge_type)
const {
75 return graphdom::graph<VertexType>::const_adj_list(
76 this->vertex_container_owner_graph_pointer,
77 this->vertex_container_owner_graph_edges_type,
78 this->vertex_container_pointer,
80 graphdom::graph<VertexType>::edges_type_selection_type::undirected_edges :
81 graphdom::graph<VertexType>::edges_type_selection_type::directed_edges
85template<
typename VertexType>
87 const graph<VertexType>*
const vertex_container_owner_ptr,
88 const graph<VertexType>::graph_edges_type vertex_container_owner_et,
89 const typename graph<VertexType>::vertex_container*
const vertex_container_ptr) :
90vertex_base_handle< const graphdom::graph<VertexType>::vertex_container* >(
91 vertex_container_owner_ptr,
92 vertex_container_owner_et,
Every valid instance of this class is a "container-like and non-owning" handle to a subset of the set...
Definition adj_list.h:32
Every valid instance of this class can be used to identify a specific vertex of a graph and to access...
Definition vertex_handle.h:32
operator typename multiset_graph< VertexType >::vertex_handle() const
Definition vertex_handle.h:29
Every graph created using this library is an instance of a concrete class publicly derived,...
Definition graph.h:43
Every valid instance of this class can be used to identify a specific vertex of a multiset graph and ...
Definition multiset_graph_vertex_handle.h:31
edge_type
The enumerated type whose values represent the two types of edges of a graph.
Definition graph.h:21
@ undirected
This enum value means undirected edge.
Definition graph.h:22