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