Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members

legoTree.H

Go to the documentation of this file.
00001 /*-------------------------------------------------------------------
00002  *   Name:        legoTree.H
00003  *
00004  *   Designer:    Bill Havanki
00005  *
00006  *   Created:     10/30/96 (Happy Halloween everybody)
00007  *
00008  *   Description: This file contains the LEGO header file which
00009  *                defines the treegion derived class.
00010  *
00011  *   Location:    /ncsu/tinker/LEGO/src/derived/legoTree.H
00012  --------------------------------------------------------------------
00013  * 10/30/96 WAH: Initial file creation.
00014  * 11/01/96 WAH: Added support for treegion children. 
00015  * 11/22/96 WAH: Incorporated in LEGO proper.
00016  * 2/13/97 WAH:  Made name change from legoRegionRef to regionList et al.
00017  * 3/22/97 WAH:  Added RefreshEdges method et al.
00018  * 6/11/97 WAH:  Added GetOpCount method.
00019  * 1/29/98 WAH:  Modified RefreshEntryEdges to delete parents list.
00020  * 3/27/98 WAH:  Fixed RefreshEntryEdges to handle root with no inedges.
00021  --------------------------------------------------------------------*/
00022 
00023 #ifndef LEGOTREEGION_H
00024 #define LEGOTREEGION_H
00025 
00026 #include <stdio.h>
00027 #include "region.H"
00028 
00029 //---------------------------------------------------------------------------
00030 
00031 class legoTreegion : public legoRegion
00032 {
00033   legoRegion *root;
00034   regionList *saplings;
00035   regionList *treeTraversalRList;
00036 
00037   //  void AddExitOp (legoOp *);
00038   //  regionList *DFS (legoRegion *, int);
00039 
00040 public:
00041   legoTreegion () : legoRegion (RT_TREE,0) {
00042     root = NULL;
00043     saplings = NULL;
00044     treeTraversalRList = NULL; 
00045   }
00046   legoTreegion (unsigned rId = 0): legoRegion(RT_TREE,rId) {
00047     root = NULL;
00048     saplings = NULL;
00049     treeTraversalRList = NULL; 
00050   }
00051   legoTreegion (const legoTreegion &orig) : legoRegion ((legoRegion) orig)
00052   {
00053     root = (legoRegion *) GetItem(0);
00054     RefreshSaplings();
00055     treeTraversalRList = NULL; 
00056   }
00057 
00058   ~legoTreegion () {
00059     delete saplings;
00060     delete treeTraversalRList;
00061     RegionKiller();
00062   }
00063   int GetOpCount (void)
00064   {
00065     int opct = 0;
00066 
00067     for (int i = 0; i < GetCount(); i++)
00068       opct += ((legoRegion *) GetItem(i))->GetOpCount();
00069     return opct;
00070   }
00071 
00072   void SetRoot (legoRegion *r) {root = r;}
00073   legoRegion *GetRoot (void) {return root;}
00074 
00075   void SetSaplings (regionList *r) {saplings = r;}
00076   regionList *GetSaplings (void) {return saplings;}
00077 
00078   void RefreshSaplings (void);
00079 
00080   void SetTreeTraversalRList (regionList *r) {treeTraversalRList = r;}
00081   regionList *GetTreeTraversalRList (void) {return treeTraversalRList;}
00082 
00083   void RefreshOps (void)
00084   {
00085     RefreshEntryOps();
00086     RefreshExitOps();
00087   } // end RefreshOps
00088   void RefreshEntryOps (void)
00089   {
00090     if (GetEntryOpsPtr() != NULL)
00091       delete GetEntryOpsPtr();  // scrog old list
00092     SetEntryOpsPtr (new opList (*(root->GetEntryOpsPtr())));
00093   } // end RefreshEntryOps
00094   void RefreshExitOps();
00095 
00096   void RefreshEdges (void)
00097   {
00098     RefreshEntryEdges();
00099     RefreshExitEdges();
00100   } // end RefreshEdges
00101   void RefreshEntryEdges (void)
00102   {
00103     if (GetInEdgesPtr() != NULL)
00104       delete GetInEdgesPtr();  // scrog old list
00105     if (root->GetInEdgesPtr() != NULL)
00106       SetInEdgesPtr (new edgeList (*(root->GetInEdgesPtr())));
00107     else
00108       SetInEdgesPtr (NULL);
00109     SetParents (NULL);
00110   } // end RefreshEntryEdges
00111   void RefreshExitEdges (void);
00112 
00113 /* #define LEGOTREE_FULL (0) */
00114 /* #define LEGOTREE_LINEAR (1) */
00115 
00116   /*  void Construct (legoRegion *, int = LEGOTREE_FULL);
00117   void ContinueConstruction (void);
00118   void Deconstruct (void);
00119   void Reconstruct (legoRegion *);*/
00120   void Dump (FILE *);
00121 };
00122 #endif // LEGOTREEGION_H
00123 
00124 
00125 
00126 

Generated on Mon Jul 21 20:27:44 2003 for TINKER LEGO DOC by doxygen 1.3.2