//--------------------------------------------------------- CGeoref_Grid_Move::CGeoref_Grid_Move(void) { //----------------------------------------------------- Set_Name (_TL("Georeferencing - Move Grid")); Set_Author (SG_T("(c) 2008 by O.Conrad")); Set_Description (_TW( "" )); //----------------------------------------------------- Parameters.Add_Grid_Output( NULL , "GRID" , _TL("Grid"), _TL("") ); Parameters.Add_Grid( NULL , "SOURCE" , _TL("Source"), _TL(""), PARAMETER_INPUT ); //----------------------------------------------------- Set_Drag_Mode(MODULE_INTERACTIVE_DRAG_LINE); }
//--------------------------------------------------------- CGrid_Profile::CGrid_Profile(void) { Set_Name (_TL("Profile")); Set_Author (SG_T("(c) 2004 by O.Conrad")); Set_Description (_TW( "Create interactively profiles from a grid based DEM\n" "Use left mouse button clicks into a map window to add profile points." "A right mouse button click will finish the profile." )); Set_Drag_Mode (MODULE_INTERACTIVE_DRAG_LINE); Parameters.Add_Grid( NULL, "DEM" , _TL("DEM"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Grid_List( NULL, "VALUES" , _TL("Values"), _TL("Additional values that shall be saved to the output table."), PARAMETER_INPUT_OPTIONAL ); Parameters.Add_Shapes( NULL, "POINTS" , _TL("Profile Points"), _TL(""), PARAMETER_OUTPUT, SHAPE_TYPE_Point ); Parameters.Add_Shapes( NULL, "LINE" , _TL("Profile Line"), _TL(""), PARAMETER_OUTPUT, SHAPE_TYPE_Line ); }
//--------------------------------------------------------- bool CGrid_Flow_Profile::On_Execute(void) { m_pDEM = Parameters("DEM" )->asGrid(); m_pValues = Parameters("VALUES")->asGridList(); m_pPoints = Parameters("POINTS")->asShapes(); m_pLines = Parameters("LINE" )->asShapes(); //----------------------------------------------------- m_pPoints->Create(SHAPE_TYPE_Point, CSG_String::Format("%s [%s]", m_pDEM->Get_Name(), _TL("Profile"))); m_pPoints->Add_Field("ID" , SG_DATATYPE_Int); m_pPoints->Add_Field(_TL("Distance"), SG_DATATYPE_Double); m_pPoints->Add_Field(_TL("Overland"), SG_DATATYPE_Double); m_pPoints->Add_Field("X" , SG_DATATYPE_Double); m_pPoints->Add_Field("Y" , SG_DATATYPE_Double); m_pPoints->Add_Field("Z" , SG_DATATYPE_Double); for(int i=0; i<m_pValues->Get_Count(); i++) { m_pPoints->Add_Field(m_pValues->asGrid(i)->Get_Name(), SG_DATATYPE_Double); } //----------------------------------------------------- m_pLines->Create(SHAPE_TYPE_Line, CSG_String::Format("%s [%s]", m_pDEM->Get_Name(), _TL("Profile"))); m_pLines->Add_Field("ID" , SG_DATATYPE_Int); m_pLine = m_pLines->Add_Shape(); m_pLine->Set_Value(0, 1); //----------------------------------------------------- DataObject_Update(m_pDEM , SG_UI_DATAOBJECT_SHOW_NEW_MAP ); DataObject_Update(m_pLines, SG_UI_DATAOBJECT_SHOW_LAST_MAP); Set_Drag_Mode(TOOL_INTERACTIVE_DRAG_NONE); return( true ); }
//--------------------------------------------------------- CShapes_Cut_Interactive::CShapes_Cut_Interactive(void) { Set_Name (_TL("Cut Shapes Layer")); Set_Author (SG_T("(c) 2006 by O.Conrad")); Set_Description (_TW( "" )); Set_Drag_Mode (MODULE_INTERACTIVE_DRAG_BOX); //----------------------------------------------------- Parameters.Add_Shapes( NULL , "SHAPES" , _TL("Shapes"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Shapes( NULL , "CUT" , _TL("Cut"), _TL(""), PARAMETER_OUTPUT ); Parameters.Add_Shapes( NULL , "EXTENT" , _TL("Extent"), _TL(""), PARAMETER_OUTPUT_OPTIONAL, SHAPE_TYPE_Polygon ); Parameters.Add_Choice( NULL , "METHOD" , _TL("Method"), _TL(""), Cut_Methods_Str(), 0 ); //----------------------------------------------------- CSG_Parameters *pParameters = Add_Parameters("CUT", _TL("Extent"), _TL("")); pParameters->Add_Value( NULL, "AX" , _TL("Left") , _TL(""), PARAMETER_TYPE_Double ); pParameters->Add_Value( NULL, "BX" , _TL("Right") , _TL(""), PARAMETER_TYPE_Double ); pParameters->Add_Value( NULL, "AY" , _TL("Bottom") , _TL(""), PARAMETER_TYPE_Double ); pParameters->Add_Value( NULL, "BY" , _TL("Top") , _TL(""), PARAMETER_TYPE_Double ); pParameters->Add_Value( NULL, "DX" , _TL("Horizontal Range") , _TL(""), PARAMETER_TYPE_Double, 1.0, 0.0, true ); pParameters->Add_Value( NULL, "DY" , _TL("Vertical Range") , _TL(""), PARAMETER_TYPE_Double, 1.0, 0.0, true ); }