reaction-step.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #ifndef GCHEMPAINT_REACTION_STEP_H
00026 #define GCHEMPAINT_REACTION_STEP_H
00027
00028 #include <gcp/mechanism-step.h>
00029 #include <gccv/structs.h>
00030 #include <set>
00031
00033 namespace gcp {
00034
00035 class Reaction;
00036 class ReactionArrow;
00037
00038 extern gcu::TypeId ReactionStepType;
00039
00048 class ReactionStep: public MechanismStep
00049 {
00050 public:
00054 ReactionStep ();
00058 virtual ~ReactionStep ();
00059
00068 ReactionStep (Reaction *reaction, std::map<double, gcu::Object*>& Children, std::map<gcu::Object*, gccv::Rect> Objects) throw (std::invalid_argument);
00075 xmlNodePtr Save (xmlDocPtr xml) const;
00082 bool Load (xmlNodePtr node);
00087 double GetYAlign ();
00098 bool OnSignal (gcu::SignalId Signal, gcu::Object *Child);
00099
00105 void AddArrow (ReactionArrow *arrow) {m_Arrows.insert (arrow);}
00112 void RemoveArrow (ReactionArrow *arrow);
00113
00117 std::string Name ();
00118
00119 private:
00120 void CleanChildren ();
00121
00122 private:
00123 bool m_bLoading;
00124 std::set<ReactionArrow *> m_Arrows;
00125 };
00126
00127 }
00128
00129 #endif // GCHEMPAINT_REACTION_STEP_H