8 #ifndef INCLUDE_MOLASSEMBLER_GRAPH_INTERFACE_H
9 #define INCLUDE_MOLASSEMBLER_GRAPH_INTERFACE_H
13 #include "boost/optional/optional_fwd.hpp"
17 namespace Molassembler {
30 virtual void setElementType(
AtomIndex i, Utils::ElementType type) = 0;
36 virtual void removeBond(
const BondIndex& bond) = 0;
47 virtual bool canRemove(
AtomIndex a)
const = 0;
49 virtual bool canRemove(
const BondIndex& edge)
const = 0;
51 virtual const Cycles& cycles()
const = 0;
53 virtual unsigned degree(
AtomIndex a)
const = 0;
55 virtual Utils::ElementType elementType(
AtomIndex a)
const = 0;
59 virtual unsigned E()
const = 0;
Defines basic types widely shared across the project.
Definition: GraphInterface.h:21
Wrapper class to make working with RDL in C++ more pleasant.
Definition: Cycles.h:44
std::size_t AtomIndex
Unsigned integer atom index type. Used to refer to particular atoms.
Definition: Types.h:51
BondType
Discrete bond type numeration.
Definition: Types.h:26
Type used to refer to particular bonds. Orders first < second.
Definition: Types.h:54