6 #ifndef CCellDesignerImporter_H__
7 #define CCellDesignerImporter_H__
16 #include <sbml/packages/layout/sbml/BoundingBox.h>
17 #include <sbml/packages/layout/sbml/Curve.h>
18 #include <sbml/packages/layout/sbml/Dimensions.h>
19 #include <sbml/packages/layout/sbml/LineSegment.h>
20 #include <sbml/packages/layout/sbml/Point.h>
21 #include <sbml/packages/render/sbml/Text.h>
25 class ColorDefinition;
26 class GraphicalObject;
29 class LocalRenderInformation;
35 class SpeciesReferenceGlyphs;
527 std::map<std::string, const SBase*>
mIdMap;
723 bool createSpeciesReferenceGlyphs(ReactionGlyph* pRGlyph,
const std::vector<LinkTarget>& link, std::map<SpeciesReferenceGlyph*, Point>& startsMap,
bool reactants);
734 void addDependency(
const std::string& parent,
const std::string& child);
770 static const XMLNode*
findChildNode(
const XMLNode* pNode,
const std::string& prefix,
const std::string& name,
bool recursive =
false);
819 static bool parseBoxSize(
const XMLNode* pNode, Dimensions& d);
834 static bool parseBounds(
const XMLNode* pNode, BoundingBox& box);
842 static bool parsePoint(
const XMLNode* pNode, Point& p);
906 static bool parseExtraLinks(
const XMLNode* pNode, std::vector<ReactantLink>& rlinks);
1035 static bool splitString(
const std::string& s, std::vector<std::string>& parts,
const std::string& splitChars);
1056 bool createTextGlyphStyle(
double size, Text::TEXT_ANCHOR hAlign, Text::TEXT_ANCHOR vAlign,
const std::string& objectReference);
1080 static bool findShortestConnection(std::vector<POSITION>& pos1, std::vector<POSITION>& pos2,
const BoundingBox& box1,
const BoundingBox& box2);
1093 static double distance(
const Point& p1,
const Point& p2);
1184 const BoundingBox& bounds,
1185 const Point& offset,
1186 double stroke_width,
1187 const std::string& stroke_color,
1188 const std::string& fill_color,
1189 const std::string& text =
""
1197 const BoundingBox& bounds,
1198 const std::string& stroke_color
1239 static double angle(
const Point& v);
1247 static void rotate(
const Point& p,
double a, Point& r);
1259 template<
typename ITERATOR>
1265 if (pCurve != NULL && start != end)
1267 ITERATOR tmpEnd = end;
1271 if (start != tmpEnd)
1273 LineSegment* pLS = pCurve->createLineSegment();
1274 pLS->setStart(&(*start));
1277 while (start != tmpEnd)
1279 pLS->setEnd(&(*start));
1280 pLS = pCurve->createLineSegment();
1281 pLS->setStart(&(*start));
1285 pLS->setEnd(&(*start));
1307 #endif // CCellDesignerImporter_H__
std::vector< LineDirection > mLineDirections
const Layout * getLayout() const
static Point getPositionPoint(const BoundingBox &box, POSITION position)
ConnectScheme mConnectScheme
std::vector< LinkTarget > mBaseProducts
void checkLinkAnchors(LinkTarget &substrate, LinkTarget &product)
std::string createUniqueId(const std::string &prefix)
std::string findRootElementId(const std::string &id) const
bool createDefaultReactionGlyphStyle()
std::string mCompartmentAlias
bool createDefaultStyles()
std::string mComplexSpeciesAlias
std::vector< ReactionModification > mModifications
bool createProteinModification(RenderGroup *pGroup, const SpeciesModification &smod, const BoundingBox &bounds, const std::string &stroke_color)
static POSITION_TO_COMPARTMENT positionToCompartmentToEnum(std::string s)
static bool parseEditPoints(const XMLNode *pNode, EditPoints &editpoints)
SPECIES_CLASS mSpeciesClass
bool createPrimitive(RenderGroup *pGroup, const SpeciesIdentity &si, const BoundingBox &bounds, const Point &offset, double stroke_width, const std::string &stroke_color, const std::string &fill_color, const std::string &text="")
static bool parseSpeciesState(const XMLNode *pNode, SpeciesState &state)
std::vector< ProteinModification > mModifications
bool createSpeciesReferenceGlyphs(ReactionGlyph *pRGlyph, const std::vector< LinkTarget > &link, std::map< SpeciesReferenceGlyph *, Point > &startsMap, bool reactants)
static CONNECTION_POLICY connectionPolicyToEnum(std::string s)
bool convertCompartmentAnnotations()
static bool parseExtraLinks(const XMLNode *pNode, std::vector< ReactantLink > &rlinks)
static POSITION positionToEnum(std::string pos)
static bool parseBoxSize(const XMLNode *pNode, Dimensions &d)
static bool parseModelDisplay(const XMLNode *pNode, Dimensions &d)
static const XMLNode * findCellDesignerAnnotation(SBMLDocument *pDocument, const XMLNode *pAnnotation)
static bool parseBounds(const XMLNode *pNode, BoundingBox &box)
static double distance(const Point &p1, const Point &p2)
std::list< CCopasiNode< std::string > * > mComplexDependencies
std::vector< std::string > mModifiers
std::map< const CompartmentGlyph *, Point > mCompartmentNamePointMap
static bool parseDoubleLine(const XMLNode *pNode, DoubleLine &dl)
std::map< std::string, CompartmentAnnotation > mCompartmentAnnotationMap
bool createSpeciesGlyphs(const XMLNode *pLoSA)
SPECIES_MODIFICATION_TYPE
static bool parseReactionModification(const XMLNode *pNode, ReactionModification &mod)
std::map< std::string, GraphicalObject * > mCDIdToLayoutElement
bool createDefaultSubstrateStyle()
std::vector< std::string > mAliases
bool setSpeciesGlyphId(SpeciesReferenceGlyph *pGlyph, const LinkTarget &link)
bool createCompartmentGlyph(const CompartmentAlias &ca)
bool createCompartmentStyle(const CompartmentAlias &ca, const CompartmentGlyph *pCGlyph)
bool createCompartmentGlyphs(const XMLNode *pLoCA)
CONNECTION_POLICY mPolicy
SPECIES_MODIFICATION_TYPE mType
LocalRenderInformation * mpLocalRenderInfo
std::vector< LinkTarget > mLinkTargets
bool createCatalysisStyles()
static bool parseLine(const XMLNode *pNode, Line &line)
bool findOrCreateColorDefinition(const std::string &color_string, std::string &id)
std::map< const SpeciesGlyph *, SpeciesAlias > mSpeciesAliasMap
std::vector< ReactantLink > mProductLinks
static void addAllPositions(std::vector< POSITION > &v)
std::string getColorString(const std::string &color_id) const
std::string mNameOrReference
static std::pair< bool, std::string > findCellDesignerNamespace(const SBMLDocument *pDocument)
std::map< std::string, std::pair< std::string, SpeciesIdentity > > mIncludedSpeciesNameMap
static bool parseSpeciesAnnotation(const XMLNode *pNode, SpeciesAnnotation &anno)
void setSBMLDocument(SBMLDocument *pDocument)
std::map< std::string, SpeciesAnnotation > mSpeciesAnnotationMap
static bool createOrthogonal(const Point &v1, Point &v2)
bool convertSpeciesAnnotations()
MODIFICATION_LINK_TYPE mType
bool createTextGlyphStyle(double size, Text::TEXT_ANCHOR hAlign, Text::TEXT_ANCHOR vAlign, const std::string &objectReference)
static bool parseReactionModifications(const XMLNode *pNode, std::vector< ReactionModification > &rmods)
void addDependency(const std::string &parent, const std::string &child)
std::vector< SpeciesModification > mModifications
bool parseProteins(const XMLNode *pNode)
bool handleModificationLinks(ReactionGlyph *pRGlyph, ReactionAnnotation &ranno)
static bool parsePointsString(const std::string &s, std::vector< Point > &points)
bool handleIncludedSpecies(const XMLNode *pNode)
enum POSITION_TO_COMPARTMENT mPosition
ConnectScheme mConnectScheme
static MODIFICATION_LINK_TYPE modificationLinkTypeToEnum(std::string s)
std::map< MODIFICATION_LINK_TYPE, LocalStyle * > mModificationLinkStyleMap
static SPECIES_MODIFICATION_TYPE speciesModificationTypeToEnum(std::string cl)
std::string mParentComplex
static bool parseUsualView(const XMLNode *pNode, UsualView &view)
std::map< std::string, BoundingBox > mCDBounds
const SBMLDocument * getSBMLDocument() const
std::map< std::string, const SBase * > mIdMap
static bool parseReactionAnnotation(const XMLNode *pNode, ReactionAnnotation &ranno)
bool createDefaultActivatorStyle()
std::vector< LinkTarget > mBaseReactants
static bool parseSpeciesModification(const XMLNode *pNode, SpeciesModification &mod)
bool convertReactionAnnotations()
static double angle(const Point &v)
bool handleExtraReactionElements(ReactionGlyph *pRGlyph, ReactionAnnotation &ranno, bool substrate)
static MODIFICATION_TYPE modificationTypeToEnum(std::string s)
static bool parseReactionElements(const XMLNode *pNode, std::vector< LinkTarget > &elements)
static bool findShortestConnection(std::vector< POSITION > &pos1, std::vector< POSITION > &pos2, const BoundingBox &box1, const BoundingBox &box2)
static bool parseLinkTarget(const XMLNode *pNode, LinkTarget &l)
static bool parseConnectScheme(const XMLNode *pNode, ConnectScheme &scheme)
static REACTION_TYPE reactionTypeToEnum(std::string s)
std::map< std::string, std::string > mColorStringMap
static bool parseCompartmentAlias(const XMLNode *pNode, CompartmentAlias &ca, const Dimensions &layout_dimensions)
static SPECIES_CLASS classToEnum(std::string cl)
bool createDefaultInhibitorStyle()
std::map< const CompartmentGlyph *, CompartmentAlias > mCompartmentAliasMap
static DIRECTION_VALUE directionToEnum(std::string s)
static Point calculateAbsoluteValue(const Point &p, const Point &p1, const Point &p2, const Point &p3)
static bool parsePaint(const XMLNode *pNode, Paint &p)
bool createDefaultProductStyle()
bool setSpeciesReferenceId(SpeciesReferenceGlyph *pGlyph, const LinkTarget &link, const std::string &reactionId)
std::map< std::string, SpeciesAlias > mSpeciesAliases
bool convertReactionAnnotation(Reaction *pReaction, const Model *pModel)
MODIFICATION_TYPE mModType
static PAINT_SCHEME paintSchemeToEnum(std::string s)
CCellDesignerImporter(SBMLDocument *pDocument=0)
std::vector< ReactantLink > mReactantLinks
static bool createLineSegments(Curve *pCurve, ITERATOR start, ITERATOR end)
bool createDefaultModifierStyle()
SpeciesAnnotation mAnnotation
static double determineVersion(const XMLNode *pNode)
static bool splitString(const std::string &s, std::vector< std::string > &parts, const std::string &splitChars)
static const XMLNode * findChildNode(const XMLNode *pNode, const std::string &prefix, const std::string &name, bool recursive=false)
static bool parseExtraLink(const XMLNode *pNode, ReactantLink &l)
bool createSpeciesGlyph(const SpeciesAlias &sa)
static bool parseProteinModification(const XMLNode *pNode, ProteinModification &mod)
bool createSpeciesStyles()
std::map< std::string, Protein > mProteinInformationMap
std::vector< Point > mPoints
static void rotate(const Point &p, double a, Point &r)
static bool parseSpeciesAlias(const XMLNode *pNode, SpeciesAlias &sa)
static bool parsePoint(const XMLNode *pNode, Point &p)
bool convertCellDesignerLayout(const XMLNode *pCellDesignerAnnotation)
static bool parseCompartmentAnnotation(const XMLNode *pNode, CompartmentAnnotation &anno)
void checkLinkAnchor(LinkTarget &link, const Point &p)
static bool parseLineDirection(const XMLNode *pNode, LineDirection &d)
static bool parseSpeciesIdentity(const XMLNode *pNode, SpeciesIdentity &identity)
std::multimap< std::string, GraphicalObject * > mModelIdToLayoutElement
SpeciesIdentity mIdentity
SBMLDocument * mpDocument