📄 parameter.cpp
字号:
{
case PARAMETER_TYPE_Undefined:
case PARAMETER_TYPE_Node:
case PARAMETER_TYPE_DataObject_Output:
return( false );
default:
return( !is_Information() );
}
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
const SG_Char * CSG_Parameter::Get_Identifier(void)
{
return( m_Identifier );
}
//---------------------------------------------------------
const SG_Char * CSG_Parameter::Get_Name(void)
{
return( m_Name );
}
//---------------------------------------------------------
const SG_Char * CSG_Parameter::Get_Description(void)
{
return( m_Description );
}
//---------------------------------------------------------
#define SEPARATE if( bSeparate ) s.Append(Separator); bSeparate = true;
//---------------------------------------------------------
CSG_String CSG_Parameter::Get_Description(int Flags, const SG_Char *Separator)
{
bool bSeparate = false;
int i;
CSG_String s;
//-----------------------------------------------------
if( (Flags & PARAMETER_DESCRIPTION_NAME) != 0 )
{
SEPARATE;
s.Append(CSG_String::Format(SG_T("%s"), Get_Name()));
}
//-----------------------------------------------------
if( (Flags & PARAMETER_DESCRIPTION_TYPE) != 0 )
{
SEPARATE;
s.Append(CSG_String::Format(SG_T("%s"), Get_Type_Name()));
if( is_DataObject() || is_DataObject_List() )
{
if( is_Input() )
{
if( is_Optional() )
s.Append(CSG_String::Format(SG_T(" (%s)"), LNG("optional input")));
else
s.Append(CSG_String::Format(SG_T(" (%s)"), LNG("input")));
}
else if( is_Output() )
{
if( is_Optional() )
s.Append(CSG_String::Format(SG_T(" (%s)"), LNG("optional output")));
else
s.Append(CSG_String::Format(SG_T(" (%s)"), LNG("output")));
}
}
}
//-----------------------------------------------------
if( (Flags & PARAMETER_DESCRIPTION_OPTIONAL) != 0 && is_Optional() )
{
SEPARATE;
s.Append(CSG_String::Format(SG_T("%s"), LNG("optional")));
}
//-----------------------------------------------------
if( (Flags & PARAMETER_DESCRIPTION_PROPERTIES) != 0 )
{
switch( Get_Type() )
{
default:
break;
case PARAMETER_TYPE_Choice:
SEPARATE;
s.Append(CSG_String::Format(SG_T("%s:"), LNG("Available Choices")));
for(i=0; i<asChoice()->Get_Count(); i++)
{
s.Append(CSG_String::Format(SG_T("%s[%d] %s"), Separator, i, asChoice()->Get_Item(i)));
}
break;
case PARAMETER_TYPE_Int:
case PARAMETER_TYPE_Double:
case PARAMETER_TYPE_Degree:
// case PARAMETER_TYPE_Range:
if( asValue()->has_Minimum() && asValue()->has_Maximum() )
{
SEPARATE;
s.Append(CSG_String::Format(SG_T("%s: %f - %f"), LNG("Value Range"), asValue()->Get_Minimum(), asValue()->Get_Maximum()));
}
else if( asValue()->has_Minimum() )
{
SEPARATE;
s.Append(CSG_String::Format(SG_T("%s: %f"), LNG("Minimum"), asValue()->Get_Minimum()));
}
else if( asValue()->has_Maximum() )
{
SEPARATE;
s.Append(CSG_String::Format(SG_T("%s: %f"), LNG("Maximum"), asValue()->Get_Maximum()));
}
break;
case PARAMETER_TYPE_FixedTable:
SEPARATE;
s.Append(CSG_String::Format(SG_T("%d %s:%s"), asTable()->Get_Field_Count(), LNG("Fields"), Separator));
for(i=0; i<asTable()->Get_Field_Count(); i++)
{
s.Append(CSG_String::Format(SG_T("- %d. [%s] %s%s"), i + 1, gSG_Table_Field_Type_Names[asTable()->Get_Field_Type(i)], asTable()->Get_Field_Name(i), Separator));
}
break;
case PARAMETER_TYPE_Parameters:
SEPARATE;
s.Append(CSG_String::Format(SG_T("%d %s:%s"), asParameters()->Get_Count(), LNG("Parameters"), Separator));
for(i=0; i<asParameters()->Get_Count(); i++)
{
s.Append(CSG_String::Format(SG_T("- %d. %s%s"), i + 1, asParameters()->Get_Parameter(i)->Get_Description(Flags, Separator).c_str(), Separator));
}
break;
}
}
//-----------------------------------------------------
if( (Flags & PARAMETER_DESCRIPTION_TEXT) != 0 && m_Description.Length() > 0 )
{
SEPARATE;
s.Append(m_Description.c_str());
}
//-----------------------------------------------------
return( s );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
bool CSG_Parameter::Set_Value(int Value)
{
if( m_pData->Set_Value(Value) )
{
if( m_pOwner )
{
m_pOwner->_On_Parameter_Changed(this);
}
return( true );
}
return( false );
}
//---------------------------------------------------------
bool CSG_Parameter::Set_Value(double Value)
{
if( m_pData->Set_Value(Value) )
{
if( m_pOwner )
{
m_pOwner->_On_Parameter_Changed(this);
}
return( true );
}
return( false );
}
//---------------------------------------------------------
bool CSG_Parameter::Set_Value(void *Value)
{
if( m_pData->Set_Value(Value) )
{
if( m_pOwner )
{
m_pOwner->_On_Parameter_Changed(this);
}
return( true );
}
return( false );
}
//---------------------------------------------------------
bool CSG_Parameter::Set_Value(const SG_Char *Value)
{
return( Set_Value((void *)Value) );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
bool CSG_Parameter::Assign(CSG_Parameter *pSource)
{
return( m_pData->Assign(pSource->m_pData) );
}
//---------------------------------------------------------
bool CSG_Parameter::Serialize(CSG_File &Stream, bool bSave)
{
CSG_String sLine;
if( bSave )
{
Stream.Printf(SG_T("%d\n"), Get_Type());
return( m_pData->Serialize(Stream, bSave) );
}
else if( Stream.Read_Line(sLine) && sLine.asInt() == Get_Type() )
{
return( m_pData->Serialize(Stream, bSave) );
}
return( false );
}
///////////////////////////////////////////////////////////
// //
// //
// //
///////////////////////////////////////////////////////////
//---------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -