| Return Type | Function name | Arguments |
|---|---|---|
| void | hdsFlowchart::Generate | (hzChain&,hzHttpEvent*,unsigned int&,) |
Declared in file: hzDissemino.h
Defined in file : hdsGenerate.cpp
Function Logic:
Function body:
void hdsFlowchart::Generate (hzChain& Z, hzHttpEvent* pE, unsigned int& nLine)
{
_hzfunc("hdsFlowchart::Generate") ;
hdsText TX ;
hdsGraphic* pG ;
hdsConnector* pConn ;
hzString text ;
uint32_t n ;
threadLog("Shapes %d, Connects %d\n", m_nShapes, m_nConnects) ;
if (m_nBoundary)
Z.Printf("<svg id="%s" height="%d" width="%d" style="border:1px solid #000000; background:#%06x;">\n" , *m_Id, m_Height, m_Width, m_BgColor) ;
else
Z.Printf("<svg id="%s" height="%d" width="%d" style="background:#%06x;">\n" , *m_Id, m_Height, m_Width, m_BgColor) ;
for (n = 0; n < m_nShapes ; n++)
{
pG = m_pShapes + n ;
if (!pG)
break ;
Z.AddByte(CHAR_TAB) ;
switch (pG->m_eShape)
{
case HDSGRAPH_HEXAGON: Z.Printf("<polygon points="%u,%u %u,%u %u,%u %u,%u, %u,%u, %u,%u" style="fill:#%06x;stroke:#%06x;stroke-width:%u"/>\n" ,
pG->m_Lft, pG->m_Top + (pG->m_Height/2),
pG->m_Lft + (pG->m_Height/2),pG->m_Top,
pG->m_Rht - (pG->m_Height/2),pG->m_Top,
pG->m_Rht, pG->m_Top + (pG->m_Height/2),
pG->m_Rht - (pG->m_Height/2),pG->m_Bot,
pG->m_Lft + (pG->m_Height/2),pG->m_Bot,
m_ColorTest, m_ColorLine, m_nWidthConn) ;
break ;
case HDSGRAPH_RECT: Z.Printf("<rect x="%u" y="%u" width="%u" height="%u" style="fill:#%06x;stroke:#%06x;stroke-width:%u;"/>\n" ,
pG->m_Lft, pG->m_Top, pG->m_Width, pG->m_Height, m_ColorProc, m_ColorLine, m_nWidthConn) ;
break ;
case HDSGRAPH_STADIUM: Z.Printf("<rect x="%u" y="%u" rx="%u" ry="%u" width="%u" height="%u" style="fill:#%06x;stroke:#%06x;stroke-width:%u;"/>\n" ,
pG->m_Lft, pG->m_Top, pG->m_Height/2,pG->m_Height/2,pG->m_Width, pG->m_Height, m_ColorTerm, m_ColorLine, m_nWidthConn) ;
break ;
}
if (pG->m_Text)
{
if (pG->m_nLines == 1)
Z.Printf("\t<text x="%u" y="%u" fill="#%06x">%d:%s</text>\n" , pG->lftMidptX(), pG->lftMidptY(), pG->m_ColorLine, n, *pG->m_Text) ;
else
_hds_svg_drawMLText(Z, pG->m_Text, pG->m_Lft, pG->m_Top+20,pG->m_ColorLine,n) ;
}
else
{
Z.Printf("\t<text x="%u" y="%u" fill="#%06x">%d: No text</text>\n" , pG->lftMidptX(), pG->lftMidptY(), pG->m_ColorLine, n) ;
}
}
for (n = 0; n < m_nConnects ; n++)
{
pConn = m_pConn + n ;
_drawFlowConn(Z, this, pConn) ;
}
Z << "</svg>\n" ;
}