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 } 35 //void printTreeStructure(int tabs); 36 //void getTreeAsList(List<int> * temp); 37 List<int> listOfNodes; 38 List<POEMSChain> childChains; 39 POEMSChain * parentChain; 40 List<ChildRingData> childRings; 41 42 printTreeStructurePOEMSChain43 void printTreeStructure(int tabs){ 44 for(int i = 0; i < tabs; i++) 45 { 46 cout << "\t"; 47 } 48 cout << "Chain: "; 49 for(int i = 0; i < listOfNodes.GetNumElements(); i++) 50 { 51 cout << *(listOfNodes(i)) << " "; 52 } 53 cout << endl; 54 for(int i = 0; i < childChains.GetNumElements(); i++) 55 { 56 childChains(i)->printTreeStructure(tabs + 1); 57 } 58 } getTreeAsListPOEMSChain59 void getTreeAsList(List<int> * temp) 60 { 61 for(int i = 0; i < listOfNodes.GetNumElements(); i++) 62 { 63 int * integer = new int; 64 *integer = *(listOfNodes(i)); 65 temp->Append(integer); 66 } 67 for(int i = 0; i < childChains.GetNumElements(); i++) 68 { 69 childChains(i)->getTreeAsList(temp); 70 } 71 } 72 }; 73 #endif 74