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