Molassembler  1.0.0
Molecule graph and conformer library
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MolGraphWriter.h
Go to the documentation of this file.
1 
11 #ifndef INCLUDE_MOLASSEMBLER_MOL_GRAPH_WRITER_H
12 #define INCLUDE_MOLASSEMBLER_MOL_GRAPH_WRITER_H
13 
15 
16 namespace Scine {
17 
18 namespace Molassembler {
19 
20 class StereopermutatorList;
21 class AtomStereopermutator;
22 class BondStereopermutator;
23 
28  static const std::map<std::string, std::string> elementBGColorMap;
29  static const std::map<std::string, std::string> elementTextColorMap;
30  static const std::map<BondType, std::string> bondTypeDisplayString;
32 
35  const PrivateGraph* const graphPtr;
36  const StereopermutatorList* const stereopermutatorListPtr;
38 
40  const PrivateGraph* passGraphPtr,
41  const StereopermutatorList* passPermutatorListPtr
42  );
43 
44  virtual ~MolGraphWriter() = default;
45 
46  /* Information */
47  Utils::ElementType getElementType(PrivateGraph::Vertex vertexIndex) const;
48 
49  // Global options
50  void operator() (std::ostream& os) const;
51 
52  // Vertex options
53  void operator() (std::ostream& os, PrivateGraph::Vertex vertexIndex) const;
54 
55  // Edge options
56  void operator() (std::ostream& os, const PrivateGraph::Edge& edgeIndex) const;
57 
58  virtual std::vector<std::string> edgeTooltips(AtomIndex source, AtomIndex target) const;
59 
60  virtual std::vector<std::string> atomStereopermutatorTooltips(
61  const AtomStereopermutator& permutator
62  ) const;
63 
64  virtual std::vector<std::string> bondStereopermutatorTooltips(
65  const BondStereopermutator& permutator
66  ) const;
67 };
68 
69 } // namespace Molassembler
70 
71 } // namespace Scine
72 
73 #endif
Handles the steric permutation of substituents of a non-terminal central atom.
Definition: AtomStereopermutator.h:79
Handles specific relative arrangements of two atom stereopermutators joined by a bond.
Definition: BondStereopermutator.h:46
Manages all stereopermutators that are part of a Molecule.
Definition: StereopermutatorList.h:30
std::size_t AtomIndex
Unsigned integer atom index type. Used to refer to particular atoms.
Definition: Types.h:51
Library internal graph class wrapping BGL types.
Definition: PrivateGraph.h:24
BglType::edge_descriptor Edge
Definition: PrivateGraph.h:69
Helper class to write the Graph as Graphviz output.
Definition: MolGraphWriter.h:25
Boost Graph Library wrapper to help in concealing underlying type.
BglType::vertex_descriptor Vertex
Definition: PrivateGraph.h:68