//--------------------------------------------------------- bool CSG_Parameters_Search_Points::On_Parameter_Changed(CSG_Parameters *pParameters, CSG_Parameter *pParameter) { if( !m_pParameters || !pParameters || m_pParameters->Get_Identifier().Cmp(pParameters->Get_Identifier()) || !pParameter || !pParameter->asShapes() ) { return( false ); } pParameters->Set_Parameter("SEARCH_RADIUS", SG_Get_Rounded_To_SignificantFigures( 5 * sqrt(pParameter->asShapes()->Get_Extent().Get_Area() / pParameter->asShapes()->Get_Count()), 1 )); return( true ); }
//--------------------------------------------------------- int CInterpolation_AngularDistance::On_Parameter_Changed(CSG_Parameters *pParameters, CSG_Parameter *pParameter) { if( pParameter->Cmp_Identifier("POINTS") ) { m_Search.On_Parameter_Changed(pParameters, pParameter); if( pParameter->asShapes() && pParameter->asShapes()->Get_Count() > 1 ) { // get a rough estimation of point density for band width suggestion pParameters->Get_Parameter("DW_BANDWIDTH")->Set_Value(SG_Get_Rounded_To_SignificantFigures( 0.5 * sqrt(pParameter->asShapes()->Get_Extent().Get_Area() / pParameter->asShapes()->Get_Count()), 1 )); } } return( CInterpolation::On_Parameter_Changed(pParameters, pParameter) ); }