##// END OF EJS Templates
Some work on PCB parser.
Some work on PCB parser.

File last commit:

r6:442ac78a55ba default
r6:442ac78a55ba default
Show More
qicadpcb.cpp
274 lines | 5.6 KiB | text/x-c | CppLexer
#include "qicadpcb.h"
QIlib::QIcadPcb::QIcadPcb()
:pcbRoot(NULL)
{
}
bool QIlib::QIcadPcb::parsePcb(const QString &pcb)
{
parse(pcb.toStdString().c_str());
updateConcreteTree();
return false;
}
QString QIlib::QIcadPcb::toString()
{
}
QString QIlib::QIcadPcb::print()
{
return rootNode.print();
}
void QIlib::QIcadPcb::updateConcreteTree()
{
if(this->rootNode.nodes.count())
{
if(this->rootNode.nodes.at(0)->name==QIlib::Lexique::kicad_pcb_c)
{
if(this->pcbRoot==NULL)
{
this->pcbRoot = new QIcadPcbRoot(this->rootNode.nodes.at(0));
}
}
}
}
QIlib::QIcadPcbRoot::QIcadPcbRoot(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbRoot::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
this->clrNets();
if(node->name==QIlib::Lexique::kicad_pcb_c)
{
for(int i=0;i<node->nodes.count();i++)
{
if(node->nodes.at(i)->name==QIlib::Lexique::version_c)
{
this->version.setNode(node->nodes.at(i));
}
if(node->nodes.at(i)->name==QIlib::Lexique::host_c)
{
this->host.setNode(node->nodes.at(i));
}
if(node->nodes.at(i)->name==QIlib::Lexique::page_c)
{
this->page.setNode(node->nodes.at(i));
}
if(node->nodes.at(i)->name==QIlib::Lexique::general_c)
{
this->general.setNode(node->nodes.at(i));
}
if(node->nodes.at(i)->name==QIlib::Lexique::layers_c)
{
this->layers.setNode(node->nodes.at(i));
}
if(node->nodes.at(i)->name==QIlib::Lexique::setup_c)
{
this->setup.setNode(node->nodes.at(i));
}
if(node->nodes.at(i)->name==QIlib::Lexique::net_c)
{
this->apendNet(node->nodes.at(i));
}
}
}
}
void QIlib::QIcadPcbRoot::clrNets()
{
while(nets.count())
{
QIcadAbstractNodeWrapper* net;
net = nets.last();
nets.removeLast();
delete net;
}
}
void QIlib::QIcadPcbRoot::apendNet(QIlib::AbstractNode *node)
{
if(node->name==QIlib::Lexique::net_c)
{
this->nets.append(new QIcadAbstractNodeWrapper(node));
}
}
QIlib::QIcadPcbGeneralInfo::QIcadPcbGeneralInfo(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbGeneralInfo::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbLayers::QIcadPcbLayers(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbLayers::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbLine::QIcadPcbLine(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbLine::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbModule::QIcadPcbModule(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbModule::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbDimension::QIcadPcbDimension(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbDimension::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbModuleModel::QIcadPcbModuleModel(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbModuleModel::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbFpText::QIcadPcbFpText(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbFpText::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbFpTextEffects::QIcadPcbFpTextEffects(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbFpTextEffects::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbFpTextEffectsFont::QIcadPcbFpTextEffectsFont(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbFpTextEffectsFont::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbNetClass::QIcadPcbNetClass(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbNetClass::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbSetup::QIcadPcbSetup(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbSetup::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbPlotParams::QIcadPcbPlotParams(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbPlotParams::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbSegment::QIcadPcbSegment(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbSegment::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}
QIlib::QIcadPcbVia::QIcadPcbVia(QIlib::AbstractNode *node)
:QIcadAbstractNodeWrapper(node)
{
this->setNode(node);
}
void QIlib::QIcadPcbVia::setNode(QIlib::AbstractNode *node)
{
this->p_node = node;
}