Common: Reorder some functions in eagle_parser.*
This commit is contained in:
parent
4e69acbb49
commit
96317fb7c3
|
@ -136,6 +136,63 @@ OPTIONAL_XML_ATTRIBUTE<T> parseOptionalAttribute( wxXmlNode* aNode, string aAttr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
NODE_MAP MapChildren( wxXmlNode* currentNode )
|
||||||
|
{
|
||||||
|
// Map node_name -> node_pointer
|
||||||
|
NODE_MAP nodesMap;
|
||||||
|
|
||||||
|
// Loop through all children mapping them in nodesMap
|
||||||
|
if( currentNode )
|
||||||
|
currentNode = currentNode->GetChildren();
|
||||||
|
|
||||||
|
while( currentNode )
|
||||||
|
{
|
||||||
|
// Create a new pair in the map
|
||||||
|
// key: current node name
|
||||||
|
// value: current node pointer
|
||||||
|
nodesMap[currentNode->GetName().ToStdString()] = currentNode;
|
||||||
|
|
||||||
|
// Get next child
|
||||||
|
currentNode = currentNode->GetNext();
|
||||||
|
}
|
||||||
|
|
||||||
|
return nodesMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
string makeKey( const string& aFirst, const string& aSecond )
|
||||||
|
{
|
||||||
|
string key = aFirst + '\x02' + aSecond;
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
unsigned long timeStamp( wxXmlNode* aTree )
|
||||||
|
{
|
||||||
|
// in this case from a unique tree memory location
|
||||||
|
return (unsigned long)(void*) aTree;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
wxPoint kicad_arc_center( const wxPoint& aStart, const wxPoint& aEnd, double aAngle )
|
||||||
|
{
|
||||||
|
// Eagle give us start and end.
|
||||||
|
// S_ARC wants start to give the center, and end to give the start.
|
||||||
|
double dx = aEnd.x - aStart.x, dy = aEnd.y - aStart.y;
|
||||||
|
wxPoint mid = ( aStart + aEnd ) / 2;
|
||||||
|
|
||||||
|
double dlen = sqrt( dx*dx + dy*dy );
|
||||||
|
double dist = dlen / ( 2 * tan( DEG2RAD( aAngle ) / 2 ) );
|
||||||
|
|
||||||
|
wxPoint center(
|
||||||
|
mid.x + dist * ( dy / dlen ),
|
||||||
|
mid.y - dist * ( dx / dlen )
|
||||||
|
);
|
||||||
|
|
||||||
|
return center;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
EWIRE::EWIRE( wxXmlNode* aWire )
|
EWIRE::EWIRE( wxXmlNode* aWire )
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
|
@ -667,58 +724,3 @@ ELAYER::ELAYER( wxXmlNode* aLayer )
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
NODE_MAP MapChildren( wxXmlNode* currentNode )
|
|
||||||
{
|
|
||||||
// Map node_name -> node_pointer
|
|
||||||
NODE_MAP nodesMap;
|
|
||||||
|
|
||||||
// Loop through all children mapping them in nodesMap
|
|
||||||
if( currentNode )
|
|
||||||
currentNode = currentNode->GetChildren();
|
|
||||||
|
|
||||||
while( currentNode )
|
|
||||||
{
|
|
||||||
// Create a new pair in the map
|
|
||||||
// key: current node name
|
|
||||||
// value: current node pointer
|
|
||||||
nodesMap[currentNode->GetName().ToStdString()] = currentNode;
|
|
||||||
|
|
||||||
// Get next child
|
|
||||||
currentNode = currentNode->GetNext();
|
|
||||||
}
|
|
||||||
|
|
||||||
return nodesMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
string makeKey( const string& aFirst, const string& aSecond )
|
|
||||||
{
|
|
||||||
string key = aFirst + '\x02' + aSecond;
|
|
||||||
return key;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
unsigned long timeStamp( wxXmlNode* aTree )
|
|
||||||
{
|
|
||||||
// in this case from a unique tree memory location
|
|
||||||
return (unsigned long)(void*) aTree;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
wxPoint kicad_arc_center( const wxPoint& aStart, const wxPoint& aEnd, double aAngle )
|
|
||||||
{
|
|
||||||
// Eagle give us start and end.
|
|
||||||
// S_ARC wants start to give the center, and end to give the start.
|
|
||||||
double dx = aEnd.x - aStart.x, dy = aEnd.y - aStart.y;
|
|
||||||
wxPoint mid = ( aStart + aEnd ) / 2;
|
|
||||||
|
|
||||||
double dlen = sqrt( dx*dx + dy*dy );
|
|
||||||
double dist = dlen / ( 2 * tan( DEG2RAD( aAngle ) / 2 ) );
|
|
||||||
|
|
||||||
wxPoint center(
|
|
||||||
mid.x + dist * ( dy / dlen ),
|
|
||||||
mid.y - dist * ( dx / dlen )
|
|
||||||
);
|
|
||||||
|
|
||||||
return center;
|
|
||||||
}
|
|
||||||
|
|
|
@ -342,6 +342,27 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Function MapChildren
|
||||||
|
* provides an easy access to the children of an XML node via their names.
|
||||||
|
* @param currentNode is a pointer to a wxXmlNode, whose children will be mapped.
|
||||||
|
* @return NODE_MAP - a map linking the name of each children to the children itself (via a
|
||||||
|
* wxXmlNode*)
|
||||||
|
*/
|
||||||
|
NODE_MAP MapChildren( wxXmlNode* currentNode );
|
||||||
|
|
||||||
|
/// Assemble a two part key as a simple concatenation of aFirst and aSecond parts,
|
||||||
|
/// using a separator.
|
||||||
|
string makeKey( const string& aFirst, const string& aSecond );
|
||||||
|
|
||||||
|
/// Make a unique time stamp
|
||||||
|
unsigned long timeStamp( wxXmlNode* aTree );
|
||||||
|
|
||||||
|
/// Convert an Eagle curve end to a KiCad center for S_ARC
|
||||||
|
wxPoint kicad_arc_center( const wxPoint& aStart, const wxPoint& aEnd, double aAngle );
|
||||||
|
|
||||||
|
|
||||||
// Pre-declare for typedefs
|
// Pre-declare for typedefs
|
||||||
struct EROT;
|
struct EROT;
|
||||||
|
|
||||||
|
@ -352,6 +373,8 @@ typedef OPTIONAL_XML_ATTRIBUTE<bool> opt_bool;
|
||||||
typedef OPTIONAL_XML_ATTRIBUTE<EROT> opt_erot;
|
typedef OPTIONAL_XML_ATTRIBUTE<EROT> opt_erot;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// All of the 'E'STRUCTS below merely hold Eagle XML information verbatim, in binary.
|
// All of the 'E'STRUCTS below merely hold Eagle XML information verbatim, in binary.
|
||||||
// For maintenance and troubleshooting purposes, it was thought that we'd need to
|
// For maintenance and troubleshooting purposes, it was thought that we'd need to
|
||||||
// separate the conversion process into distinct steps. There is no intent to have KiCad
|
// separate the conversion process into distinct steps. There is no intent to have KiCad
|
||||||
|
@ -783,23 +806,7 @@ struct EAGLE_LAYER
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
|
||||||
* Function MapChildren
|
|
||||||
* provides an easy access to the children of an XML node via their names.
|
|
||||||
* @param currentNode is a pointer to a wxXmlNode, whose children will be mapped.
|
|
||||||
* @return NODE_MAP - a map linking the name of each children to the children itself (via a
|
|
||||||
* wxXmlNode*)
|
|
||||||
*/
|
|
||||||
NODE_MAP MapChildren( wxXmlNode* currentNode );
|
|
||||||
|
|
||||||
/// Assemble a two part key as a simple concatenation of aFirst and aSecond parts,
|
|
||||||
/// using a separator.
|
|
||||||
string makeKey( const string& aFirst, const string& aSecond );
|
|
||||||
|
|
||||||
/// Make a unique time stamp
|
|
||||||
unsigned long timeStamp( wxXmlNode* aTree );
|
|
||||||
|
|
||||||
/// Convert an Eagle curve end to a KiCad center for S_ARC
|
|
||||||
wxPoint kicad_arc_center( const wxPoint& aStart, const wxPoint& aEnd, double aAngle );
|
|
||||||
|
|
||||||
#endif // _EAGLE_PARSER_H_
|
#endif // _EAGLE_PARSER_H_
|
||||||
|
|
Loading…
Reference in New Issue