//--------------------------------------------------------- void CWKSP_Shapes_Points::_Draw_Shape(CWKSP_Map_DC &dc_Map, CSG_Shape *pShape, bool bSelection) { if( (m_iSize >= 0 && pShape->is_NoData(m_iSize)) || (m_iColor >= 0 && pShape->is_NoData(m_iColor)) ) return; //----------------------------------------------------- int Size; if( CWKSP_Shapes_Point::_Draw_Initialize(dc_Map, Size, pShape, bSelection) ) { for(int iPart=0; iPart<pShape->Get_Part_Count(); iPart++) { for(int iPoint=0; iPoint<pShape->Get_Point_Count(iPart); iPoint++) { TSG_Point_Int p = dc_Map.World2DC(pShape->Get_Point(iPoint, iPart)); Draw_Symbol(dc_Map.dc, p.x, p.y, Size); } } //------------------------------------------------- if( bSelection ) { CWKSP_Shapes_Point::_Draw_Initialize(dc_Map); } } }
//--------------------------------------------------------- void CWKSP_TIN::_Draw_Triangles(CWKSP_Map_DC &dc_Map) { if( m_Parameters("DISPLAY_TRIANGES")->asBool() && dc_Map.IMG_Draw_Begin(m_Parameters("DISPLAY_TRANSPARENCY")->asDouble() / 100.0) ) { for(int iTriangle=0; iTriangle<asTIN()->Get_Triangle_Count(); iTriangle++) { CSG_TIN_Triangle *pTriangle = asTIN()->Get_Triangle(iTriangle); if( dc_Map.m_rWorld.Intersects(pTriangle->Get_Extent()) != INTERSECTION_None ) { TPoint p[3]; for(int iNode=0; iNode<3; iNode++) { CSG_TIN_Node *pNode = pTriangle->Get_Node(iNode); TSG_Point_Int Point = dc_Map.World2DC(pNode->Get_Point()); p[iNode].x = Point.x; p[iNode].y = Point.y; p[iNode].z = pNode->asDouble(m_fValue); } _Draw_Triangle(dc_Map, p); } } dc_Map.IMG_Draw_End(); } }
//--------------------------------------------------------- void CWKSP_Shapes_Point::Draw_Label(CWKSP_Map_DC &dc_Map, CSG_Shape *pShape, const wxString &Label) { TSG_Point_Int p(dc_Map.World2DC(pShape->Get_Point(0))); double Angle = m_iLabel_Angle < 0 ? m_Label_Angle : pShape->asDouble(m_iLabel_Angle); Draw_Text(dc_Map.dc, m_Label_Align, p.x, p.y, Angle, Label, m_Label_Eff, m_Label_Eff_Color); }
//--------------------------------------------------------- void CWKSP_TIN::_Draw_Points(CWKSP_Map_DC &dc_Map) { for(int i=0; i<asTIN()->Get_Node_Count(); i++) { TSG_Point_Int Point = dc_Map.World2DC(asTIN()->Get_Node(i)->Get_Point()); dc_Map.dc.DrawCircle(Point.x, Point.y, 5); } }
//--------------------------------------------------------- void CWKSP_TIN::_Draw_Edges(CWKSP_Map_DC &dc_Map) { for(int i=0; i<asTIN()->Get_Edge_Count(); i++) { TSG_Point_Int Point[2]; CSG_TIN_Edge *pEdge = asTIN()->Get_Edge(i); Point[0] = dc_Map.World2DC(pEdge->Get_Node(0)->Get_Point()); Point[1] = dc_Map.World2DC(pEdge->Get_Node(1)->Get_Point()); dc_Map.dc.DrawLine(Point[0].x, Point[0].y, Point[1].x, Point[1].y); } }
//--------------------------------------------------------- void CWKSP_Shapes::Edit_Shape_Draw(CWKSP_Map_DC &dc_Map) { int iPart, iPoint; if( m_Edit_pShape ) { for(iPart=0; iPart<m_Edit_pShape->Get_Part_Count(); iPart++) { for(iPoint=0; iPoint<m_Edit_pShape->Get_Point_Count(iPart); iPoint++) { _Edit_Shape_Draw_Point(dc_Map.dc, dc_Map.World2DC(m_Edit_pShape->Get_Point(iPoint, iPart)), false); } } if( m_Edit_iPart >= 0 && m_Edit_iPoint >= 0 ) { _Edit_Shape_Draw_Point(dc_Map.dc, dc_Map.World2DC(m_Edit_pShape->Get_Point(m_Edit_iPoint, m_Edit_iPart)), true); } if( m_Parameters("EDIT_SNAP_LIST")->asShapesList()->Get_Count() > 0 ) { iPoint = m_Parameters("EDIT_SNAP_DIST")->asInt(); dc_Map.dc.SetBrush(wxNullBrush); dc_Map.dc.SetPen (*wxWHITE); dc_Map.dc.DrawCircle(1 + iPoint, 1 + iPoint, iPoint - 1); dc_Map.dc.DrawCircle(1 + iPoint, 1 + iPoint, iPoint + 1); dc_Map.dc.SetPen (*wxBLACK); dc_Map.dc.DrawCircle(1 + iPoint, 1 + iPoint, iPoint); dc_Map.dc.SetBrush(*wxBLACK); dc_Map.dc.SetPen (*wxBLACK); dc_Map.dc.DrawCircle(1 + iPoint, 1 + iPoint, 1); } } }
//--------------------------------------------------------- void CWKSP_Shapes_Point::Draw_Shape(CWKSP_Map_DC &dc_Map, CSG_Shape *pShape, int Selection) { if( m_iSize >= 0 && pShape->is_NoData(m_iSize) ) { return; } //----------------------------------------------------- int Size; if( Draw_Initialize(dc_Map, Size, pShape, Selection) ) { TSG_Point_Int p(dc_Map.World2DC(pShape->Get_Point(0))); Draw_Symbol(dc_Map.dc, p.x, p.y, Size); //------------------------------------------------- if( Selection ) { Draw_Initialize(dc_Map); } } }
//--------------------------------------------------------- void CWKSP_Shapes_Points::_Draw_Label(CWKSP_Map_DC &dc_Map, CSG_Shape *pShape) { TSG_Point_Int p(dc_Map.World2DC(pShape->Get_Extent().Get_Center())); dc_Map.dc.DrawText(pShape->asString(m_iLabel, -2), p.x, p.y); }