1 /* 2 *_________________________________________________________________________* 3 * POEMS: PARALLELIZABLE OPEN SOURCE EFFICIENT MULTIBODY SOFTWARE * 4 * DESCRIPTION: SEE READ-ME * 5 * FILE NAME: PoemsChain.h * 6 * AUTHORS: See Author List * 7 * GRANTS: See Grants List * 8 * COPYRIGHT: (C) 2005 by Authors as listed in Author's List * 9 * LICENSE: Please see License Agreement * 10 * DOWNLOAD: Free at www.rpi.edu/~anderk5 * 11 * ADMINISTRATOR: Prof. Kurt Anderson * 12 * Computational Dynamics Lab * 13 * Rensselaer Polytechnic Institute * 14 * 110 8th St. Troy NY 12180 * 15 * CONTACT: anderk5@rpi.edu * 16 *_________________________________________________________________________*/ 17 18 #ifndef POEMSCHAIN_H_ 19 #define POEMSCHAIN_H_ 20 21 #include "poemslist.h" 22 23 struct ChildRingData { 24 List<int> * childRing; 25 int entranceNodeId; 26 }; 27 28 struct POEMSChain{ ~POEMSChainPOEMSChain29 ~POEMSChain(){ 30 for(int i = 0; i < childChains.GetNumElements(); i++) 31 { 32 delete childChains(i); 33 } 34 listOfNodes.DeleteValues(); 35 } 36 //void printTreeStructure(int tabs); 37 //void getTreeAsList(List<int> * temp); 38 List<int> listOfNodes; 39 List<POEMSChain> childChains; 40 POEMSChain * parentChain; 41 List<ChildRingData> childRings; 42 43 printTreeStructurePOEMSChain44 void printTreeStructure(int tabs){ 45 for(int i = 0; i < tabs; i++) 46 { 47 cout << "\t"; 48 } 49 cout << "Chain: "; 50 for(int i = 0; i < listOfNodes.GetNumElements(); i++) 51 { 52 cout << *(listOfNodes(i)) << " "; 53 } 54 cout << endl; 55 for(int i = 0; i < childChains.GetNumElements(); i++) 56 { 57 childChains(i)->printTreeStructure(tabs + 1); 58 } 59 } getTreeAsListPOEMSChain60 void getTreeAsList(List<int> * temp) 61 { 62 for(int i = 0; i < listOfNodes.GetNumElements(); i++) 63 { 64 int * integer = new int; 65 *integer = *(listOfNodes(i)); 66 temp->Append(integer); 67 } 68 for(int i = 0; i < childChains.GetNumElements(); i++) 69 { 70 childChains(i)->getTreeAsList(temp); 71 } 72 } 73 }; 74 #endif 75