KWWidgets
debian/tmp/usr/include/KWWidgets/vtkKWStateMachineCluster.h
Go to the documentation of this file.
1 /*=========================================================================
2 
3  Module: $RCSfile: vtkKWStateMachineCluster.h,v $
4 
5  Copyright (c) Kitware, Inc.
6  All rights reserved.
7  See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
8 
9  This software is distributed WITHOUT ANY WARRANTY; without even
10  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
11  PURPOSE. See the above copyright notice for more information.
12 
13 =========================================================================*/
14 // .NAME vtkKWStateMachineCluster - a state machine cluster.
15 // .SECTION Description
16 // This class is the basis for a state machine cluster, i.e. a means
17 // to logically group states together. Clusters are not used by the
18 // state machine per se, they are just a convenient way to group states
19 // logically together, and can be used by state machine writers
20 // (see vtkKWStateMachineDOTWriter) to display clusters as groups.
21 // .SECTION Thanks
22 // This work is part of the National Alliance for Medical Image
23 // Computing (NAMIC), funded by the National Institutes of Health
24 // through the NIH Roadmap for Medical Research, Grant U54 EB005149.
25 // Information on the National Centers for Biomedical Computing
26 // can be obtained from http://nihroadmap.nih.gov/bioinformatics.
27 // .SECTION See Also
28 // vtkKWStateMachine vtkKWStateMachineState
29 
30 #ifndef __vtkKWStateMachineCluster_h
31 #define __vtkKWStateMachineCluster_h
32 
33 #include "vtkKWObject.h"
34 
36 class vtkKWStateMachineClusterInternals;
37 
39 {
40 public:
41  static vtkKWStateMachineCluster* New();
42  vtkTypeRevisionMacro(vtkKWStateMachineCluster, vtkKWObject);
43  void PrintSelf(ostream& os, vtkIndent indent);
44 
45  // Description:
46  // Get id.
47  vtkGetMacro(Id, vtkIdType);
48 
49  // Description:
50  // Set/Get simple name.
51  vtkGetStringMacro(Name);
52  vtkSetStringMacro(Name);
53 
54  // Description:
55  // Add a state.
56  // Return 1 on success, 0 otherwise.
57  virtual int AddState(vtkKWStateMachineState *state);
58  virtual int HasState(vtkKWStateMachineState *state);
59  virtual int GetNumberOfStates();
60  virtual vtkKWStateMachineState* GetNthState(int rank);
61 
62 protected:
65 
66  vtkIdType Id;
67  char *Name;
68 
69  // Description:
70  // Remove state(s).
71  virtual void RemoveState(vtkKWStateMachineState *state);
72  virtual void RemoveAllStates();
73 
74  // PIMPL Encapsulation for STL containers
75  //BTX
76  vtkKWStateMachineClusterInternals *Internals;
77  //ETX
78 
79 private:
80 
81  static vtkIdType IdCounter;
82 
83  vtkKWStateMachineCluster(const vtkKWStateMachineCluster&); // Not implemented
84  void operator=(const vtkKWStateMachineCluster&); // Not implemented
85 };
86 
87 #endif