📄 parameters.h
字号:
///////////////////////////////////////////////////////////
// //
// SAGA //
// //
// System for Automated Geoscientific Analyses //
// //
// Application Programming Interface //
// //
// Library: SAGA_API //
// //
//-------------------------------------------------------//
// //
// parameters.h //
// //
// Copyright (C) 2005 by Olaf Conrad //
// //
//-------------------------------------------------------//
// //
// This file is part of 'SAGA - System for Automated //
// Geoscientific Analyses'. //
// //
// This library is free software; you can redistribute //
// it and/or modify it under the terms of the GNU Lesser //
// General Public License as published by the Free //
// Software Foundation, version 2.1 of the License. //
// //
// This library is distributed in the hope that it will //
// be useful, but WITHOUT ANY WARRANTY; without even the //
// implied warranty of MERCHANTABILITY or FITNESS FOR A //
// PARTICULAR PURPOSE. See the GNU Lesser General Public //
// License for more details. //
// //
// You should have received a copy of the GNU Lesser //
// General Public License along with this program; if //
// not, write to the Free Software Foundation, Inc., //
// 59 Temple Place - Suite 330, Boston, MA 02111-1307, //
// USA. //
// //
//-------------------------------------------------------//
// //
// contact: Olaf Conrad //
// Institute of Geography //
// University of Goettingen //
// Goldschmidtstr. 5 //
// 37077 Goettingen //
// Germany //
// //
// e-mail: oconrad@saga-gis.org //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
#ifndef HEADER_INCLUDED__SAGA_API__parameters_H
#define HEADER_INCLUDED__SAGA_API__parameters_H
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
#include "grid.h"
#include "table.h"
#include "shapes.h"
#include "tin.h"
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
#define PARAMETER_INPUT 0x01
#define PARAMETER_OUTPUT 0x02
#define PARAMETER_OPTIONAL 0x04
#define PARAMETER_INFORMATION 0x08
#define PARAMETER_INPUT_OPTIONAL (PARAMETER_INPUT | PARAMETER_OPTIONAL)
#define PARAMETER_OUTPUT_OPTIONAL (PARAMETER_OUTPUT | PARAMETER_OPTIONAL)
//---------------------------------------------------------
#define PARAMETER_DESCRIPTION_NAME 0x01
#define PARAMETER_DESCRIPTION_TYPE 0x02
#define PARAMETER_DESCRIPTION_OPTIONAL 0x04
#define PARAMETER_DESCRIPTION_PROPERTIES 0x08
#define PARAMETER_DESCRIPTION_TEXT 0x10
#define PARAMETER_DESCRIPTION_ALL (PARAMETER_DESCRIPTION_NAME | PARAMETER_DESCRIPTION_TYPE | PARAMETER_DESCRIPTION_OPTIONAL | PARAMETER_DESCRIPTION_PROPERTIES | PARAMETER_DESCRIPTION_TEXT)
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
typedef enum ESG_Parameter_Type
{
PARAMETER_TYPE_Node = 0,
PARAMETER_TYPE_Bool,
PARAMETER_TYPE_Int,
PARAMETER_TYPE_Double,
PARAMETER_TYPE_Degree,
PARAMETER_TYPE_Range,
PARAMETER_TYPE_Choice,
PARAMETER_TYPE_String,
PARAMETER_TYPE_Text,
PARAMETER_TYPE_FilePath,
PARAMETER_TYPE_Font,
PARAMETER_TYPE_Color,
PARAMETER_TYPE_Colors,
PARAMETER_TYPE_FixedTable,
PARAMETER_TYPE_Grid_System,
PARAMETER_TYPE_Table_Field,
PARAMETER_TYPE_Grid,
PARAMETER_TYPE_Table,
PARAMETER_TYPE_Shapes,
PARAMETER_TYPE_TIN,
PARAMETER_TYPE_Grid_List,
PARAMETER_TYPE_Table_List,
PARAMETER_TYPE_Shapes_List,
PARAMETER_TYPE_TIN_List,
PARAMETER_TYPE_DataObject_Output,
PARAMETER_TYPE_Parameters,
PARAMETER_TYPE_Undefined
}
TSG_Parameter_Type;
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
class CSG_Parameters;
class CSG_Parameter;
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
typedef int (* TSG_PFNC_Parameter_Changed) (CSG_Parameter *pSender);
///////////////////////////////////////////////////////////
// //
// CSG_Parameter_Data //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
class SAGA_API_DLL_EXPORT CSG_Parameter_Data
{
public:
CSG_Parameter_Data(CSG_Parameter *pOwner, long Constraint);
virtual ~CSG_Parameter_Data(void);
virtual TSG_Parameter_Type Get_Type (void) = 0;
virtual const SG_Char * Get_Type_Name (void);
long Get_Constraint (void) { return( m_Constraint ); }
virtual bool is_Valid (void) { return( true ); }
bool Assign (CSG_Parameter_Data *pSource);
bool Serialize (CSG_File &Stream, bool bSave);
virtual bool Set_Value (int Value);
virtual bool Set_Value (double Value);
virtual bool Set_Value (void *Value);
virtual int asInt (void);
virtual double asDouble (void);
virtual void * asPointer (void);
virtual const SG_Char * asString (void);
protected:
int m_Constraint;
CSG_String m_String;
CSG_Parameter *m_pOwner;
virtual void On_Assign (CSG_Parameter_Data *pSource);
virtual bool On_Serialize (CSG_File &Stream, bool bSave);
};
//---------------------------------------------------------
class SAGA_API_DLL_EXPORT CSG_Parameter_Node : public CSG_Parameter_Data
{
public:
CSG_Parameter_Node(CSG_Parameter *pOwner, long Constraint);
virtual ~CSG_Parameter_Node(void);
virtual TSG_Parameter_Type Get_Type (void) { return( PARAMETER_TYPE_Node ); }
};
//---------------------------------------------------------
class SAGA_API_DLL_EXPORT CSG_Parameter_Bool : public CSG_Parameter_Data
{
public:
CSG_Parameter_Bool(CSG_Parameter *pOwner, long Constraint);
virtual ~CSG_Parameter_Bool(void);
virtual TSG_Parameter_Type Get_Type (void) { return( PARAMETER_TYPE_Bool ); }
virtual bool Set_Value (int Value);
virtual bool Set_Value (double Value);
virtual int asInt (void) { return( m_Value ); }
virtual const SG_Char * asString (void);
protected:
bool m_Value;
virtual void On_Assign (CSG_Parameter_Data *pSource);
virtual bool On_Serialize (CSG_File &Stream, bool bSave);
};
//---------------------------------------------------------
class SAGA_API_DLL_EXPORT CSG_Parameter_Value : public CSG_Parameter_Data
{
public:
CSG_Parameter_Value(CSG_Parameter *pOwner, long Constraint);
virtual ~CSG_Parameter_Value(void);
bool Set_Range (double Minimum, double Maximum);
void Set_Minimum (double Minimum, bool bOn = true);
double Get_Minimum (void) { return( m_Minimum ); }
bool has_Minimum (void) { return( m_bMinimum ); }
void Set_Maximum (double Maximum, bool bOn = true);
double Get_Maximum (void) { return( m_Maximum ); }
bool has_Maximum (void) { return( m_bMaximum ); }
protected:
bool m_bMinimum, m_bMaximum;
double m_Minimum, m_Maximum;
virtual void On_Assign (CSG_Parameter_Data *pSource);
};
//---------------------------------------------------------
class SAGA_API_DLL_EXPORT CSG_Parameter_Int : public CSG_Parameter_Value
{
public:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -