Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-01-18 09:11:10

0001 // This file is part of the ACTS project.
0002 //
0003 // Copyright (C) 2016 CERN for the benefit of the ACTS project
0004 //
0005 // This Source Code Form is subject to the terms of the Mozilla Public
0006 // License, v. 2.0. If a copy of the MPL was not distributed with this
0007 // file, You can obtain one at https://mozilla.org/MPL/2.0/.
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 }  // namespace Acts::GraphViz