示例#1
0
//---------------------------------------------------------
bool		SG_UI_DataObject_Update(CSG_Data_Object *pDataObject, int Show, CSG_Parameters *pParameters)
{
	CSG_Parameters	Parameters;

	if( gSG_UI_Callback && pDataObject )
	{
		if( gSG_UI_Callback(CALLBACK_DATAOBJECT_UPDATE, (long)pDataObject, (long)pParameters) != 0 )
		{
			if( Show != SG_UI_DATAOBJECT_UPDATE_ONLY )
			{
				SG_UI_DataObject_Show(pDataObject, Show);
			}

			return( true );
		}
	}

	return( false );
}
//---------------------------------------------------------
void CVisibility_BASE::Finalize(CSG_Grid *pVisibility, int iMethod)
{
    CSG_Parameters	Parameters;

    switch( iMethod )
    {
    case 0:		// Visibility
        Parameters.Add_Range(NULL, SG_T("METRIC_ZRANGE"), SG_T(""), SG_T(""), 0.0, 1.0);
        SG_UI_DataObject_Update(pVisibility, true, &Parameters);
        break;

    case 1:		// Shade
        Parameters.Add_Range(NULL, SG_T("METRIC_ZRANGE"), SG_T(""), SG_T(""), 0.0, M_PI_090);
        SG_UI_DataObject_Update(pVisibility, true, &Parameters);
        break;

    case 2:		// Distance
    case 3:		// Size
        SG_UI_DataObject_Show(pVisibility, true);
        break;
    }

    return;
}