CADSTAR Archive Importer: Parse missing ROUTEREASSIGN node in ROUTECODE
This commit is contained in:
parent
7a624d8d44
commit
8b13140122
|
@ -279,13 +279,12 @@ void CADSTAR_ARCHIVE_PARSER::TEXTCODE::Parse( XNODE* aNode )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void CADSTAR_ARCHIVE_PARSER::ROUTECODE::Parse( XNODE* aNode )
|
void CADSTAR_ARCHIVE_PARSER::ROUTEREASSIGN::Parse( XNODE* aNode )
|
||||||
{
|
{
|
||||||
wxASSERT( aNode->GetName() == wxT( "ROUTECODE" ) );
|
wxASSERT( aNode->GetName() == wxT( "ROUTEREASSIGN" ) );
|
||||||
|
|
||||||
ID = GetXmlAttributeIDString( aNode, 0 );
|
LayerID = GetXmlAttributeIDString( aNode, 0 );
|
||||||
Name = GetXmlAttributeIDString( aNode, 1 );
|
OptimalWidth = GetXmlAttributeIDLong( aNode, 1, false );
|
||||||
OptimalWidth = GetXmlAttributeIDLong( aNode, 2, false );
|
|
||||||
|
|
||||||
XNODE* cNode = aNode->GetChildren();
|
XNODE* cNode = aNode->GetChildren();
|
||||||
|
|
||||||
|
@ -307,6 +306,50 @@ void CADSTAR_ARCHIVE_PARSER::ROUTECODE::Parse( XNODE* aNode )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void CADSTAR_ARCHIVE_PARSER::ROUTECODE::Parse( XNODE* aNode )
|
||||||
|
{
|
||||||
|
wxASSERT( aNode->GetName() == wxT( "ROUTECODE" ) );
|
||||||
|
|
||||||
|
ID = GetXmlAttributeIDString( aNode, 0 );
|
||||||
|
Name = GetXmlAttributeIDString( aNode, 1 );
|
||||||
|
OptimalWidth = GetXmlAttributeIDLong( aNode, 2, false );
|
||||||
|
|
||||||
|
XNODE* cNode = aNode->GetChildren();
|
||||||
|
|
||||||
|
for( ; cNode; cNode = cNode->GetNext() )
|
||||||
|
{
|
||||||
|
wxString cNodeName = cNode->GetName();
|
||||||
|
|
||||||
|
if( cNodeName == wxT( "NECKWIDTH" ) )
|
||||||
|
{
|
||||||
|
NeckedWidth = GetXmlAttributeIDLong( cNode, 0 );
|
||||||
|
}
|
||||||
|
else if( cNodeName == wxT( "SROUTEWIDTH" ) )
|
||||||
|
{
|
||||||
|
OptimalWidth = GetXmlAttributeIDLong( cNode, 0 );
|
||||||
|
}
|
||||||
|
else if( cNodeName == wxT( "MINWIDTH" ) )
|
||||||
|
{
|
||||||
|
MinWidth = GetXmlAttributeIDLong( cNode, 0 );
|
||||||
|
}
|
||||||
|
else if( cNodeName == wxT( "MAXWIDTH" ) )
|
||||||
|
{
|
||||||
|
MaxWidth = GetXmlAttributeIDLong( cNode, 0 );
|
||||||
|
}
|
||||||
|
else if( cNodeName == wxT( "ROUTEREASSIGN" ) )
|
||||||
|
{
|
||||||
|
ROUTEREASSIGN routereassign;
|
||||||
|
routereassign.Parse( cNode );
|
||||||
|
RouteReassigns.push_back( routereassign );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
THROW_UNKNOWN_NODE_IO_ERROR( cNodeName, aNode->GetName() );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
double CADSTAR_ARCHIVE_PARSER::EVALUE::GetDouble()
|
double CADSTAR_ARCHIVE_PARSER::EVALUE::GetDouble()
|
||||||
{
|
{
|
||||||
return Base * std::pow( 10.0, Exponent );
|
return Base * std::pow( 10.0, Exponent );
|
||||||
|
|
|
@ -245,11 +245,20 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
struct ROUTEREASSIGN
|
||||||
|
{
|
||||||
|
LAYER_ID LayerID;
|
||||||
|
long OptimalWidth;
|
||||||
|
long MinWidth;
|
||||||
|
long MaxWidth;
|
||||||
|
long NeckedWidth;
|
||||||
|
|
||||||
|
void Parse( XNODE* aNode );
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
struct ROUTECODE
|
struct ROUTECODE
|
||||||
{
|
{
|
||||||
//TODO: Generalise this so it can also be used with CSA files
|
|
||||||
// (CSA files use "SROUTEWIDTH" subnode, instead of attribute)
|
|
||||||
|
|
||||||
ROUTECODE_ID ID;
|
ROUTECODE_ID ID;
|
||||||
wxString Name;
|
wxString Name;
|
||||||
long OptimalWidth;
|
long OptimalWidth;
|
||||||
|
@ -257,6 +266,8 @@ public:
|
||||||
long MaxWidth;
|
long MaxWidth;
|
||||||
long NeckedWidth;
|
long NeckedWidth;
|
||||||
|
|
||||||
|
std::vector<ROUTEREASSIGN> RouteReassigns;
|
||||||
|
|
||||||
void Parse( XNODE* aNode );
|
void Parse( XNODE* aNode );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue