|
SAGA API
v9.6
|
Go to the documentation of this file.
63 #define GET_XML_CONTENT(XML, ID, DEFAULT, TRANSLATE) (!XML(ID) ? CSG_String(DEFAULT) : !TRANSLATE ? XML[ID].Get_Content() : CSG_String(SG_Translate(XML[ID].Get_Content())))
65 #define IS_TRUE_STRING(String) (!String.CmpNoCase("true") || !String.CmpNoCase("1"))
66 #define IS_TRUE_PROPERTY(Item, Property) (Item.Cmp_Property(Property, "true", true) || Item.Cmp_Property(Property, "1"))
68 #define Get_List_Count(p) (p->asGridList() ? p->asGridList()->Get_Grid_Count() : p->asList() ? p->asList()->Get_Item_Count() : 0)
69 #define Get_List_Item(p, i) (p->asGridList() ? p->asGridList()->Get_Grid (i) : p->asList() ? p->asList()->Get_Item (i) : NULL)
87 Create(Tool, bWithGUI, bWithCMD);
109 void CSG_Tool_Chain::Reset(
void)
124 m_Library_Menu = Menu;
135 if( !
Create(Tool.m_Chain) )
141 m_Library = Tool.m_Library;
142 m_Library_Menu = Tool.m_Library_Menu;
143 m_File_Name = Tool.m_File_Name;
144 m_bGUI = bWithGUI && m_bGUI;
145 m_bCMD = bWithCMD && m_bCMD;
165 if( !Chain.
Load(File) )
177 if( !Chain.
Cmp_Name(
"toolchain") || !Chain(
"identifier") || !Chain(
"parameters") )
196 m_File_Name.Clear(); Reset();
206 if( !Chain.
Cmp_Name(
"toolchain") || !Chain(
"identifier") || !Chain(
"parameters") || !Chain(
"tools") )
227 if( m_Library.is_Empty() )
229 m_Library =
"toolchains";
235 Description.
Replace(
"[[",
"<");
236 Description.
Replace(
"]]",
">");
239 if( !m_Menu.
is_Empty() && (m_Menu.
Length() < 2 || m_Menu[1] !=
':') )
252 const CSG_MetaData &Parameter = m_Chain[
"parameters"][i];
274 bool bMin =
false, bMax =
false;
275 double Min = 0. , Max = 0.;
281 else if( Parameter.
Cmp_Name(
"output") )
285 else if( Parameter.
Cmp_Name(
"option") && Parameter(
"value") )
294 if( Parameter(
"condition") )
300 if( Parameter[j].Cmp_Name(
"condition") )
396 return( !m_Chain(
"CRS_SYNC") ||
IS_TRUE_STRING(m_Chain[
"CRS_SYNC"].Get_Content()) );
400 void CSG_Tool_Chain::Add_References(
void)
404 if( !m_Chain[i].
Get_Name().CmpNoCase(
"REFERENCE") )
406 CSG_String Authors, Year, Title, Where, Link, Link_Text, DOI;
408 if( m_Chain[i](
"AUTHORS" ) ) Authors = m_Chain[i].
Get_Content(
"AUTHORS" );
409 if( m_Chain[i](
"YEAR" ) ) Year = m_Chain[i].
Get_Content(
"YEAR" );
410 if( m_Chain[i](
"TITLE" ) ) Title = m_Chain[i].
Get_Content(
"TITLE" );
411 if( m_Chain[i](
"WHERE" ) ) Where = m_Chain[i].
Get_Content(
"WHERE" );
412 if( m_Chain[i](
"LINK" ) ) Link = m_Chain[i].
Get_Content(
"LINK" );
413 if( m_Chain[i](
"LINK_TEXT") ) Link_Text = m_Chain[i].
Get_Content(
"LINK_TEXT");
414 if( m_Chain[i](
"DOI" ) ) DOI = m_Chain[i].
Get_Content(
"DOI" );
418 Link =
"https://doi.org/" + DOI; Link_Text =
"doi:" + DOI;
443 const CSG_MetaData &Conditions = m_Conditions[iParameter];
445 if( (*pParameters)(Conditions.
Get_Name()) )
449 for(
int iCondition=0; bEnable && iCondition<Conditions.
Get_Children_Count(); iCondition++)
451 bEnable = Check_Condition(Conditions[iCondition], pParameters);
454 (*pParameters)(Conditions.
Get_Name())->Set_Enabled(bEnable);
469 bool bResult = Data_Initialize();
478 bResult = Tool_Run(m_Chain[
"tools"][i]);
505 Error_Fmt(
"%s\n[%s] %s <> %s",
_TL(
"Tool chain uses same variable name for different data object types."),
599 bool CSG_Tool_Chain::Data_Del_Temp(
const CSG_String &ID,
bool bData)
627 bool CSG_Tool_Chain::Data_Update(
const CSG_String &ID,
bool bShow)
649 if( m_Data(i)->is_DataObject() )
651 if( pData == m_Data(i)->asDataObject() )
656 else if( m_Data(i)->is_DataObject_List() )
672 bool CSG_Tool_Chain::Data_Initialize(
void)
693 bool CSG_Tool_Chain::Data_Finalize(
void)
737 const CSG_MetaData &Parameter = m_Chain[
"parameters"][i];
745 if( Parameter(
"colours") )
748 Parameter[
"colours"].Get_Content().asInt(),
IS_TRUE_PROPERTY(Parameter[
"colours"],
"revert")
752 if( Parameter(
"output_name") )
762 if( Parameter[
"output_name"].Get_Property(
"suffix", Suffix) && !Suffix.
is_Empty() )
764 Suffix =
" [" + Suffix +
"]";
770 else if( !Parameter[
"output_name"].Get_Content().is_Empty() )
817 bool CSG_Tool_Chain::Message(
const CSG_MetaData &Message)
871 return( (*pData)(Variable) == NULL || (*pData)(Variable)->asDataObject() == NULL );
877 if( pOption == NULL )
907 if( !Type.
CmpNoCase(
"=") || !Type.
CmpNoCase(
"equal" ) ) {
if( Value != pOption->
asInt() ) {
return(
false ); } }
908 else if( !Type.
CmpNoCase(
"!") || !Type.
CmpNoCase(
"not_equal") ) {
if( Value == pOption->
asInt() ) {
return(
false ); } }
909 else if( !Type.
CmpNoCase(
"<") || !Type.
CmpNoCase(
"less" ) ) {
if( Value >= pOption->
asInt() ) {
return(
false ); } }
910 else if( !Type.
CmpNoCase(
">") || !Type.
CmpNoCase(
"greater" ) ) {
if( Value <= pOption->asInt() ) {
return(
false ); } }
926 else if( !Type.
CmpNoCase(
">") || !Type.
CmpNoCase(
"greater" ) ) {
if( Value <= pOption->asDouble() ) {
return(
false ); } }
979 bool CSG_Tool_Chain::ForEach(
const CSG_MetaData &Commands)
983 if( Commands[i].Cmp_Name(
"output") || Commands[i].Cmp_Name(
"datalist") )
985 Data_Add_TempList(Commands[i].Get_Content(), Commands[i].Get_Property(
"type"));
996 return( ForEach_Iterator(Commands, VarName, bIgnoreErrors) );
1001 return( ForEach_Object (Commands, VarName, bIgnoreErrors)
1002 || ForEach_File (Commands, VarName, bIgnoreErrors) );
1005 Error_Set(
"foreach statement misses iterator or input list definition");
1011 bool CSG_Tool_Chain::ForEach_Iterator(
const CSG_MetaData &Commands,
const CSG_String &VarName,
bool bIgnoreErrors)
1017 Error_Set(
"foreach statement iterator variable name is already in use");
1030 Error_Set(
"foreach iterator statement with invalid range (define begin < end)");
1043 step = (end - begin) / steps;
1053 Error_Set(
"foreach iterator statement with invalid step size (define step > 0 or steps > 0)");
1058 Message_Fmt(
"\nfor i = %f to %f step %f (%d steps)", begin, end, step, (
int)((end - begin) / step));
1061 bool bResult =
true;
1065 for(
double i=begin; bResult && i<=end; i+=step)
1077 bResult = Tool_Run(Tool, bIgnoreErrors);
1079 if( !bResult && bIgnoreErrors )
1093 bool CSG_Tool_Chain::ForEach_Object(
const CSG_MetaData &Commands,
const CSG_String &ListVarName,
bool bIgnoreErrors)
1103 bool bResult =
true;
1117 if( Tool[j].Cmp_Name(
"input") && Tool[j].
Get_Content().
Find(ListVarName) == 0 )
1124 bResult = Tool_Run(Tool, bIgnoreErrors);
1127 if( !bResult && bIgnoreErrors )
1137 for(
int iObject=0; bResult && iObject<pList->
asGrids()->Get_Grid_Count(); iObject++)
1147 if( Tool[j].Cmp_Name(
"input") && Tool[j].Get_Content().Find(ListVarName) == 0 )
1154 bResult = Tool_Run(Tool, bIgnoreErrors);
1157 if( !bResult && bIgnoreErrors )
1168 bool CSG_Tool_Chain::ForEach_File(
const CSG_MetaData &Commands,
const CSG_String &ListVarName,
bool bIgnoreErrors)
1182 bool bResult =
true;
1184 for(
int iFile=0; bResult && iFile<Files.
Get_Count(); iFile++)
1196 if( Tool[j].Cmp_Name(
"option") && Tool[j].Get_Content().Find(ListVarName) == 0 &&
IS_TRUE_PROPERTY(Tool[j],
"varname") )
1205 bResult = Tool_Run(Tool, bIgnoreErrors);
1207 for(
size_t i=0; i<Input.
Get_uSize(); i++)
1215 bResult = Tool_Run(Tool, bIgnoreErrors);
1218 if( !bResult && bIgnoreErrors )
1234 bool CSG_Tool_Chain::Tool_Run(
const CSG_MetaData &Tool,
bool bShowError)
1269 ? Tool(
"else") : (Tool(
"if") ? Tool(
"if") : &Tool);
1273 if( !Tool_Run((*pTools)[i]) )
1285 return( ForEach(Tool) );
1296 if( bShowError )
Error_Set(
_TL(
"invalid tool definition"));
1320 bool bResult =
false;
1326 else if( !Tool_Initialize(Tool, pTool) )
1330 else if( !(bResult = pTool->
Execute(m_bAddHistory)) )
1340 Tool_Finalize(Tool, pTool);
1355 bool CSG_Tool_Chain::Tool_Check_Condition(
const CSG_MetaData &Tool)
1357 if( Tool(
"condition") )
1361 if( !Check_Condition(Tool[i], &m_Data) )
1386 *ppParameter = pParameter;
1391 *ppOwner = pParameter;
1399 *ppOwner = pParameter;
1404 *ppOwner = pParameter;
1408 *ppParameter = pParameter;
1431 CSG_Parameter *pOwner;
if( !ppOwner ) { ppOwner = &pOwner; } *ppOwner = NULL;
1444 return( Tool_Get_Parameter(ID, pParameters, ppParameter, ppOwner) );
1455 if( Parameter.
Cmp_Name(
"message") )
1464 if( !Tool_Get_Parameter(Parameter, pTool, &pParameter, &pOwner) )
1481 Message_Fmt(
"\n%s: %s\n",
_TL(
"Warning"),
_TL(
"failed to set tool's grid system"));
1491 CSG_Parameter *pParameter, *pOwner; Tool_Get_Parameter(Parameter, pTool, &pParameter, &pOwner);
1518 CSG_Parameter *pParameter, *pOwner; Tool_Get_Parameter(Parameter, pTool, &pParameter, &pOwner);
1527 bool bResult =
false;
1541 bResult = pParameter->
Set_Value(pObject);
1554 for(
int i=0; bResult && i<pData->
asList()->Get_Item_Count(); i++)
1561 bResult = pParameter->
Assign(pData);
1568 else if( Parameter_isCompatible(pParameter->
Get_Type(), pData->
Get_Type()) )
1591 CSG_Parameter *pParameter, *pOwner; Tool_Get_Parameter(Parameter, pTool, &pParameter, &pOwner);
1614 if( Parameter(
"OPTION") )
1616 pParameter->
Serialize(*Parameter(
"OPTION"),
false);
1623 if( Value.
Find(
"$(") >= 0 )
1629 if( Value.
Find(Var) >= 0 )
1653 CSG_Parameter *pParameter, *pOwner; Tool_Get_Parameter(Parameter, pTool, &pParameter, &pOwner);
1665 else if( pParameter->
asGrids() )
1692 if( !pParameter || !Data_Add(Parameter.
Get_Content(), pParameter) )
1704 for(
int j=0; j<pParameters->
Get_Count(); j++)
1751 _Get_Script_Tool(Tool, pTool->
Get_Parameters(), bAllParameters,
"", bHeader);
1760 return( Tool.
asText(1) );
1779 Tools.
Add_Child(
"identifier" ,
"define-a-unique-tool-identifier-here");
1789 return( Tools.
asText(1) );
1795 for(
int iParameter=0; iParameter<pParameters->
Get_Count(); iParameter++)
1883 for(
int i=0; i<pParameters->
Get_Count(); i++)
2017 m_Name =
_TL(
"Uncategorized Tool Chains");
2018 m_Description =
_TL(
"Uncategorized Tool Chains");
2019 m_Menu =
_TL(
"Uncategorized Tool Chains");
2027 if( !XML.Cmp_Name(
"toolchains") )
2036 m_Description.
Replace(
"[[",
"<");
2037 m_Description.
Replace(
"]]",
">");
2040 for(
int i=0; i<XML.Get_Children_Count(); i++)
2042 if( !XML[i].
Get_Name().CmpNoCase(
"REFERENCE") )
2044 CSG_String Authors, Year, Title, Where, Link, Link_Text, DOI;
2046 if( XML[i](
"AUTHORS" ) ) Authors = XML[i].Get_Content(
"AUTHORS" );
2047 if( XML[i](
"YEAR" ) ) Year = XML[i].Get_Content(
"YEAR" );
2048 if( XML[i](
"TITLE" ) ) Title = XML[i].Get_Content(
"TITLE" );
2049 if( XML[i](
"WHERE" ) ) Where = XML[i].Get_Content(
"WHERE" );
2050 if( XML[i](
"LINK" ) ) Link = XML[i].Get_Content(
"LINK" );
2051 if( XML[i](
"LINK_TEXT") ) Link_Text = XML[i].Get_Content(
"LINK_TEXT");
2052 if( XML[i](
"DOI" ) ) DOI = XML[i].Get_Content(
"DOI" );
2056 Link =
"https://doi.org/" + DOI; Link_Text =
"doi:" + DOI;
2077 for(
size_t i=0; i<m_Tools.
Get_uSize(); i++)
2143 if( m_xTools.
Del(pTool) || m_Tools.
Del(pTool) )
2156 for(
size_t i=0; i<m_xTools.
Get_uSize(); i++)
2181 const CSG_MetaData &Tool(History(
"TOOL") ? History[
"TOOL"] : History[
"MODULE"]);
2183 if( !Tool(
"OUTPUT") )
2194 Chain.
Add_Child (
"group" ,
"toolchains");
2197 Chain.
Add_Child (
"description",
_TL(
"created from history"));
2202 _Save_History_Add_Tool(Tool, *Chain(
"parameters"), *Chain(
"tools"),
true);
2206 Chain[
"tools"](i)->Del_Property(
"id");
2209 return( Chain.
Save(File) );
2215 if( !History(
"OUTPUT") || !History[
"OUTPUT"].Get_Property(
"id") )
2235 pParameter = Tool.
Add_Child(
"output", VarName);
2298 _Save_History_Add_Input(*pChild, Parms, Tool);
2304 _Save_History_Add_Input(*pChild->
Get_Child(j), Parms, Tool);
2320 if( History(
"TOOL") || History(
"MODULE") )
2322 const CSG_MetaData &History_Tool(History(
"TOOL") ? History[
"TOOL"] : History[
"MODULE"]);
2324 if( History_Tool(
"OUTPUT") && History_Tool[
"OUTPUT"].Get_Property(
"id") )
2328 return( _Save_History_Add_Tool(History_Tool, Parms, *Tool.
Get_Parent()) );
CSG_String BeforeFirst(char Character) const
virtual bool Set_Value(int Value)
const SG_Char * Get_Filter(void) const
CSG_Parameter * Get_Parameter(int i) const
@ PARAMETER_TYPE_FilePath
bool Get_FilePaths(CSG_Strings &FilePaths) const
void Del_References(void)
CSG_Parameter * Add_Date(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, double Value=0.0)
int Printf(const char *Format,...)
CSG_Parameter * Add_Grid_System(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, CSG_Grid_System *pInit=NULL)
CSG_Parameter * Add_Degree(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, double Value=0.0, double Minimum=0.0, bool bMinimum=false, double Maximum=0.0, bool bMaximum=false)
CSG_String & Make_Lower(void)
virtual bool Add_Item(CSG_Data_Object *pItem)
@ PARAMETER_TYPE_Table_Fields
size_t Length(void) const
const SG_Char * Get_Identifier(void) const
const SG_Char * asString(void) const
CSG_Table * asTable(void) const
double Get_Maximum(void) const
bool Del_Parameters(void)
bool has_Minimum(void) const
@ SG_UI_MSG_STYLE_SUCCESS
@ PARAMETER_TYPE_Grids_List
SAGA_API_DLL_EXPORT bool SG_File_Cmp_Extension(const CSG_String &FileName, const CSG_String &Extension)
CSG_Data_Object * Get_Item(int Index) const
CSG_Parameter * Add_Node(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description)
bool is_Input(void) const
CSG_Parameter * Add_Grids_List(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint, bool bSystem_Dependent=true)
SAGA_API_DLL_EXPORT const SG_Char * SG_Translate(const CSG_String &Text)
CSG_Parameter * Add_String(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, const CSG_String &String, bool bLongText=false, bool bPassword=false)
const SG_Char * Get_Name(void) const
const SG_Char * Get_Description(void) const
CSG_Parameter * Add_Double(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, double Value=0.0, double Minimum=0.0, bool bMinimum=false, double Maximum=0.0, bool bMaximum=false)
bool Create(const CSG_Grid_System &System, int Precision=-1)
@ SG_DATAOBJECT_TYPE_Grids
@ PARAMETER_TYPE_FixedTable
CSG_Data_Object * asDataObject(void) const
bool Assign(CSG_Parameter *pSource)
bool is_Directory(void) const
@ PARAMETER_TYPE_PointCloud
CSG_String & Prepend(const CSG_String &String)
class CSG_Parameter_Value * asValue(void) const
size_t Replace(const CSG_String &sOld, const CSG_String &sNew, bool bReplaceAll=true)
const CSG_Grid_System & Get_System(void) const
int Cmp(const CSG_String &String) const
bool is_Multiple(void) const
CSG_Parameter * Add_PointCloud(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint)
#define PARAMETER_INPUT_OPTIONAL
@ PARAMETER_TYPE_Shapes_List
virtual TSG_Parameter_Type Get_Type(void) const =0
bool Serialize(CSG_MetaData &MetaData, bool bSave)
CSG_Parameter * Add_Range(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, double Range_Min=0.0, double Range_Max=0.0, double Minimum=0.0, bool bMinimum=false, double Maximum=0.0, bool bMaximum=false)
@ SG_UI_MSG_STYLE_FAILURE
@ SG_UI_DATAOBJECT_UPDATE
SAGA_API_DLL_EXPORT CSG_String SG_File_Get_Name(const CSG_String &full_Path, bool bExtension)
bool is_DataObject_List(void) const
@ PARAMETER_TYPE_Data_Type
virtual bool Del_Items(void)
CSG_Parameter * Add_TIN_List(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint)
CSG_Parameter * Add_FixedTable(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, CSG_Table *pInit=NULL)
int Get_Count(void) const
#define DATAOBJECT_CREATE
@ PARAMETER_TYPE_Table_Field
size_t Get_uSize(void) const
CSG_Parameter * Add_FilePath(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, const SG_Char *Filter=NULL, const SG_Char *Default=NULL, bool bSave=false, bool bDirectory=false, bool bMultiple=false)
bool is_Enabled(bool bCheckEnv=true) const
CSG_String SG_Parameter_Type_Get_Identifier(TSG_Parameter_Type Type)
CSG_Parameter * Add_Shapes_List(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint, TSG_Shape_Type=SHAPE_TYPE_Undefined)
class CSG_Parameters * asParameters(void) const
CSG_Parameter * Add_Grid_List(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint, bool bSystem_Dependent=true)
bool SG_UI_DataObject_Add(CSG_Data_Object *pDataObject, int Show)
CSG_Parameter * Add_Color(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Value=0)
TSG_Parameter_Type SG_Parameter_Type_Get_Type(const CSG_String &Identifier)
CSG_Grid * Get_Grid_Ptr(int i) const
CSG_Parameter * Add_Int(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Value=0, int Minimum=0, bool bMinimum=false, int Maximum=0, bool bMaximum=false)
CSG_Parameter * Add_Colors(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Palette=0, int nColors=11, bool bRevert=false)
CSG_Parameter * Add_Table_List(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint)
bool Assign_Values(const CSG_Table &Table)
CSG_Parameter * Add_Table(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint)
@ PARAMETER_TYPE_Grid_List
bool Delete(CSG_Data_Object *pObject, bool bDetach=false)
CSG_Parameter * Add_Grids(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint, bool bSystem_Dependent=true, TSG_Data_Type Preferred_Type=SG_DATATYPE_Undefined)
bool is_Optional(void) const
CSG_Parameter * Add_Table_Fields(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description)
CSG_Parameter * Add_Grid(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint, bool bSystem_Dependent=true, TSG_Data_Type Preferred_Type=SG_DATATYPE_Undefined)
@ SG_DATAOBJECT_TYPE_Grid
class CSG_Parameter_File_Name * asFilePath(void) const
bool Del_Parameter(int i)
CSG_Data_Object * Add(CSG_Data_Object *pObject)
void Set_Name(const CSG_String &Name)
bool is_Output(void) const
CSG_Parameter * Add_TIN(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint)
static CSG_String Format(const char *Format,...)
CSG_Parameter * Add_Grids_Output(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description)
int Get_Item_Count(void) const
int Find(char Character, bool fromEnd=false) const
const CSG_String & Get_Identifier(void) const
virtual TSG_Parameter_Type Get_Type(void) const
CSG_Parameter * Add_Shapes(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint, TSG_Shape_Type Shape_Type=SHAPE_TYPE_Undefined)
bool has_Maximum(void) const
@ SG_DATAOBJECT_TYPE_Shapes
int CmpNoCase(const CSG_String &String) const
CSG_String AfterFirst(char Character) const
int Get_Children_Count(void) const
CSG_Parameter * Get_Parent(void) const
bool is_DataObject(void) const
@ SG_UI_DATAOBJECT_SHOW_MAP
class CSG_Grid * asGrid(bool bPolymorph=false) const
class CSG_Parameter_Choice * asChoice(void) const
@ SG_DATAOBJECT_TYPE_Table
virtual TSG_Parameter_Type Get_Type(void) const
bool is_Empty(void) const
bool has_Changed(int Check_Flags=PARAMETER_CHECK_ALL)
double asDouble(void) const
CSG_Parameter * Add_Grid_Output(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description)
@ PARAMETER_TYPE_Grid_System
@ PARAMETER_TYPE_PointCloud_List
virtual TSG_Parameter_Type Get_Type(void) const
@ PARAMETER_TYPE_Table_List
double Get_Minimum(void) const
class CSG_Parameter_Range * asRange(void) const
CSG_Parameter * Add_PointCloud_List(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint)
int SG_Compare_Version(const CSG_String &Version, int Major, int Minor, int Release)
void Set_Manager(class CSG_Data_Manager *pManager)
@ PARAMETER_TYPE_DataObject_Output
double asDouble(void) const
CSG_Parameter_Double * Get_Min_Parameter(void) const
SAGA_API_DLL_EXPORT CSG_String SG_File_Make_Path(const CSG_String &Directory, const CSG_String &Name)
const SG_Char * c_str(void) const
CSG_Parameter * Add_Choices(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, const CSG_String &Items)
int Get_Count(void) const
TSG_Data_Object_Type Get_DataObject_Type(void) const
size_t Get_uSize(void) const
CSG_Grids * asGrids(void) const
CSG_Grid_System * asGrid_System(void) const
const SG_Char * Get_Name(void) const
CSG_Parameter_Double * Get_Max_Parameter(void) const
bool is_Option(void) const
CSG_String Get_Items(void) const
@ PARAMETER_TYPE_TIN_List
@ PARAMETER_TYPE_Parameters
class CSG_Parameter_List * asList(void) const
CSG_String Get_Items(void) const
CSG_String Right(size_t count) const
@ SG_DATAOBJECT_TYPE_PointCloud
virtual bool is_Valid(void) const =0
class CSG_Parameter_Choices * asChoices(void) const
bool is_Information(void) const
CSG_Parameter * Add_Bool(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, bool Value=false)
bool is_Valid(void) const
CSG_String Get_Type_Identifier(void) const
bool Del_Grids(bool bDetach=false)
#define PARAMETER_OUTPUT_OPTIONAL
void SG_UI_Msg_Add(const char *Message, bool bNewLine, TSG_UI_MSG_STYLE Style)
CSG_Parameter * Add_Table_Field(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, bool bAllowNone=false)
CSG_Parameter * Add_Choice(const CSG_String &ParentID, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, const CSG_String &Items, int Default=0)