40 enum GroupType { kVanillaGroup, kInvisibleGroup,
49 Group(
const std::string& sname,
const std::string& stitle);
56 bool IsInvisibleGroup()
const;
57 bool IsCombinatoricGroup()
const;
59 GroupType GetType()
const {
return m_Type; }
63 virtual void AddJigsaw(
Jigsaw& jigsaw);
65 virtual void RemoveFrame(
RestFrame& frame);
67 void RemoveJigsaw(
Jigsaw& jigsaw);
70 bool ContainsFrame(
const RestFrame& frame)
const;
72 int GetNFrames()
const;
76 static Group& Empty();
80 State* m_GroupStatePtr;
82 virtual bool InitializeAnalysis();
83 virtual bool ClearEvent() = 0;
84 virtual bool AnalyzeEvent() = 0;
86 virtual State& InitializeParentState() = 0;
87 virtual State& GetParentState()
const;
89 int GetNChildStates()
const;
90 virtual State& GetChildState(
int i)
const;
105 bool ResolveUnknowns();
106 bool ResolveState(
const State& state);
107 bool InitializeJigsaw(
Jigsaw& jigsaw);
109 static int m_class_key;
abstract base class for all Jigsaw objects
Base class for all RestFrame package objects.
abstract base class for all Group objects
virtual void Clear()
Clears Group of all connections to other objects.
abstract base class for all Frame objects
abstract base class for all State objects