Overture  Version 25
ListOfRotatedBox.h
Go to the documentation of this file.
1 #ifndef LISTOFROTATEDBOX_H
2 #define LISTOFROTATEDBOX_H "ListOfRotatedBox.h"
3 class RotatedBox;
4 //
5 // ListOfRotatedBox Class Template
6 //
7 // This is the header file for a template class that stores pointers
8 // of objects within an array. The array is dynamic so that only
9 // memory and time limit the number of objects stored on the list.
10 
11 //
12 // Set this parameter to 1 if you find it necessary to track the lists
13 // being created and destroyed.
14 //
15 #define DEBUGTEMPLATE 0
16 
17 
19  private:
20 
21 #if DEBUGTEMPLATE
22  int theID; // Unique id for each list object created.
23 #endif // the counter static int theIDCount is used
24  // to assign a value.
25 
26  int listLength; // Number of elements in the list.
27  int memAlloc; // Current amount of memory allocated for the list.
28  RotatedBox **aList; // Pointer to a list of pointers to object RotatedBox.
29 
30  void checkRange(int) const; // Internal range check function.
31 
32  public:
33 
34 #if DEBUGTEMPLATE // Should be initialized for debugging.
35  static int theIDCount; // example:
36 #endif // int ListOfRotatedBox<stuff>::theIDCount = 0;
37 
38  // Constructors/Destructors
39  ListOfRotatedBox(); // Default constructor.
40  ListOfRotatedBox(const ListOfRotatedBox&); // Copy constructor.
41  ~ListOfRotatedBox(); // Destructor.
42 
43  ListOfRotatedBox& operator=(const ListOfRotatedBox&); // Equal operator (only pointers of
44  // list objects copied).
45 
46 // void Iterator( void (RotatedBox::*Function)()); // Function iterator.
47 
48 
49  // ListOfRotatedBox Management Functions
50 
51  void addElement(RotatedBox &X); // Add an object to the list.
52 
53  void addElement(RotatedBox &X, int index); // Add an object to the list at a
54  // given location.
55  int getLength() const {return listLength;};// Get length of list.
56 
57  RotatedBox* getElementPtr(int index) const; // Get the pointer of the object
58  // at a given location.
59  RotatedBox& getElement(int index) const; // Reference the object at a
60  // a given location.
61  RotatedBox& operator[](int index) const; // Reference the object at a
62  // given location.
63  void deleteElement(RotatedBox &X); // Find an element on the list
64  // and delete it.
65  void deleteElement(int index); // Delete the object at a given
66  // location in the list.
67  void setElementPtr(RotatedBox *X, int i); // Set the list element at i
68  // to point to X.
69  void swapElements(int i, int j); // Swap two elements for sorting
70  // among other things.
71  void clean(); // Deallocate pointer list but
72  // not objects in the list.
73  void deepClean(); // Deallocate pointer list and
74  // the pointers on the list.
75 };
76 
77 #endif