📄 parameters.cpp
字号:
}
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Grid(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, bool bSystem_Dependent, TSG_Grid_Type Preferred_Type)
{
CSG_Parameter *pParameter;
if( !pParent || pParent->Get_Type() != PARAMETER_TYPE_Grid_System )
{
if( bSystem_Dependent && m_pGrid_System )
{
pParent = m_pGrid_System;
}
else
{
pParent = Add_Grid_System(pParent, CSG_String::Format(SG_T("%s_GRIDSYSTEM"), Identifier), LNG("[PRM] Grid system"), SG_T(""));
}
}
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_Grid, Constraint);
((CSG_Parameter_Grid *)pParameter->m_pData)->Set_Preferred_Type(Preferred_Type);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Grid_Output(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_DataObject_Output, PARAMETER_OUTPUT_OPTIONAL);
((CSG_Parameter_Data_Object_Output *)pParameter->Get_Data())->Set_DataObject_Type(DATAOBJECT_TYPE_Grid);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Grid_List(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, bool bSystem_Dependent)
{
CSG_Parameter *pParameter;
if( bSystem_Dependent && (!pParent || pParent->Get_Type() != PARAMETER_TYPE_Grid_System) )
{
pParent = m_pGrid_System;
}
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_Grid_List, Constraint);
return( pParameter );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Table_Field(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description)
{
if( pParent
&& ( pParent->Get_Type() == PARAMETER_TYPE_Table
|| pParent->Get_Type() == PARAMETER_TYPE_Shapes
|| pParent->Get_Type() == PARAMETER_TYPE_TIN ) )
{
return( _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_Table_Field, 0) );
}
return( NULL );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Table(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_Table, Constraint);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Table_Output(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_DataObject_Output, PARAMETER_OUTPUT_OPTIONAL);
((CSG_Parameter_Data_Object_Output *)pParameter->Get_Data())->Set_DataObject_Type(DATAOBJECT_TYPE_Table);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Table_List(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_Table_List, Constraint);
return( pParameter );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Shapes(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, TSG_Shape_Type Shape_Type)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_Shapes, Constraint);
((CSG_Parameter_Shapes *)pParameter->m_pData)->Set_Shape_Type(Shape_Type);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Shapes_Output(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_DataObject_Output, PARAMETER_OUTPUT_OPTIONAL);
((CSG_Parameter_Data_Object_Output *)pParameter->Get_Data())->Set_DataObject_Type(DATAOBJECT_TYPE_Shapes);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Shapes_List(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint, TSG_Shape_Type Type)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_Shapes_List, Constraint);
((CSG_Parameter_Shapes_List *)pParameter->m_pData)->Set_Shape_Type(Type);
return( pParameter );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_TIN(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_TIN, Constraint);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_TIN_Output(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_DataObject_Output, PARAMETER_OUTPUT_OPTIONAL);
((CSG_Parameter_Data_Object_Output *)pParameter->Get_Data())->Set_DataObject_Type(DATAOBJECT_TYPE_TIN);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_TIN_List(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, int Constraint)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_TIN_List, Constraint);
return( pParameter );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Add_Parameters(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description)
{
CSG_Parameter *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_Parameters, 0);
return( pParameter );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::_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 *pParameter;
CSG_Parameter_Value *m_pData;
switch( Type ) // Check if Type is valid...
{
case PARAMETER_TYPE_Bool:
case PARAMETER_TYPE_Int:
case PARAMETER_TYPE_Double:
case PARAMETER_TYPE_Degree:
case PARAMETER_TYPE_Color:
break;
default:
Type = PARAMETER_TYPE_Double; // if not valid set Type to [double]...
break;
}
pParameter = _Add(pParent, Identifier, Name, Description, Type, bInformation ? PARAMETER_INFORMATION : 0);
if( !bInformation )
{
switch( Type )
{
default:
break;
case PARAMETER_TYPE_Int:
case PARAMETER_TYPE_Double:
case PARAMETER_TYPE_Degree:
m_pData = (CSG_Parameter_Value *)pParameter->m_pData;
m_pData->Set_Minimum(Minimum, bMinimum);
m_pData->Set_Maximum(Maximum, bMaximum);
break;
}
}
pParameter->Set_Value(Value);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::_Add_Range(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, bool bInformation, double Default_Min, double Default_Max, double Minimum, bool bMinimum, double Maximum, bool bMaximum)
{
double d;
CSG_Parameter *pParameter;
CSG_Parameter_Range *m_pData;
//-----------------------------------------------------
if( Default_Min > Default_Max )
{
d = Default_Min;
Default_Min = Default_Max;
Default_Max = d;
}
//-----------------------------------------------------
pParameter = _Add(pParent, Identifier, Name, Description, PARAMETER_TYPE_Range, bInformation ? PARAMETER_INFORMATION : 0);
m_pData = pParameter->asRange();
m_pData->Get_LoParm()->asValue()->Set_Minimum(Minimum, bMinimum);
m_pData->Get_LoParm()->asValue()->Set_Maximum(Maximum, bMaximum);
m_pData->Get_HiParm()->asValue()->Set_Minimum(Minimum, bMinimum);
m_pData->Get_HiParm()->asValue()->Set_Maximum(Maximum, bMaximum);
m_pData->Set_LoVal(Default_Min);
m_pData->Set_HiVal(Default_Max);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::_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 *pParameter;
pParameter = _Add(pParent, Identifier, Name, Description, bLongText ? PARAMETER_TYPE_Text : PARAMETER_TYPE_String, bInformation ? PARAMETER_INFORMATION : 0);
pParameter->Set_Value((void *)String);
((CSG_Parameter_String *)pParameter->Get_Data())->Set_Password(bPassword);
return( pParameter );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::_Add(CSG_Parameter *pParent, const SG_Char *Identifier, const SG_Char *Name, const SG_Char *Description, TSG_Parameter_Type Type, int Constraint)
{
CSG_Parameter *pParameter;
m_Parameters = (CSG_Parameter **)SG_Realloc(m_Parameters, (m_nParameters + 1) * sizeof(CSG_Parameter *));
pParameter = m_Parameters[m_nParameters++] = new CSG_Parameter(this, pParent, Identifier, Name, Description, Type, Constraint);
return( pParameter );
}
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::_Add(CSG_Parameter *pSource)
{
CSG_Parameter *pParameter;
if( pSource )
{
pParameter = _Add(
pSource->Get_Parent() ? Get_Parameter(pSource->Get_Parent()->Get_Identifier()) : NULL,
pSource->Get_Identifier(),
pSource->Get_Name(),
pSource->Get_Description(),
pSource->Get_Type(),
pSource->m_pData->Get_Constraint()
);
pParameter->Assign(pSource);
}
else
{
pParameter = NULL;
}
return( pParameter );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
CSG_Parameter * CSG_Parameters::Get_Parameter(const SG_Char *Identifier)
{
int i;
if( m_Parameters && Identifier )
{
for(i=0; i<m_nParameters; i++)
{
if( !m_Parameters[i]->m_Identifier.Cmp(Identifier) )
{
return( m_Parameters[i] );
}
}
}
return( NULL );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -