File indexing completed on 2025-01-18 09:11:10
0001
0002
0003
0004
0005
0006
0007
0008
0009 #pragma once
0010
0011 #include <ostream>
0012 #include <vector>
0013
0014 namespace Acts::GraphViz {
0015
0016 enum class Shape {
0017 Box,
0018 Polygon,
0019 Ellipse,
0020 Oval,
0021 Circle,
0022 Point,
0023 Egg,
0024 Triangle,
0025 Plaintext,
0026 Plain,
0027 Diamond,
0028 Trapezium,
0029 Parallelogram,
0030 House,
0031 Pentagon,
0032 Hexagon,
0033 Septagon,
0034 Octagon,
0035 DoubleCircle,
0036 DoubleOctagon,
0037 TripleOctagon,
0038 InvTriangle,
0039 InvTrapezium,
0040 InvHouse,
0041 Mdiamond,
0042 Msquare,
0043 Mcircle,
0044 Rect,
0045 Rectangle,
0046 Square,
0047 Star,
0048 None,
0049 Underline,
0050 Cylinder,
0051 Note,
0052 Tab,
0053 Folder,
0054 Box3d,
0055 Component,
0056 Promoter,
0057 Cds,
0058 Terminator,
0059 Utr,
0060 PrimerSite,
0061 RestrictionSite,
0062 FivePOverhang,
0063 ThreePOverhang,
0064 NOverhang,
0065 Assembly,
0066 Signature,
0067 Insulator,
0068 Ribosite,
0069 RNAStab,
0070 ProteaseSite,
0071 ProteinStab,
0072 RPromoter,
0073 RArrow,
0074 LArrow,
0075 LPromoter
0076 };
0077
0078 std::ostream& operator<<(std::ostream& os, const Shape& shape);
0079
0080 enum class Style {
0081 Filled,
0082 Invisible,
0083 Diagonals,
0084 Rounded,
0085 Dashed,
0086 Dotted,
0087 Solid,
0088 Bold
0089 };
0090
0091 std::ostream& operator<<(std::ostream& os, const Style& style);
0092
0093 struct Node {
0094 std::string id;
0095 std::string label = "";
0096 Shape shape = Shape::Ellipse;
0097 std::vector<Style> style = {Style::Solid};
0098 };
0099
0100 std::ostream& operator<<(std::ostream& os, const Node& node);
0101
0102 struct Edge {
0103 Node from;
0104 Node to;
0105 Style style = Style::Solid;
0106 };
0107
0108 std::ostream& operator<<(std::ostream& os, const Edge& node);
0109
0110 }