vcglib/apps/trimeshinfo/InstancesNode.h

70 lines
1.4 KiB
C++

#include <utility>
#include <map>
#include <list>
#include "Node.h"
class InstanceNode: public Node
{
public:
InstanceNode(void){node_type = INSTANCE_NODE; id = "empty"; type= "empty";};
char* id;
char* type;
int node_type;
OwnSlotsNode own_slots;
void addOwnSlots(OwnSlotsNode* own_slots);
virtual void printNode();
virtual int qualifyNode();
};
void InstanceNode::addOwnSlots(OwnSlotsNode* sn)
{
own_slots.addOwnSlot(&sn->own_slot);
}
void InstanceNode::printNode()
{
cout<<"InstanceNode: Node node_type is "<<node_type<<"\n";
cout<<"InstanceNode: Node type is "<<type<<"\n";
cout<<"InstanceNode: Node id is "<<id<<"\n";
own_slots.printNode();
}
int InstanceNode::qualifyNode()
{return node_type;}
class InstancesNode: public Node
{
public:
InstancesNode(void){node_type = INSTANCES_NODE;};
int node_type;
NodeGroup instances;
void addInstance(InstanceNode* in);
virtual void printNode();
virtual int qualifyNode();
};
void InstancesNode::addInstance(InstanceNode* in)
{
instances.Sons.push_back(new InstanceNode);
InstanceNode* ilp = (InstanceNode*) instances.Sons.front();
ilp->addOwnSlots(&in->own_slots);
}
void InstancesNode::printNode()
{
cout<<"InstancesNode: Node type is "<<node_type<<"\n";
list<Node*>::iterator it;
for(it = instances.Sons.begin(); it!=instances.Sons.end(); ++it)
(*it)->printNode();
}
int InstancesNode::qualifyNode()
{return node_type;}