COPASI API  4.16.103
CDotOutput.h
Go to the documentation of this file.
1 // Begin CVS Header
2 // $Source: /Volumes/Home/Users/shoops/cvs/copasi_dev/copasi/model/CDotOutput.h,v $
3 // $Revision: 1.4 $
4 // $Name: $
5 // $Author: shoops $
6 // $Date: 2011/11/23 15:45:43 $
7 // End CVS Header
8 
9 // Copyright (C) 2011 - 2010 by Pedro Mendes, Virginia Tech Intellectual
10 // Properties, Inc., University of Heidelberg, and The University
11 // of Manchester.
12 // All rights reserved.
13 
14 // Copyright (C) 2008 by Pedro Mendes, Virginia Tech Intellectual
15 // Properties, Inc., EML Research, gGmbH, University of Heidelberg,
16 // and The University of Manchester.
17 // All rights reserved.
18 
19 // Copyright (C) 2001 - 2007 by Pedro Mendes, Virginia Tech Intellectual
20 // Properties, Inc. and EML Research, gGmbH.
21 // All rights reserved.
22 
23 #ifndef COPASI_CDotOutput
24 #define COPASI_CDotOutput
25 
26 #include <iostream>
27 #include <map>
28 #include <set>
29 
30 class CCopasiObject;
31 class CModel;
32 class Refresh;
33 
35 {
36 
37 public:
38 
39  CDotOutput();
40 
41  void writeDependencies(std::ostream & os, const CModel* pModel, const CCopasiObject * rootNode = NULL);
42 
45  void simpleCall(const CModel* pModel);
46 
47 protected:
48 
49  class ObjectData
50  {
51  public:
56 
57  ObjectData();
58  };
59 
60  void writeDotRecursively(const CCopasiObject * obj, std::ostream & os);
61 
62  void writeObjectNode(std::ostream & os, const CCopasiObject * ptr, const ObjectData & od) const;
63 
64  void writeEdge(std::ostream & os, const CCopasiObject * ptr1, const CCopasiObject * ptr2, bool indirect = false);
65 
66  void updateObjectNodesFromModel(const CModel* model);
67 
69 
70  void findObjectsWithUpdateMethod(const CCopasiObject * obj, std::set<const CCopasiObject*> & objectSet, size_t recursion = 0) const;
71 
72  // member variables
73 
76 
77  std::map <const CCopasiObject*, ObjectData> mObjects;
78 };
79 
80 #endif
void findObjectsWithUpdateMethod(const CCopasiObject *obj, std::set< const CCopasiObject * > &objectSet, size_t recursion=0) const
Definition: CDotOutput.cpp:74
ObjectData * getObjectDataFromRefresh(const Refresh *ref)
Definition: CDotOutput.cpp:250
void setOnlyAlgebraicDependencies(bool b)
Definition: CDotOutput.h:44
std::map< const CCopasiObject *, ObjectData > mObjects
Definition: CDotOutput.h:77
void writeEdge(std::ostream &os, const CCopasiObject *ptr1, const CCopasiObject *ptr2, bool indirect=false)
Definition: CDotOutput.cpp:189
size_t mSimulatedRefreshesIndex
Definition: CDotOutput.h:53
void simpleCall(const CModel *pModel)
Definition: CDotOutput.cpp:262
bool mSkipCompartments
Definition: CDotOutput.h:74
void writeDependencies(std::ostream &os, const CModel *pModel, const CCopasiObject *rootNode=NULL)
Definition: CDotOutput.cpp:44
void writeObjectNode(std::ostream &os, const CCopasiObject *ptr, const ObjectData &od) const
Definition: CDotOutput.cpp:155
void writeDotRecursively(const CCopasiObject *obj, std::ostream &os)
Definition: CDotOutput.cpp:93
void updateObjectNodesFromModel(const CModel *model)
Definition: CDotOutput.cpp:204
void setSkipDependenciesOnCompartments(bool b)
Definition: CDotOutput.h:43
size_t mNonSimulatedRefreshesIndex
Definition: CDotOutput.h:54
bool mOnlyAlgebraicDependencies
Definition: CDotOutput.h:75
size_t mConstantRefreshesIndex
Definition: CDotOutput.h:55
Definition: CModel.h:50