 |
SAGA API
v9.2
|
Go to the documentation of this file.
65 m_pParameters = pParameters;
67 m_Identifier = Identifier;
69 m_Description = Description;
70 m_Constraint = Constraint;
80 m_pParent->_Add_Child(
this);
101 return( m_pParameters );
113 return( m_pParameters ? m_pParameters->
Get_Manager() : NULL );
197 if( m_bEnabled != bEnabled )
199 m_bEnabled = bEnabled;
223 return( m_bEnabled && (m_pParent == NULL || m_pParent->
is_Enabled()) );
548 return( m_Identifier );
554 return( !m_Identifier.
Cmp(Identifier) || !m_Identifier.
Cmp(Identifier +
".Default") );
573 m_Description = Description;
580 return( m_Description );
592 #define SEPARATE if( !s.is_Empty() ) { s.Append(Separator); }
594 if( !Separator || !Separator[0] )
836 return( m_pParameters && m_pParameters->_On_Parameter_Changed(
this, Check_Flags) );
853 m_Default.
Printf(
"%d", Value);
861 m_Default.
Printf(
"%f", Value);
933 for(
int j=
asList()->Get_Item_Count()-1; j>=0; j--)
1063 m_Children[m_nChildren++] = pChild;
1076 m_bEnabled = pSource->m_bEnabled;
1077 m_Default = pSource->m_Default;
1147 m_pParameters = NULL;
1158 if( pParameters == NULL )
1163 m_pParameters = pParameters;
1167 CSG_String TargetID(m_Prefix +
"DEFINITION");
1170 ParentID, TargetID,
_TL(
"Target Grid System"),
1173 _TL(
"user defined"),
1174 _TL(
"grid or grid system")
1179 m_pParameters->
Add_Double(TargetID, m_Prefix +
"USER_SIZE",
_TL(
"Cellsize"),
_TL(
""), 1., 0.,
true);
1180 m_pParameters->
Add_Double(TargetID, m_Prefix +
"USER_XMIN",
_TL(
"West" ),
_TL(
""), 0.);
1181 m_pParameters->
Add_Double(TargetID, m_Prefix +
"USER_XMAX",
_TL(
"East" ),
_TL(
""), 100.);
1182 m_pParameters->
Add_Double(TargetID, m_Prefix +
"USER_YMIN",
_TL(
"South" ),
_TL(
""), 0.);
1183 m_pParameters->
Add_Double(TargetID, m_Prefix +
"USER_YMAX",
_TL(
"North" ),
_TL(
""), 100.);
1184 m_pParameters->
Add_Int (TargetID, m_Prefix +
"USER_COLS",
_TL(
"Columns" ),
_TL(
"Number of cells in East-West direction." ), 101, 1,
true);
1185 m_pParameters->
Add_Int (TargetID, m_Prefix +
"USER_ROWS",
_TL(
"Rows" ),
_TL(
"Number of cells in North-South direction."), 101, 1,
true);
1186 m_pParameters->
Add_Choice(TargetID, m_Prefix +
"USER_FITS",
_TL(
"Fit" ),
_TL(
""),
1196 m_pParameters->
Add_Grid(m_Prefix +
"SYSTEM", m_Prefix +
"TEMPLATE",
_TL(
"Target System"),
1201 if( bAddDefaultGrid )
1203 Add_Grid(m_Prefix +
"OUT_GRID",
_TL(
"Target Grid"),
false);
1225 if( !pParameter || !pParameters )
1230 CSG_Parameter *pSize = (*pParameters)(Prefix +
"USER_SIZE");
1231 CSG_Parameter *pXMin = (*pParameters)(Prefix +
"USER_XMIN");
1232 CSG_Parameter *pXMax = (*pParameters)(Prefix +
"USER_XMAX");
1233 CSG_Parameter *pYMin = (*pParameters)(Prefix +
"USER_YMIN");
1234 CSG_Parameter *pYMax = (*pParameters)(Prefix +
"USER_YMAX");
1235 CSG_Parameter *pRows = (*pParameters)(Prefix +
"USER_ROWS");
1236 CSG_Parameter *pCols = (*pParameters)(Prefix +
"USER_COLS");
1237 CSG_Parameter *pFits = (*pParameters)(Prefix +
"USER_FITS");
1241 double xMin = pXMin->asDouble(), xMax = pXMax->asDouble();
1242 double yMin = pYMin->asDouble(), yMax = pYMax->asDouble();
1245 bool bChanged =
true;
1249 if( pFits->asInt() == 0 )
1251 xMin += 0.5 * Size; xMax -= 0.5 * Size;
1252 yMin += 0.5 * Size; yMax -= 0.5 * Size;
1257 if( pFits->asInt() == 1 )
1259 xMin += 0.5 * Size; xMax -= 0.5 * Size;
1260 yMin += 0.5 * Size; yMax -= 0.5 * Size;
1265 xMax = xMin + Size * (int)(0.5 + (xMax - xMin) / Size);
1266 yMax = yMin + Size * (int)(0.5 + (yMax - yMin) / Size);
1268 else if( pParameter->
Cmp_Identifier(pCols->Get_Identifier()) && pCols->asInt() > 0 )
1270 xMax = xMin + Size * (pCols->asInt() - 1);
1274 xMax = xMin + Size * (xMin > xMax ? (pCols->asInt() - 1) : (
int)(0.5 + (xMax - xMin) / Size));
1278 xMin = xMax - Size * (xMin > xMax ? (pCols->asInt() - 1) : (
int)(0.5 + (xMax - xMin) / Size));
1280 else if( pParameter->
Cmp_Identifier(pRows->Get_Identifier()) && pRows->asInt() > 0 )
1282 yMax = yMin + Size * (pRows->asInt() - 1);
1286 yMax = yMin + Size * (yMin > yMax ? (pRows->asInt() - 1) : (
int)(0.5 + (yMax - yMin) / Size));
1290 yMin = yMax - Size * (yMin > yMax ? (pRows->asInt() - 1) : (
int)(0.5 + (yMax - yMin) / Size));
1301 pCols->Set_Value(1 + (
int)((xMax - xMin) / Size));
1302 pRows->Set_Value(1 + (
int)((yMax - yMin) / Size));
1304 if( pFits->asInt() == 1 )
1306 xMin -= 0.5 * Size; xMax += 0.5 * Size;
1307 yMin -= 0.5 * Size; yMax += 0.5 * Size;
1310 pXMin->Set_Value(xMin);
1311 pXMax->Set_Value(xMax);
1312 pYMin->Set_Value(yMin);
1313 pYMax->Set_Value(yMax);
1319 CSG_Parameter *pZSize = (*pParameters)(Prefix +
"USER_ZSIZE");
1320 CSG_Parameter *pZMin = (*pParameters)(Prefix +
"USER_ZMIN" );
1321 CSG_Parameter *pZMax = (*pParameters)(Prefix +
"USER_ZMAX" );
1322 CSG_Parameter *pZNum = (*pParameters)(Prefix +
"USER_ZNUM" );
1324 if( pZSize && pZMin && pZMax && pZNum )
1326 double zSize = pZSize->
asDouble(), zMin = pZMin ->asDouble(), zMax = pZMax ->asDouble();
1332 zMax = zMin + zSize * (int)(0.5 + (zMax - zMin) / zSize);
1334 else if( pParameter->
Cmp_Identifier(pZNum->Get_Identifier()) && pZNum->asInt() > 0 )
1336 zMax = zMin + zSize * pZNum->asInt();
1340 zMax = zMin + zSize * (zMin > zMax ? pZNum->asInt() : (int)(0.5 + (zMax - zMin) / zSize));
1344 zMin = zMax - zSize * (zMin > zMax ? pZNum->asInt() : (int)(0.5 + (zMax - zMin) / zSize));
1353 pZNum->Set_Value(1 + (
int)((zMax - zMin) / zSize));
1355 pZMin->Set_Value(zMin);
1356 pZMax->Set_Value(zMax);
1374 if( !pParameter || !pParameters || !(pParameter = (*pParameters)(Prefix +
"DEFINITION")) )
1414 pParameters = m_pParameters;
1422 if( Rows < 1 && (Rows = (*m_pParameters)(m_Prefix +
"USER_ROWS")->asInt()) < 1 )
1446 int Cols = 1 + (int)(0.5 + r.
Get_XRange() / Size);
1460 if( (*pParameters)(m_Prefix +
"USER_FITS")->asInt() == 1 )
1494 double Size = sqrt(r.
Get_Area() / pPoints->
Get_Count()) / (Scale > 1 ? Scale : 1);
1500 r.
xMin = Size * floor(r.
xMin / Size);
1501 r.
xMax = Size * ceil (r.
xMax / Size);
1502 r.
yMin = Size * floor(r.
yMin / Size);
1503 r.
yMax = Size * ceil (r.
yMax / Size);
1506 int Rows = 1 + (int)(0.5 + r.
Get_YRange() / Size);
1537 pParameters = m_pParameters;
1553 double z = zMin; zMin = zMax; zMax = z;
1556 if( zMax - zMin <= 0. )
1558 zMin -= 0.5 * nLevels;
1559 zMax += 0.5 * nLevels;
1563 double Size = (zMax - zMin) / (nLevels - 1.);
1569 zMin = Size * floor(zMin / Size);
1570 zMax = Size * ceil (zMax / Size);
1574 if( (*pParameters)(m_Prefix +
"USER_FITS")->asInt() == 1 )
1585 pParameters->
Set_Parameter(m_Prefix +
"USER_ZNUM" , nLevels);
1600 if( !m_pParameters || Identifier.
Length() == 0 || (*m_pParameters)(Identifier) != NULL )
1605 CSG_Parameter *pTarget = (*m_pParameters)(m_Prefix +
"DEFINITION");
1620 CSG_Parameter *pNode = (*m_pParameters)(m_Prefix +
"USER_OPTS");
1636 if( !m_pParameters || Identifier.
Length() == 0 || (*m_pParameters)(Identifier) != NULL )
1641 CSG_Parameter *pTarget = (*m_pParameters)(m_Prefix +
"DEFINITION");
1656 CSG_Parameter *pNode = (*m_pParameters)(m_Prefix +
"USER_OPTS");
1668 pTarget = m_pParameters->
Add_Node(pTarget,
"USER_Z",
_TL(
"Z Levels"),
_TL(
""));
1670 m_pParameters->
Add_Double(pTarget, m_Prefix +
"USER_ZSIZE",
_TL(
"Cellsize"),
_TL(
""), 1., 0.,
true);
1671 m_pParameters->
Add_Double(pTarget, m_Prefix +
"USER_ZMIN" ,
_TL(
"Bottom" ),
_TL(
""), 0.);
1672 m_pParameters->
Add_Double(pTarget, m_Prefix +
"USER_ZMAX" ,
_TL(
"Top" ),
_TL(
""), 100.);
1673 m_pParameters->
Add_Int (pTarget, m_Prefix +
"USER_ZNUM" ,
_TL(
"Levels" ),
_TL(
""), 101, 1,
true);
1691 if( (*m_pParameters)(m_Prefix +
"DEFINITION")->asInt() == 0 )
1693 double Size = (*m_pParameters)(m_Prefix +
"USER_SIZE")->asDouble();
1696 (*m_pParameters)(m_Prefix +
"USER_XMIN")->asDouble(),
1697 (*m_pParameters)(m_Prefix +
"USER_YMIN")->asDouble(),
1698 (*m_pParameters)(m_Prefix +
"USER_XMAX")->asDouble(),
1699 (*m_pParameters)(m_Prefix +
"USER_YMAX")->asDouble()
1702 if( (*m_pParameters)(m_Prefix +
"USER_FITS")->asInt() == 1 )
1711 CSG_Parameter *pParameter = (*m_pParameters)(m_Prefix +
"SYSTEM");
1726 if( !m_pParameters )
1745 CSG_Parameter *pSystem = (*m_pParameters)(m_Prefix +
"SYSTEM");
1754 if( (*m_pParameters)(m_Prefix +
"DEFINITION")->asInt() == 0 && m_pParameters->
Get_Tool()->
has_GUI() )
1756 if( (*m_pParameters)(Identifier +
"_CREATE") == NULL
1757 || (*m_pParameters)(Identifier +
"_CREATE")->asBool() )
1764 pGrid = pParameter->
asGrid();
1770 else if( pGrid && pGrid->
Get_Type() != Type )
1776 if( pGrid && pGrid != pParameter->
asGrid() )
1792 return(
Get_Grid(m_Prefix +
"OUT_GRID", Type) );
1798 if( !m_pParameters )
1819 if( (*m_pParameters)(m_Prefix +
"DEFINITION")->asInt() == 0
1820 && (*m_pParameters)(Identifier +
"_CREATE") )
1822 if( (*m_pParameters)(Identifier +
"_CREATE")->asBool() )
1829 pGrids = pParameter->
asGrids();
1837 if( pGrids && pGrids != pParameter->
asGrids() )
1843 && (*m_pParameters)(m_Prefix +
"USER_ZSIZE")
1844 && (*m_pParameters)(m_Prefix +
"USER_ZMIN" )
1845 && (*m_pParameters)(m_Prefix +
"USER_ZNUM" ) )
1847 int nz = (*m_pParameters)(m_Prefix +
"USER_ZNUM" )->asInt ();
1848 double z = (*m_pParameters)(m_Prefix +
"USER_ZMIN" )->asDouble();
1849 double dz = (*m_pParameters)(m_Prefix +
"USER_ZSIZE")->asDouble();
1853 for(
int iz=0; iz<nz; iz++, z+=dz)
1865 return(
Get_Grids(m_Prefix +
"OUT_GRIDS", Type) );
CSG_Colors * asColors(void) const
TSG_Data_Type Get_Type(void) const
class CSG_Parameter_Grids_List * asGridsList(void) const
virtual bool Set_Value(int Value)
void * asPointer(void) const
int Get_Selection_Count(void) const
CSG_Parameter * Get_Parameter(int i) const
@ PARAMETER_TYPE_FilePath
bool Add_Grid(const CSG_String &ID, const CSG_String &Name, bool bOptional)
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)
class CSG_Parameter_Shapes_List * asShapesList(void) const
@ PARAMETER_TYPE_Table_Fields
size_t Length(void) const
double Get_Max(void) const
const SG_Char * Get_Identifier(void) const
class CSG_Data_Manager * Get_Manager(void) const
const SG_Char * asString(void) const
CSG_String Get_Type_Name(void) const
CSG_Table * asTable(void) const
double Get_XMax(void) const
@ PARAMETER_TYPE_Grids_List
class CSG_Parameter_TIN_List * asTINList(void) const
virtual bool _Assign(CSG_Parameter *pSource)
class CSG_Parameter_Date * asDate(void) const
CSG_String SG_Get_DataObject_Name(TSG_Data_Object_Type Type)
virtual CSG_Table_Record * Get_Record(sLong Index) const
bool Create(const CSG_Grid &Grid)
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
bool is_Compatible(CSG_Parameter *pParameter) 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 Set_User_Defined(CSG_Parameters *pParameters, const TSG_Rect &Extent, int Rows=0, int Rounding=2)
CSG_TIN * asTIN(void) const
int Get_Item_Count(void) const
@ SG_DATAOBJECT_TYPE_Grids
CSG_Grid_System Get_System(void)
bool do_UseInCMD(void) const
@ PARAMETER_TYPE_FixedTable
bool Create(CSG_Parameters *pParameters, bool bAddDefaultGrid, CSG_Parameter *pParent, const CSG_String &Prefix="")
int Get_Field_Count(void) const
bool Exists(CSG_Data_Object *pObject) const
virtual const SG_Char * _asString(void) const
virtual double _asDouble(void) const
SAGA_API_DLL_EXPORT void SG_Free(void *memblock)
virtual TSG_Data_Object_Type Get_ObjectType(void) const =0
Returns the object type as defined by TSG_Data_Object_Type. Used for run time type checking.
CSG_Data_Object * asDataObject(void) const
bool Assign(CSG_Parameter *pSource)
#define SG_STR_CMP(s1, s2)
double Get_Area(void) const
@ PARAMETER_TYPE_PointCloud
CSG_Parameter(CSG_Parameters *pOwner, CSG_Parameter *pParent, const CSG_String &ID, const CSG_String &Name, const CSG_String &Description, int Constraint)
class CSG_Parameter_Value * asValue(void) const
bool Set_Description(const CSG_String &Description)
CSG_Parameters * Get_Parameters(void) const
virtual int _Set_Value(int Value)
const CSG_Grid_System & Get_System(void) const
int Cmp(const CSG_String &String) const
#define PARAMETER_INPUT_OPTIONAL
CSG_String SG_Parameter_Type_Get_Name(TSG_Parameter_Type Type)
@ PARAMETER_TYPE_Shapes_List
class CSG_Parameter_Grid_List * asGridList(void) const
virtual TSG_Parameter_Type Get_Type(void) const =0
bool Serialize(CSG_MetaData &MetaData, bool bSave)
bool is_Compatible(const CSG_Table &Table, bool bExactMatch=false) const
CSG_Grid * asGrid(void) const
bool is_DataObject_List(void) const
void Set_UseInCMD(bool bDoUse=false)
bool ignore_Projection(void) const
@ PARAMETER_TYPE_Data_Type
bool On_Parameter_Changed(CSG_Parameters *pParameters, CSG_Parameter *pParameter)
void Deflate(double d, bool bPercent=true)
double Get_XRange(void) const
int Get_Count(void) const
const SG_Char * asString(int Field, int Decimals=-99) const
double Get_YMin(void) const
@ PARAMETER_TYPE_Undefined
virtual int _asInt(void) const
long Get_Color(int Index) const
virtual bool Update_Data(void)
int Get_Count(void) const
#define SG_PARAMETER_DATA_SET_CHANGED
#define DATAOBJECT_CREATE
CSG_PointCloud * asPointCloud(void) const
bool is_Equal(const CSG_Grid_System &System) const
@ PARAMETER_TYPE_Table_Field
CSG_Shapes * asShapes(void) const
bool is_Enabled(bool bCheckEnv=true) const
#define PARAMETER_DESCRIPTION_OPTIONAL
bool Set_Default(int Value)
virtual bool Del_Item(CSG_Data_Object *pItem, bool bUpdateData=true)
virtual bool _Serialize(CSG_MetaData &MetaData, bool bSave)
CSG_Grid * Get_Grid(const CSG_String &ID, TSG_Data_Type Type=SG_DATATYPE_Float)
CSG_String SG_Parameter_Type_Get_Identifier(TSG_Parameter_Type Type)
class CSG_Parameters * asParameters(void) const
bool Set_User_Defined_ZLevels(CSG_Parameters *pParameters, double zMin, double zMax, int nLevels, int Rounding=2)
class CSG_Tool * Get_Tool(void) const
bool Set_Name(const CSG_String &Name)
void Set_Enabled(bool bEnabled=true)
void Inflate(double d, bool bPercent=true)
int Get_Count(void) const
class CSG_Parameter_Data_Type * asDataType(void) const
virtual void * _asPointer(void) const
CSG_Parameter * Get_Child(int iChild) const
#define PARAMETER_DESCRIPTION_TYPE
virtual ~CSG_Parameter(void)
bool is_Serializable(void) const
sLong Get_Count(void) const
bool Add_Grids(const CSG_String &ID, const CSG_String &Name, bool bOptional, bool bZLevels=false)
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)
bool Assign(const CSG_Grid_System &System)
CSG_Grids * Get_Grids(const CSG_String &ID, TSG_Data_Type Type=SG_DATATYPE_Float)
#define SG_PARAMETER_DATA_SET_FALSE
CSG_Parameters_Grid_Target(void)
class CSG_Parameter_PointCloud_List * asPointCloudList(void) const
#define PARAMETER_IGNORE_PROJECTION
virtual bool Toggle_Value(void)
@ PARAMETER_TYPE_Grid_List
CSG_String SG_Data_Type_Get_Name(TSG_Data_Type Type, bool bShort)
virtual void _Set_String(void)
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_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
bool is_Value_Equal(CSG_Parameter *pParameter) const
virtual const CSG_Rect & Get_Extent(void)
class CSG_Parameter_File_Name * asFilePath(void) const
bool is_Output(void) const
CSG_Grids * SG_Create_Grids(void)
static CSG_String Format(const char *Format,...)
int Get_Item_Count(void) const
const CSG_String & Get_Identifier(void) const
@ SG_DATAOBJECT_TYPE_Shapes
#define PARAMETER_NOT_FOR_GUI
@ SG_DATAOBJECT_TYPE_Undefined
const CSG_String & Get_Default(void) const
int Get_Children_Count(void) const
const SG_Char * Get_Item(int Index) const
CSG_Parameter * Get_Parent(void) const
bool is_DataObject(void) const
const CSG_Rect & Get_Extent(bool bCells=false) const
#define PARAMETER_NOT_FOR_CMD
class CSG_Parameter_Table_Fields * asTableFields(void) const
bool Set_Children_Enabled(bool bEnabled=true)
class CSG_Parameter_Choice * asChoice(void) const
@ SG_DATAOBJECT_TYPE_Table
bool Check(bool bSilent=true)
bool is_Empty(void) const
#define PARAMETER_DESCRIPTION_TEXT
bool has_Changed(int Check_Flags=PARAMETER_CHECK_ALL)
double asDouble(void) const
@ PARAMETER_TYPE_Grid_System
@ PARAMETER_TYPE_PointCloud_List
double Get_XCenter(void) const
double Get_YMax(void) const
double Get_XMin(void) const
@ PARAMETER_TYPE_Table_List
class CSG_Parameter_Range * asRange(void) const
int Get_Selection_Index(int i) const
class CSG_Data_Manager * Get_Manager(void) const
class CSG_Parameter_Table_List * asTableList(void) const
bool do_UseInGUI(void) const
double Get_YCenter(void) const
@ PARAMETER_TYPE_DataObject_Output
bool Set_Parameter(const CSG_String &ID, CSG_Parameter *pValue)
const CSG_String & Get_Item(int i) const
#define PARAMETER_DESCRIPTION_PROPERTIES
bool Set_Enabled(bool bEnabled=true)
const SG_Char * c_str(void) const
void Set_UseInGUI(bool bDoUse=false)
CSG_Grid * SG_Create_Grid(void)
TSG_Data_Object_Type Get_DataObject_Type(void) const
double Get_Min(void) const
SAGA_API_DLL_EXPORT void * SG_Realloc(void *memblock, size_t size)
bool Cmp_Identifier(const CSG_String &Identifier) const
bool is_Parameters(void) const
CSG_Grids * asGrids(void) const
CSG_Grid_System * asGrid_System(void) const
const SG_Char * Get_Name(void) const
const SG_Char * asFont(void) const
virtual bool is_Default(void) const
bool is_Option(void) const
@ PARAMETER_TYPE_TIN_List
@ PARAMETER_TYPE_Parameters
class CSG_Parameter_List * asList(void) const
virtual bool Restore_Default(void)
bool On_Parameters_Enable(CSG_Parameters *pParameters, CSG_Parameter *pParameter)
double Get_YRange(void) const
@ SG_DATAOBJECT_TYPE_PointCloud
bool Set_Callback(bool bActive=true)
class CSG_Parameter_Choices * asChoices(void) const
bool is_Information(void) const
#define PARAMETER_DESCRIPTION_NAME
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
#define DATAOBJECT_NOTSET
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)