votca 2024-dev
Loading...
Searching...
No Matches
beadmotifconnector.h
Go to the documentation of this file.
1/*
2 * Copyright 2009-2019 The VOTCA Development Team (http://www.votca.org)
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 *
16 */
17
18#pragma once
19#ifndef VOTCA_CSG_BEADMOTIFCONNECTOR_H
20#define VOTCA_CSG_BEADMOTIFCONNECTOR_H
21
22// Standard includes
23#include <unordered_set>
24#include <vector>
25
26// Third party includes
27#include <boost/bimap.hpp>
28#include <boost/bimap/multiset_of.hpp>
29#include <boost/bimap/set_of.hpp>
30
31// VOTCA includes
32#include <votca/tools/edge.h>
33
34namespace votca {
35namespace csg {
36
57typedef boost::bimap<boost::bimaps::multiset_of<tools::Edge>,
58 boost::bimaps::set_of<tools::Edge>>
60
85 public:
86 void AddMotifAndBeadEdge(const tools::Edge& motif_edge,
87 const tools::Edge& bead_edge);
89 std::vector<tools::Edge> getBeadEdges(const tools::Edge& motif_edge) const;
91 std::vector<tools::Edge> getBeadEdges() const noexcept;
92
94 tools::Edge getMotifEdge(const tools::Edge& bead_edge) const;
96 std::unordered_set<tools::Edge> getMotifEdges() const noexcept;
97
98 private:
100};
101
102} // namespace csg
103} // namespace votca
104
105#endif // VOTCA_CSG_BEADMOTIFCONNECTOR_H
Simple class for storing the connections between motifs and the underlying beads that are part of the...
tools::Edge getMotifEdge(const tools::Edge &bead_edge) const
Returns the motifs involved between two beads given by bead_edge.
std::vector< tools::Edge > getBeadEdges() const noexcept
Returns all the bead edges connecting the motifs.
void AddMotifAndBeadEdge(const tools::Edge &motif_edge, const tools::Edge &bead_edge)
std::unordered_set< tools::Edge > getMotifEdges() const noexcept
Returns all the motif edges.
reduced_edge_to_edges_map motif_and_bead_edges_
Connects to vertices.
Definition edge.h:42
boost::bimap< boost::bimaps::multiset_of< tools::Edge >, boost::bimaps::set_of< tools::Edge > > reduced_edge_to_edges_map
Maps a reduced edge to all the edges that make up the reduced edge.
base class for all analysis tools
Definition basebead.h:33