📄 parameters.h
字号:
///////////////////////////////////////////////////////////
// //
// CSG_Parameter //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
class SAGA_API_DLL_EXPORT CSG_Parameter
{
friend class CSG_Parameters;
public:
//-----------------------------------------------------
CSG_Parameters * Get_Owner (void) { return( m_pOwner ); }
CSG_Parameter * Get_Parent (void) { return( m_pParent ); }
TSG_Parameter_Type Get_Type (void) { return( m_pData->Get_Type() ); }
const SG_Char * Get_Type_Name (void) { return( m_pData->Get_Type_Name() ); }
CSG_Parameter_Data * Get_Data (void) { return( m_pData ); }
const SG_Char * Get_Identifier (void);
const SG_Char * Get_Name (void);
const SG_Char * Get_Description (void);
CSG_String Get_Description (int Flags, const SG_Char *Separator = SG_T("\n"));
bool is_Valid (void) { return( m_pData->is_Valid() ); }
bool is_Input (void) { return( !!(m_pData->Get_Constraint() & PARAMETER_INPUT) ); }
bool is_Output (void) { return( !!(m_pData->Get_Constraint() & PARAMETER_OUTPUT) ); }
bool is_Optional (void) { return( !!(m_pData->Get_Constraint() & PARAMETER_OPTIONAL) ); }
bool is_Information (void) { return( !!(m_pData->Get_Constraint() & PARAMETER_INFORMATION) ); }
bool is_Option (void);
bool is_DataObject (void);
bool is_DataObject_List (void);
bool is_Parameters (void);
bool is_Serializable (void);
int Get_Children_Count (void) { return( m_nChildren ); }
CSG_Parameter * Get_Child (int iChild) { return( iChild >= 0 && iChild < m_nChildren ? m_Children[iChild] : NULL ); }
//-----------------------------------------------------
bool Set_Value (int Value);
bool Set_Value (double Value);
bool Set_Value (void *Value);
bool Set_Value (const SG_Char *Value);
bool asBool (void) { return( (bool )!!m_pData->asInt () ); }
int asInt (void) { return( (int )m_pData->asInt () ); }
long asColor (void) { return( (long )m_pData->asInt () ); }
double asDouble (void) { return( (double )m_pData->asDouble () ); }
void * asPointer (void) { return( (void *)m_pData->asPointer () ); }
const SG_Char * asString (void) { return( (const SG_Char *)m_pData->asString () ); }
class wxFont * asFont (void) { return( (wxFont *)m_pData->asPointer () ); }
CSG_Colors * asColors (void) { return( (CSG_Colors *)m_pData->asPointer () ); }
CSG_Grid_System * asGrid_System (void) { return( (CSG_Grid_System *)m_pData->asPointer () ); }
CSG_Data_Object * asDataObject (void) { return( (CSG_Data_Object *)m_pData->asPointer () ); }
CSG_Grid * asGrid (void) { return( (CSG_Grid *)m_pData->asPointer () ); }
CSG_Table * asTable (void) { return( (CSG_Table *)m_pData->asPointer () ); }
CSG_Shapes * asShapes (void) { return( (CSG_Shapes *)m_pData->asPointer () ); }
CSG_TIN * asTIN (void) { return( (CSG_TIN *)m_pData->asPointer () ); }
CSG_Parameter_Value * asValue (void) { return( (CSG_Parameter_Value *)m_pData ); }
CSG_Parameter_Choice * asChoice (void) { return( (CSG_Parameter_Choice *)m_pData ); }
CSG_Parameter_Range * asRange (void) { return( (CSG_Parameter_Range *)m_pData ); }
CSG_Parameter_File_Name * asFilePath (void) { return( (CSG_Parameter_File_Name *)m_pData ); }
CSG_Parameter_List * asList (void) { return( (CSG_Parameter_List *)m_pData ); }
CSG_Parameter_Grid_List * asGridList (void) { return( (CSG_Parameter_Grid_List *)m_pData ); }
CSG_Parameter_Table_List * asTableList (void) { return( (CSG_Parameter_Table_List *)m_pData ); }
CSG_Parameter_Shapes_List * asShapesList (void) { return( (CSG_Parameter_Shapes_List *)m_pData ); }
CSG_Parameter_TIN_List * asTINList (void) { return( (CSG_Parameter_TIN_List *)m_pData ); }
CSG_Parameters * asParameters (void) { return( (CSG_Parameters *)m_pData->asPointer () ); }
//-----------------------------------------------------
bool Assign (CSG_Parameter *pSource);
bool Serialize (CSG_File &Stream, bool bSave);
private:
CSG_Parameter(CSG_Parameters *pOwner, CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, TSG_Parameter_Type Type, int Constraint);
virtual ~CSG_Parameter(void);
void _Add_Child (CSG_Parameter *pChild);
int m_nChildren;
CSG_Parameter **m_Children;
CSG_String m_Identifier, m_Name, m_Description;
CSG_Parameter_Data *m_pData;
CSG_Parameter *m_pParent;
CSG_Parameters *m_pOwner;
};
///////////////////////////////////////////////////////////
// //
// CSG_Parameters //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
class SAGA_API_DLL_EXPORT CSG_Parameters
{
friend class CSG_Parameter;
friend class CSG_Module;
public:
CSG_Parameters(void);
virtual ~CSG_Parameters(void);
CSG_Parameters (void *pOwner, const SG_Char *Name, const SG_Char *Description, const SG_Char *Identifier = NULL, bool bGrid_System = false);
void Create (void *pOwner, const SG_Char *Name, const SG_Char *Description, const SG_Char *Identifier = NULL, bool bGrid_System = false);
void Destroy (void);
//-----------------------------------------------------
void * Get_Owner (void) { return( m_pOwner ); }
int Get_Count (void) { return( m_nParameters ); }
void Set_Identifier (const SG_Char *String);
const SG_Char * Get_Identifier (void);
void Set_Name (const SG_Char *String);
const SG_Char * Get_Name (void);
void Set_Description (const SG_Char *String);
const SG_Char * Get_Description (void);
void Set_Translation (CSG_Translator &Translator);
//-----------------------------------------------------
void Set_Callback_On_Parameter_Changed (TSG_PFNC_Parameter_Changed pCallback);
void Set_Callback (bool bActive = true);
//-----------------------------------------------------
CSG_Parameter * Get_Parameter (int iParameter);
CSG_Parameter * operator() (int iParameter) { return( Get_Parameter(iParameter) ); }
CSG_Parameter * Get_Parameter (const SG_Char *Identifier);
CSG_Parameter * operator() (const SG_Char *Identifier) { return( Get_Parameter(Identifier) ); }
//-----------------------------------------------------
CSG_Parameter * Add_Node (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Value (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, TSG_Parameter_Type Type, double Value = 0.0, double Minimum = 0.0, bool bMinimum = false, double Maximum = 0.0, bool bMaximum = false);
CSG_Parameter * Add_Info_Value (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, TSG_Parameter_Type Type, double Value = 0.0);
CSG_Parameter * Add_Range (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *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);
CSG_Parameter * Add_Info_Range (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, double Range_Min = 0.0, double Range_Max = 0.0);
CSG_Parameter * Add_Choice (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, const SG_Char *Items, int Default = 0);
CSG_Parameter * Add_String (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, const SG_Char *String, bool bLongText = false, bool bPassword = false);
CSG_Parameter * Add_Info_String (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, const SG_Char *String, bool bLongText = false);
CSG_Parameter * Add_FilePath (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, const SG_Char *Filter = NULL, const SG_Char *Default = NULL, bool bSave = false, bool bDirectory = false, bool bMultiple = false);
CSG_Parameter * Add_Font (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, class wxFont *pInit = NULL);
CSG_Parameter * Add_Colors (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, CSG_Colors *pInit = NULL);
CSG_Parameter * Add_FixedTable (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, CSG_Table *pTemplate = NULL);
CSG_Parameter * Add_Grid_System (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, CSG_Grid_System *pInit = NULL);
CSG_Parameter * Add_Grid (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, bool bSystem_Dependent = true, TSG_Grid_Type Preferred_Type = GRID_TYPE_Undefined);
CSG_Parameter * Add_Grid_Output (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Grid_List (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, bool bSystem_Dependent = true);
CSG_Parameter * Add_Table_Field (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Table (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint);
CSG_Parameter * Add_Table_Output (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Table_List (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint);
CSG_Parameter * Add_Shapes (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, TSG_Shape_Type Shape_Type = SHAPE_TYPE_Undefined);
CSG_Parameter * Add_Shapes_Output (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Shapes_List (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, TSG_Shape_Type = SHAPE_TYPE_Undefined);
CSG_Parameter * Add_TIN (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint);
CSG_Parameter * Add_TIN_Output (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_TIN_List (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint);
CSG_Parameter * Add_Parameters (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description);
//-----------------------------------------------------
bool Set_Parameter (const SG_Char *Identifier, CSG_Parameter *pSource);
bool Set_Parameter (const SG_Char *Identifier, int Type, int Value);
bool Set_Parameter (const SG_Char *Identifier, int Type, double Value);
bool Set_Parameter (const SG_Char *Identifier, int Type, void *Value);
bool Set_Parameter (const SG_Char *Identifier, int Type, const SG_Char *Value);
int Assign (CSG_Parameters *pSource);
int Assign_Values (CSG_Parameters *pSource);
bool Serialize (const SG_Char *File_Name , bool bSave);
bool Serialize (CSG_File &Stream , bool bSave);
//-----------------------------------------------------
bool DataObjects_Check (bool bSilent = false);
//-----------------------------------------------------
bool Get_String (CSG_String &String, bool bOptionsOnly);
bool Msg_String (bool bOptionsOnly);
bool Set_History (CSG_History &History, bool bOptions = true, bool bDataObjects = true);
CSG_Grid_System * Get_Grid_System (void) { return( m_pGrid_System ? m_pGrid_System->asGrid_System() : NULL ); }
bool is_Managed (void) { return( m_bManaged ); }
#ifdef _SAGA_UNICODE
CSG_Parameter * Get_Parameter (const char *Identifier);
CSG_Parameter * operator() (const char *Identifier) { return( Get_Parameter(Identifier) ); }
CSG_Parameter * Add_Node (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Value (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, TSG_Parameter_Type Type, double Value = 0.0, double Minimum = 0.0, bool bMinimum = false, double Maximum = 0.0, bool bMaximum = false);
CSG_Parameter * Add_Info_Value (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, TSG_Parameter_Type Type, double Value = 0.0);
CSG_Parameter * Add_Range (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *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);
CSG_Parameter * Add_Info_Range (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, double Range_Min = 0.0, double Range_Max = 0.0);
CSG_Parameter * Add_Choice (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, const SG_Char *Items, int Default = 0);
CSG_Parameter * Add_String (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, const SG_Char *String, bool bLongText = false, bool bPassword = false);
CSG_Parameter * Add_Info_String (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, const SG_Char *String, bool bLongText = false);
CSG_Parameter * Add_FilePath (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, const SG_Char *Filter = NULL, const SG_Char *Default = NULL, bool bSave = false, bool bDirectory = false, bool bMultiple = false);
CSG_Parameter * Add_Font (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, class wxFont *pInit = NULL);
CSG_Parameter * Add_Colors (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, CSG_Colors *pInit = NULL);
CSG_Parameter * Add_FixedTable (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, CSG_Table *pTemplate = NULL);
CSG_Parameter * Add_Grid_System (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, CSG_Grid_System *pInit = NULL);
CSG_Parameter * Add_Grid (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, bool bSystem_Dependent = true, TSG_Grid_Type Preferred_Type = GRID_TYPE_Undefined);
CSG_Parameter * Add_Grid_Output (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Grid_List (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, bool bSystem_Dependent = true);
CSG_Parameter * Add_Table_Field (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Table (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint);
CSG_Parameter * Add_Table_Output (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Table_List (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint);
CSG_Parameter * Add_Shapes (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, TSG_Shape_Type Shape_Type = SHAPE_TYPE_Undefined);
CSG_Parameter * Add_Shapes_Output (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_Shapes_List (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, TSG_Shape_Type Shape_Type = SHAPE_TYPE_Undefined);
CSG_Parameter * Add_TIN (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint);
CSG_Parameter * Add_TIN_Output (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description);
CSG_Parameter * Add_TIN_List (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint);
CSG_Parameter * Add_Parameters (CSG_Parameter *pParent, const char *Identifier, const SG_Char *Name, const SG_Char *Description);
#endif
private:
void *m_pOwner;
bool m_bCallback, m_bManaged;
CSG_String m_Identifier, m_Name, m_Description;
int m_nParameters;
CSG_Parameter **m_Parameters, *m_pGrid_System;
TSG_PFNC_Parameter_Changed m_Callback;
void _On_Construction (void);
bool _On_Parameter_Changed (CSG_Parameter *pSender);
CSG_Parameter * _Add_Value (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, bool bInformation, TSG_Parameter_Type Type, double Value, double Minimum, bool bMinimum, double Maximum, bool bMaximum);
CSG_Parameter * _Add_Range (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, bool bInformation, double Range_Min, double Range_Max, double Minimum, bool bMinimum, double Maximum, bool bMaximum);
CSG_Parameter * _Add_String (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, bool bInformation, const SG_Char *String, bool bLongText, bool bPassword);
CSG_Parameter * _Add (CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, TSG_Parameter_Type Type, int Constraint);
CSG_Parameter * _Add (CSG_Parameter *pSource);
bool DataObjects_Create (void);
bool DataObjects_Synchronize (void);
};
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
#endif // #ifndef HEADER_INCLUDED__SAGA_API__parameters_H
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -