[Git][debian-gis-team/saga][upstream] New upstream version 9.8.1+dfsg
Bas Couwenberg (@sebastic)
gitlab at salsa.debian.org
Mon May 12 14:55:59 BST 2025
Bas Couwenberg pushed to branch upstream at Debian GIS Project / saga
Commits:
6a8f95cb by Bas Couwenberg at 2025-05-12T15:35:55+02:00
New upstream version 9.8.1+dfsg
- - - - -
29 changed files:
- saga-gis/src/accessories/helper/doxygen_saga_api_chm
- saga-gis/src/accessories/helper/doxygen_saga_api_html
- saga-gis/src/accessories/helper/make_saga_release.bat
- saga-gis/src/accessories/helper/saga_setup_x64.iss
- saga-gis/src/accessories/python/tools/climate_tools.py
- saga-gis/src/accessories/python/tools/io_webservices.py
- saga-gis/src/accessories/python/tools/ta_lighting.py
- saga-gis/src/saga_core/saga_api/mat_indexing.cpp
- saga-gis/src/saga_core/saga_api/mat_tools.h
- saga-gis/src/saga_core/saga_api/pointcloud.h
- saga-gis/src/saga_core/saga_api/saga_api.h
- saga-gis/src/saga_core/saga_api/table.cpp
- saga-gis/src/saga_core/saga_cmd/man/saga_cmd.1
- saga-gis/src/saga_core/saga_gui/dlg_about.cpp
- saga-gis/src/saga_core/saga_gui/man/saga_gui.1
- saga-gis/src/saga_core/saga_gui/saga_frame.cpp
- saga-gis/src/saga_core/saga_gui/wksp_data_menu_file.cpp
- saga-gis/src/saga_core/saga_gui/wksp_grid.cpp
- saga-gis/src/saga_core/saga_gui/wksp_layer.cpp
- saga-gis/src/saga_core/saga_gui/wksp_layer.h
- saga-gis/src/saga_core/saga_gui/wksp_pointcloud.cpp
- saga-gis/src/saga_core/saga_gui/wksp_shapes.cpp
- saga-gis/src/saga_core/saga_gui/wksp_shapes_type.cpp
- saga-gis/src/saga_core/saga_gui/wksp_tool.cpp
- saga-gis/src/tools/imagery/imagery_tools/spot_scene_import.cpp
- saga-gis/src/tools/imagery/imagery_vigra/vigra_random_forest.cpp
- saga-gis/src/tools/projection/pj_georeference/Georef_Grid.cpp
- saga-gis/src/tools/visualization/vis_3d_viewer/3d_viewer_multiple_grids.cpp
- saga-gis/version.cmake
Changes:
=====================================
saga-gis/src/accessories/helper/doxygen_saga_api_chm
=====================================
@@ -38,7 +38,7 @@ PROJECT_NAME = "SAGA API"
# could be handy for archiving the generated documentation or if some version
# control system is used.
-#PROJECT_NUMBER = v9.8.0 # omit patch number
+#PROJECT_NUMBER = v9.8.1 # omit patch number
PROJECT_NUMBER = v9.8
# Using the PROJECT_BRIEF tag one can provide an optional one line description
@@ -59,7 +59,7 @@ PROJECT_LOGO = ../../../saga_core/saga_gui/res/saga_icon_64.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = saga-9.8.0_api_doc
+OUTPUT_DIRECTORY = saga-9.8.1_api_doc
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@@ -1372,7 +1372,7 @@ GENERATE_HTMLHELP = YES
# written to the html output directory.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-CHM_FILE = ../../saga-9.8.0_api.chm
+CHM_FILE = ../../saga-9.8.1_api.chm
# The HHC_LOCATION tag can be used to specify the location (absolute path
# including file name) of the HTML help compiler (hhc.exe). If non-empty,
=====================================
saga-gis/src/accessories/helper/doxygen_saga_api_html
=====================================
@@ -38,7 +38,7 @@ PROJECT_NAME = "SAGA API"
# could be handy for archiving the generated documentation or if some version
# control system is used.
-#PROJECT_NUMBER = v9.8.0 # omit patch number
+#PROJECT_NUMBER = v9.8.1 # omit patch number
PROJECT_NUMBER = v9.8
# Using the PROJECT_BRIEF tag one can provide an optional one line description
@@ -59,7 +59,7 @@ PROJECT_LOGO = ../../../saga_core/saga_gui/res/saga_icon_64.png
# entered, it will be relative to the location where doxygen was started. If
# left blank the current directory will be used.
-OUTPUT_DIRECTORY = saga-9.8.0_api_doc
+OUTPUT_DIRECTORY = saga-9.8.1_api_doc
# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub-
# directories (in 2 levels) under the output directory of each output format and
@@ -1372,7 +1372,7 @@ GENERATE_HTMLHELP = NO
# written to the html output directory.
# This tag requires that the tag GENERATE_HTMLHELP is set to YES.
-CHM_FILE = ../../saga-9.8.0_api.chm
+CHM_FILE = ../../saga-9.8.1_api.chm
# The HHC_LOCATION tag can be used to specify the location (absolute path
# including file name) of the HTML help compiler (hhc.exe). If non-empty,
=====================================
saga-gis/src/accessories/helper/make_saga_release.bat
=====================================
@@ -30,15 +30,15 @@ REM ___________________________________
REM Version
SET SAGA_VERSION=9.8
-SET SAGA_RELEASE=9.8.0
-SET SAGA_VERSION_NEXT=9.9
-SET SAGA_RELEASE_NEXT=9.9.0
+SET SAGA_RELEASE=9.8.1
+SET SAGA_VERSION_NEXT=9.8
+SET SAGA_RELEASE_NEXT=9.8.2
SET SAGA_RELEASE_NAME=saga-%SAGA_RELEASE%
REM !!! For all bug-fix-releases !!!
REM Don't forget to activate the variable
REM - SWITCH_TO_BRANCH -
-REM SET SWITCH_TO_BRANCH=saga-%SAGA_VERSION%
+SET SWITCH_TO_BRANCH=saga-%SAGA_VERSION%
REM ___________________________________
=====================================
saga-gis/src/accessories/helper/saga_setup_x64.iss
=====================================
@@ -1,5 +1,5 @@
-; To build installer (for example, saga-9.8.0_setup.exe).
-; - Unzip the SAGA binary files in their own folder (for example, saga-9.8.0.zip).
+; To build installer (for example, saga-9.8.1_setup.exe).
+; - Unzip the SAGA binary files in their own folder (for example, saga-9.8.1.zip).
; - Place saga.iss and saga_readme.rtf in the SAGA folder (contains saga_gui.exe, etc.).
; - Open saga.iss in Inno Setup.
; - Choose Build | Compile.
@@ -7,7 +7,7 @@
[Setup]
AppName=SAGA - System for Automated Geoscientific Analyses
-AppVerName=SAGA 9.8.0
+AppVerName=SAGA 9.8.1
ArchitecturesAllowed=x64
ArchitecturesInstallIn64BitMode=x64
@@ -22,9 +22,9 @@ Compression=lzma
SolidCompression=yes
OutputDir=.
-OutputBaseFilename=saga-9.8.0_x64_setup
+OutputBaseFilename=saga-9.8.1_x64_setup
-VersionInfoVersion=9.8.0.0
+VersionInfoVersion=9.8.1.0
VersionInfoCompany=SAGA User Group Association
VersionInfoCopyright=(c) 2005-2023 by O. Conrad
VersionInfoDescription=SAGA single-file installer
@@ -51,5 +51,5 @@ Name: "{commondesktop}\SAGA"; Filename: "{app}\saga_gui.exe"; WorkingDir: "{app}
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\saga_gui.exe"; ValueType: string; ValueName: ""; ValueData: "{app}\saga_gui.exe"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\saga_gui.exe"; ValueType: string; ValueName: "Path"; ValueData: "{app}"
-Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.8.0"; ValueType: string; ValueName: "InstallDir"; ValueData: "{app}"; Flags: uninsdeletekey
-Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.8.0"; ValueType: string; ValueName: "Version"; ValueData: "9.8.0.0"
+Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.8.1"; ValueType: string; ValueName: "InstallDir"; ValueData: "{app}"; Flags: uninsdeletekey
+Root: HKLM; Subkey: "SOFTWARE\SAGA User Group Association\SAGA\9.8.1"; ValueType: string; ValueName: "Version"; ValueData: "9.8.1.0"
=====================================
saga-gis/src/accessories/python/tools/climate_tools.py
=====================================
@@ -775,8 +775,8 @@ def Evapotranspiration_Grid(
- SR_EST [`boolean`] : Estimate Solar Radiation. Default: 0 Estimate solar radiation from date, latitudinal position and sunshine duration as percentage of its potential maximum.
- SUNSHINE [`floating point number`] : Sunshine Duration. Minimum: 0.000000 Maximum: 100.000000 Default: 50.000000 Daily sunshine duration as percentage of its potential maximum.
- TIME [`choice`] : Time. Available Choices: [0] day [1] month Default: 0
- - MONTH [`choice`] : Month. Available Choices: [0] January [1] February [2] March [3] April [4] May [5] June [6] July [7] August [8] September [9] October [10] November [11] December Default: 3
- - DAY [`integer number`] : Day of Month. Minimum: 1 Maximum: 31 Default: 1
+ - MONTH [`choice`] : Month. Available Choices: [0] January [1] February [2] March [3] April [4] May [5] June [6] July [7] August [8] September [9] October [10] November [11] December Default: 4
+ - DAY [`integer number`] : Day of Month. Minimum: 1 Maximum: 31 Default: 12
- LAT [`floating point number`] : Latitude. Minimum: -90.000000 Maximum: 90.000000 Default: 53.000000 [Degree]
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
@@ -860,8 +860,8 @@ def run_tool_climate_tools_8(
- SR_EST [`boolean`] : Estimate Solar Radiation. Default: 0 Estimate solar radiation from date, latitudinal position and sunshine duration as percentage of its potential maximum.
- SUNSHINE [`floating point number`] : Sunshine Duration. Minimum: 0.000000 Maximum: 100.000000 Default: 50.000000 Daily sunshine duration as percentage of its potential maximum.
- TIME [`choice`] : Time. Available Choices: [0] day [1] month Default: 0
- - MONTH [`choice`] : Month. Available Choices: [0] January [1] February [2] March [3] April [4] May [5] June [6] July [7] August [8] September [9] October [10] November [11] December Default: 3
- - DAY [`integer number`] : Day of Month. Minimum: 1 Maximum: 31 Default: 1
+ - MONTH [`choice`] : Month. Available Choices: [0] January [1] February [2] March [3] April [4] May [5] June [6] July [7] August [8] September [9] October [10] November [11] December Default: 4
+ - DAY [`integer number`] : Day of Month. Minimum: 1 Maximum: 31 Default: 12
- LAT [`floating point number`] : Latitude. Minimum: -90.000000 Maximum: 90.000000 Default: 53.000000 [Degree]
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
@@ -914,7 +914,7 @@ def Sunrise_and_Sunset(
- SUNRISE [`output grid`] : Sunrise
- SUNSET [`output grid`] : Sunset
- LENGTH [`output grid`] : Day Length
- - DAY [`date`] : Day of Month. Default: 2025-04-01
+ - DAY [`date`] : Day of Month. Default: 2025-05-13
- TIME [`choice`] : Time. Available Choices: [0] local [1] world Default: 0
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
@@ -951,7 +951,7 @@ def run_tool_climate_tools_9(
- SUNRISE [`output grid`] : Sunrise
- SUNSET [`output grid`] : Sunset
- LENGTH [`output grid`] : Day Length
- - DAY [`date`] : Day of Month. Default: 2025-04-01
+ - DAY [`date`] : Day of Month. Default: 2025-05-13
- TIME [`choice`] : Time. Available Choices: [0] local [1] world Default: 0
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
@@ -2449,7 +2449,7 @@ def PhenIps_Grids_Days(
- YD_END_ONSET [`date`] : End of Breeding. Default: 2025-08-31
- YD_END [`date`] : End of Development. Default: 2025-10-31
- RESET [`boolean`] : Reset. Default: 1
- - DAY [`date`] : Start Day. Default: 2025-04-01
+ - DAY [`date`] : Start Day. Default: 2025-05-13
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
Returns
@@ -2570,7 +2570,7 @@ def run_tool_climate_tools_23(
- YD_END_ONSET [`date`] : End of Breeding. Default: 2025-08-31
- YD_END [`date`] : End of Development. Default: 2025-10-31
- RESET [`boolean`] : Reset. Default: 1
- - DAY [`date`] : Start Day. Default: 2025-04-01
+ - DAY [`date`] : Start Day. Default: 2025-05-13
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
Returns
@@ -2653,7 +2653,7 @@ def Soil_Water_Balance_Days(
- SWC_SURFACE [`floating point number`] : Top Soil Water Capacity. Minimum: 0.000000 Default: 30.000000
- SWT_RESIST [`floating point number`] : Transpiration Resistance. Minimum: 0.010000 Default: 0.500000
- RESET [`boolean`] : Reset. Default: 1
- - DAY [`date`] : Start Day. Default: 2025-04-01
+ - DAY [`date`] : Start Day. Default: 2025-05-13
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
Returns
@@ -2717,7 +2717,7 @@ def run_tool_climate_tools_24(
- SWC_SURFACE [`floating point number`] : Top Soil Water Capacity. Minimum: 0.000000 Default: 30.000000
- SWT_RESIST [`floating point number`] : Transpiration Resistance. Minimum: 0.010000 Default: 0.500000
- RESET [`boolean`] : Reset. Default: 1
- - DAY [`date`] : Start Day. Default: 2025-04-01
+ - DAY [`date`] : Start Day. Default: 2025-05-13
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
Returns
@@ -3468,8 +3468,8 @@ def Daily_Solar_Radiation(
----------
- LATITUDE [`input grid`] : Latitude. [Degree]
- SOLARRAD [`output grid`] : Solar Radiation. [J/cm²]
- - MONTH [`choice`] : Month. Available Choices: [0] January [1] February [2] March [3] April [4] May [5] June [6] July [7] August [8] September [9] October [10] November [11] December Default: 3
- - DAY [`integer number`] : Day of Month. Minimum: 1 Maximum: 31 Default: 1
+ - MONTH [`choice`] : Month. Available Choices: [0] January [1] February [2] March [3] April [4] May [5] June [6] July [7] August [8] September [9] October [10] November [11] December Default: 4
+ - DAY [`integer number`] : Day of Month. Minimum: 1 Maximum: 31 Default: 12
- SUNSHINE [`floating point number`] : Sunshine Duration. Minimum: 0.000000 Maximum: 100.000000 Default: 50.000000 Daily sunshine duration as percentage of its potential maximum.
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
@@ -3503,8 +3503,8 @@ def run_tool_climate_tools_31(
----------
- LATITUDE [`input grid`] : Latitude. [Degree]
- SOLARRAD [`output grid`] : Solar Radiation. [J/cm²]
- - MONTH [`choice`] : Month. Available Choices: [0] January [1] February [2] March [3] April [4] May [5] June [6] July [7] August [8] September [9] October [10] November [11] December Default: 3
- - DAY [`integer number`] : Day of Month. Minimum: 1 Maximum: 31 Default: 1
+ - MONTH [`choice`] : Month. Available Choices: [0] January [1] February [2] March [3] April [4] May [5] June [6] July [7] August [8] September [9] October [10] November [11] December Default: 4
+ - DAY [`integer number`] : Day of Month. Minimum: 1 Maximum: 31 Default: 12
- SUNSHINE [`floating point number`] : Sunshine Duration. Minimum: 0.000000 Maximum: 100.000000 Default: 50.000000 Daily sunshine duration as percentage of its potential maximum.
- Verbose [`integer number`] : Verbosity level, 0=silent, 1=tool name and success notification, 2=complete tool output.\n
=====================================
saga-gis/src/accessories/python/tools/io_webservices.py
=====================================
@@ -421,8 +421,8 @@ def USGS_Earthquake_Catalog(
- SHAPES [`input shapes`] : Shapes
- GRID [`optional input grid`] : Grid
- EARTHQUAKES [`output shapes`] : Earthquakes
- - DATE_START [`date`] : Start. Default: 2025-03-25
- - DATE_END [`date`] : End. Default: 2025-04-01
+ - DATE_START [`date`] : Start. Default: 2025-05-06
+ - DATE_END [`date`] : End. Default: 2025-05-13
- MAGNITUDE [`value range`] : Magnitude
- EXTENT [`choice`] : Extent. Available Choices: [0] user defined [1] shapes extent [2] grid system extent Default: 0
- GRID_SYSTEM [`grid system`] : Grid System
@@ -482,8 +482,8 @@ def run_tool_io_webservices_5(
- SHAPES [`input shapes`] : Shapes
- GRID [`optional input grid`] : Grid
- EARTHQUAKES [`output shapes`] : Earthquakes
- - DATE_START [`date`] : Start. Default: 2025-03-25
- - DATE_END [`date`] : End. Default: 2025-04-01
+ - DATE_START [`date`] : Start. Default: 2025-05-06
+ - DATE_END [`date`] : End. Default: 2025-05-13
- MAGNITUDE [`value range`] : Magnitude
- EXTENT [`choice`] : Extent. Available Choices: [0] user defined [1] shapes extent [2] grid system extent Default: 0
- GRID_SYSTEM [`grid system`] : Grid System
=====================================
saga-gis/src/accessories/python/tools/ta_lighting.py
=====================================
@@ -41,7 +41,7 @@ def Analytical_Hillshading(
- POSITION [`choice`] : Sun's Position. Available Choices: [0] azimuth and height [1] date and time Default: 0
- AZIMUTH [`floating point number`] : Azimuth. Minimum: 0.000000 Maximum: 360.000000 Default: 315.000000 Direction of the light source, measured in degree clockwise from the North direction.
- DECLINATION [`floating point number`] : Height. Minimum: 0.000000 Maximum: 90.000000 Default: 45.000000 Height of the light source, measured in degree above the horizon.
- - DATE [`date`] : Day. Default: 2025-04-01
+ - DATE [`date`] : Day. Default: 2025-05-13
- TIME [`floating point number`] : Hour. Minimum: 0.000000 Maximum: 24.000000 Default: 12.000000
- EXAGGERATION [`floating point number`] : Exaggeration. Default: 1.000000 The terrain exaggeration factor allows one to increase the shading contrasts in flat areas.
- UNIT [`choice`] : Unit. Available Choices: [0] radians [1] degree Default: 0
@@ -99,7 +99,7 @@ def run_tool_ta_lighting_0(
- POSITION [`choice`] : Sun's Position. Available Choices: [0] azimuth and height [1] date and time Default: 0
- AZIMUTH [`floating point number`] : Azimuth. Minimum: 0.000000 Maximum: 360.000000 Default: 315.000000 Direction of the light source, measured in degree clockwise from the North direction.
- DECLINATION [`floating point number`] : Height. Minimum: 0.000000 Maximum: 90.000000 Default: 45.000000 Height of the light source, measured in degree above the horizon.
- - DATE [`date`] : Day. Default: 2025-04-01
+ - DATE [`date`] : Day. Default: 2025-05-13
- TIME [`floating point number`] : Hour. Minimum: 0.000000 Maximum: 24.000000 Default: 12.000000
- EXAGGERATION [`floating point number`] : Exaggeration. Default: 1.000000 The terrain exaggeration factor allows one to increase the shading contrasts in flat areas.
- UNIT [`choice`] : Unit. Available Choices: [0] radians [1] degree Default: 0
@@ -193,8 +193,8 @@ def Potential_Incoming_Solar_Radiation(
- LOCATION [`choice`] : Location. Available Choices: [0] constant latitude [1] calculate from grid system Default: 0
- LATITUDE [`degree`] : Latitude. Minimum: -90.000000 Maximum: 90.000000 Default: 53.000000
- PERIOD [`choice`] : Time Period. Available Choices: [0] moment [1] day [2] range of days Default: 1 Momentum output will be in units of power [W/m²], time span will be in units of energy, either [kWh/m²], [kJ/m²], or [J/cm²].
- - DAY [`date`] : Day. Default: 2025-04-01
- - DAY_STOP [`date`] : Last Day. Default: 2025-04-01
+ - DAY [`date`] : Day. Default: 2025-05-13
+ - DAY_STOP [`date`] : Last Day. Default: 2025-05-13
- DAYS_STEP [`integer number`] : Resolution [d]. Minimum: 1 Default: 5 Time step size for a range of days calculation given in days.
- MOMENT [`floating point number`] : Moment [h]. Minimum: 0.000000 Maximum: 24.000000 Default: 12.000000
- HOUR_RANGE [`value range`] : Time Span [h]. Time span used for the calculation of daily radiation sums.
@@ -312,8 +312,8 @@ def run_tool_ta_lighting_2(
- LOCATION [`choice`] : Location. Available Choices: [0] constant latitude [1] calculate from grid system Default: 0
- LATITUDE [`degree`] : Latitude. Minimum: -90.000000 Maximum: 90.000000 Default: 53.000000
- PERIOD [`choice`] : Time Period. Available Choices: [0] moment [1] day [2] range of days Default: 1 Momentum output will be in units of power [W/m²], time span will be in units of energy, either [kWh/m²], [kJ/m²], or [J/cm²].
- - DAY [`date`] : Day. Default: 2025-04-01
- - DAY_STOP [`date`] : Last Day. Default: 2025-04-01
+ - DAY [`date`] : Day. Default: 2025-05-13
+ - DAY_STOP [`date`] : Last Day. Default: 2025-05-13
- DAYS_STEP [`integer number`] : Resolution [d]. Minimum: 1 Default: 5 Time step size for a range of days calculation given in days.
- MOMENT [`floating point number`] : Moment [h]. Minimum: 0.000000 Maximum: 24.000000 Default: 12.000000
- HOUR_RANGE [`value range`] : Time Span [h]. Time span used for the calculation of daily radiation sums.
=====================================
saga-gis/src/saga_core/saga_api/mat_indexing.cpp
=====================================
@@ -94,6 +94,27 @@ bool CSG_Index::Destroy(void)
}
+///////////////////////////////////////////////////////////
+// //
+///////////////////////////////////////////////////////////
+
+//---------------------------------------------------------
+bool CSG_Index::Invert(void)
+{
+ if( m_nValues > 0 )
+ {
+ for(sLong a=0, b=m_nValues-1; a<b; a++, b--)
+ {
+ sLong i = m_Index[a]; m_Index[a] = m_Index[b]; m_Index[b] = i;
+ }
+
+ return( true );
+ }
+
+ return( false );
+}
+
+
///////////////////////////////////////////////////////////
// //
///////////////////////////////////////////////////////////
=====================================
saga-gis/src/saga_core/saga_api/mat_tools.h
=====================================
@@ -230,6 +230,8 @@ public:
bool Destroy (void);
+ bool Invert (void);
+
void Show_Progress (bool bProgress = true);
bool Add_Entry (sLong Position = -1);
=====================================
saga-gis/src/saga_core/saga_api/pointcloud.h
=====================================
@@ -183,6 +183,9 @@ public:
bool Set_NoData (sLong Index, int Field) { return( Set_Value(Index, Field, Get_NoData_Value()) );}
bool is_NoData (sLong Index, int Field) const { return( is_NoData_Value(Get_Value(Index, Field)) ); }
+ virtual bool Get_Value (sLong Index, int Field, double &Value) const { Value = _Get_Field_Value(m_Points[Index], Field); return( Index >= 0 && Index < m_nRecords ); }
+ virtual bool Get_Attribute (sLong Index, int Field, double &Value) const { return( Get_Value(Index, Field + 3, Value) ); }
+
virtual bool Set_Value ( int Field, const SG_Char *Value) { return( _Set_Field_Value(m_Cursor, Field, Value) ); }
virtual bool Get_Value ( int Field, CSG_String &Value) const { return( _Get_Field_Value(m_Cursor, Field, Value) ); }
virtual bool Set_Value (sLong Index, int Field, const SG_Char *Value) { return( _Set_Field_Value(Index >= 0 && Index < m_nRecords ? m_Points[Index] : NULL, Field, Value) ); }
=====================================
saga-gis/src/saga_core/saga_api/saga_api.h
=====================================
@@ -86,8 +86,8 @@
//---------------------------------------------------------
#define SAGA_MAJOR_VERSION 9
#define SAGA_MINOR_VERSION 8
-#define SAGA_RELEASE_NUMBER 0
-#define SAGA_VERSION SG_T("9.8.0")
+#define SAGA_RELEASE_NUMBER 1
+#define SAGA_VERSION SG_T("9.8.1")
///////////////////////////////////////////////////////////
=====================================
saga-gis/src/saga_core/saga_api/table.cpp
=====================================
@@ -639,10 +639,14 @@ bool CSG_Table::Set_Field_Type(int Field, TSG_Data_Type Type)
}
else if( pValue->Get_Type() == SG_TABLE_VALUE_TYPE_String && SG_Data_Type_is_Numeric(Type) )
{
- if( !pRecord->m_Values[Field]->Set_Value(pValue->asString()) )
+ CSG_String String(pValue->asString()); double Value;
+
+ if( !String.asDouble(Value) )
{
- pRecord->m_Values[Field]->Set_Value(Get_NoData_Value());
+ Value = Get_NoData_Value();
}
+
+ pRecord->m_Values[Field]->Set_Value(Value);
}
else
{
@@ -1406,21 +1410,25 @@ bool CSG_Table::Del_Index(void)
}
//---------------------------------------------------------
-bool CSG_Table::Toggle_Index(int iField)
+bool CSG_Table::Toggle_Index(int Field)
{
- if( iField < 0 || iField >= m_nFields )
+ if( Field < 0 || Field >= m_nFields )
{
return( false );
}
- if( iField != Get_Index_Field(0) )
+ if( Field != Get_Index_Field(0) )
{
- return( Set_Index(iField, TABLE_INDEX_Ascending) );
+ Del_Index();
+
+ return( Set_Index(Field, TABLE_INDEX_Ascending) );
}
if( Get_Index_Order(0) == TABLE_INDEX_Ascending )
{
- return( Set_Index(iField, TABLE_INDEX_Descending) );
+ m_Index_Fields[0] = -m_Index_Fields[0]; m_Index.Invert();
+
+ return( true );
}
return( Del_Index() );
@@ -1456,20 +1464,16 @@ public:
switch( m_pTable->Get_Field_Type(m_Field) )
{
- default: {
- double d =
- m_pTable->Get_Record(a)->asDouble(m_Field) -
- m_pTable->Get_Record(b)->asDouble(m_Field);
-
- return( d < 0. ? -1 : d > 0. ? 1 : 0 );
- }
+ default: { double Value[2] = { 0., 0. };
+ m_pTable->Get_Value(a, m_Field, Value[0]);
+ m_pTable->Get_Value(b, m_Field, Value[1]);
+ return( Value[0] < Value[1] ? -1 : Value[0] > Value[1] ? 1 : 0 ); }
case SG_DATATYPE_String:
- case SG_DATATYPE_Date :
- return( SG_STR_CMP(
- m_pTable->Get_Record(a)->asString(m_Field),
- m_pTable->Get_Record(b)->asString(m_Field))
- );
+ case SG_DATATYPE_Date : { CSG_String Value[2];
+ m_pTable->Get_Value(a, m_Field, Value[0]);
+ m_pTable->Get_Value(b, m_Field, Value[1]);
+ return( Value[0].Cmp(Value[1]) ); }
}
}
@@ -1537,28 +1541,29 @@ public:
virtual int Compare (const sLong _a, const sLong _b)
{
- int Difference = 0;
+ int Difference = 0;
for(int i=0; !Difference && i<m_nFields; i++)
{
- int Field = m_Fields[i];
+ int Field = m_Fields[i];
sLong a = m_Ascending[i] ? _a : _b;
sLong b = m_Ascending[i] ? _b : _a;
switch( m_pTable->Get_Field_Type(Field) )
{
- default: {
- double d = m_pTable->Get_Record(a)->asDouble(Field);
- d -= m_pTable->Get_Record(b)->asDouble(Field);
- Difference = d < 0. ? -1 : d > 0. ? 1 : 0;
- } break;
+ default: { double Value[2] = { 0., 0. };
+ m_pTable->Get_Value(a, Field, Value[0]);
+ m_pTable->Get_Value(b, Field, Value[1]);
+ Difference = Value[0] < Value[1] ? -1 : Value[0] > Value[1] ? 1 : 0;
+ break; }
case SG_DATATYPE_String:
- case SG_DATATYPE_Date :
- CSG_String s (m_pTable->Get_Record(a)->asString(Field));
- Difference = s.Cmp(m_pTable->Get_Record(b)->asString(Field));
- break;
+ case SG_DATATYPE_Date : { CSG_String Value[2];
+ m_pTable->Get_Value(a, Field, Value[0]);
+ m_pTable->Get_Value(b, Field, Value[1]);
+ Difference = Value[0].Cmp(Value[1]);
+ break; }
}
}
=====================================
saga-gis/src/saga_core/saga_cmd/man/saga_cmd.1
=====================================
@@ -133,7 +133,7 @@
.\" ========================================================================
.\"
.IX Title "SAGA_CMD 1"
-.TH SAGA_CMD 1 "2021-07-07" "9.8.0" " "
+.TH SAGA_CMD 1 "2021-07-07" "9.8.1" " "
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
=====================================
saga-gis/src/saga_core/saga_gui/dlg_about.cpp
=====================================
@@ -178,22 +178,22 @@ wxString CDLG_About::_Get_Version(void)
#if defined(COMPILER)
if( *COMPILER )
{
- s += "<hr><i>Compiled with</i><br>[ " COMPILER " ]<br>";
+ s += "<hr><i>Compiled with</i><br>[ " COMPILER " ]<br>";
#if defined(_SAGA_MSW) && defined(_MSC_VER) && _MSC_VER >= 1900
- s += "[ Microsoft Visual Studio "
+ s += "[ Microsoft Visual Studio ";
#if _MSC_VER == 1900
- "2015 (14)"
- #elif _MSC_VER <= 1920
- "2017 (15)"
- #elif _MSC_VER <= 1930
- "2019 (16)"
- #elif _MSC_VER <= 1940
- "2022 (17)"
+ s += "2015 (14)";
+ #elif _MSC_VER >= 1910 && _MSC_VER < 1920
+ s += "2017 (15)";
+ #elif _MSC_VER >= 1920 && _MSC_VER < 1930
+ s += wxString::Format("2019 (16.%d)", _MSC_VER - 1920);
+ #elif _MSC_VER >= 1930 && _MSC_VER < 1950
+ s += wxString::Format("2022 (17.%d)", _MSC_VER - 1930);
#else
- "(unknown version)"
+ s += "(unknown version)";
#endif
- " ]<br>";
+ s += " ]<br>";
#endif
}
#endif
=====================================
saga-gis/src/saga_core/saga_gui/man/saga_gui.1
=====================================
@@ -124,7 +124,7 @@
.\" ========================================================================
.\"
.IX Title "SAGA_GUI 1"
-.TH SAGA_GUI 1 "2021-07-07" "9.8.0" " "
+.TH SAGA_GUI 1 "2021-07-07" "9.8.1" " "
.\" For nroff, turn off justification. Always turn off hyphenation; it makes
.\" way too many mistakes in technical documents.
.if n .ad l
=====================================
saga-gis/src/saga_core/saga_gui/saga_frame.cpp
=====================================
@@ -1249,13 +1249,21 @@ wxMenuBar * CSAGA_Frame::_Create_MenuBar(void)
//-----------------------------------------------------
wxMenuBar *pMenuBar = new wxMenuBar;
- pMenuBar->Append(g_pData ->Get_Menu_Files()->Get_Menu(), _TL("File" )); // 0
- pMenuBar->Append(g_pTools->Get_Menu_Tools() , _TL("Geoprocessing")); // 1
- pMenuBar->Append(pMenu_Window , _TL("Window" )); // 2
- pMenuBar->Append(pMenu_Help , _TL("?" )); // 3
+#if defined(__WXMAC__)
+ wxMenu *OSX_pMenu_Window = pMenu_Window; pMenu_Window = new wxMenu;
+#endif
+
+ pMenuBar->Append(g_pData ->Get_Menu_Files()->Get_Menu(), _TL("File" )); // 0
+ pMenuBar->Append(g_pTools->Get_Menu_Tools() , _TL("Geoprocessing")); // 1
+ pMenuBar->Append(pMenu_Window , _TL("Window" )); // 2
+ pMenuBar->Append(pMenu_Help , _TL("?" )); // 3
SetMenuBar(pMenuBar);
+#if defined(__WXMAC__)
+ pMenuBar->Replace(2, OSX_pMenu_Window , _TL("Window" )); // 2
+#endif
+
return( pMenuBar );
}
=====================================
saga-gis/src/saga_core/saga_gui/wksp_data_menu_file.cpp
=====================================
@@ -210,7 +210,7 @@ void CWKSP_Data_Menu_File::Update(void)
//-----------------------------------------------------
else
{
- if( m_pMenu->GetMenuItemCount() == m_Offset )
+ if( m_pMenu->GetMenuItemCount() == m_Offset && m_Offset > 0 )
{
m_pMenu->AppendSeparator();
}
=====================================
saga-gis/src/saga_core/saga_gui/wksp_grid.cpp
=====================================
@@ -824,17 +824,17 @@ void CWKSP_Grid::_LUT_Create(void)
Colors.Set_Count(Get_Grid()->Get_NCells());
}
- double Minimum, Maximum = Get_Grid()->Get_Histogram().Get_Quantile(0.);
+ double Minimum, Maximum = Get_Grid()->Get_Min();
for(int iClass=0; iClass<Colors.Get_Count(); iClass++)
{
- Minimum = Maximum;
- Maximum = Get_Grid()->Get_Histogram().Get_Quantile((1. + iClass) / Colors.Get_Count());
+ Minimum = Maximum; double Quantile = (1. + iClass) / (double)Colors.Get_Count();
+ Maximum = Get_Grid()->Get_Histogram().Get_Quantile(Quantile);
- CSG_String Name = SG_Get_String(Minimum, -2)
- + " - " + SG_Get_String(Maximum, -2);
+ CSG_String Name = SG_Get_String(Minimum, -2)
+ + " - " + SG_Get_String(Maximum, -2);
- CSG_Table_Record *pClass = Classes.Add_Record();
+ CSG_Table_Record *pClass = Classes.Add_Record();
pClass->Set_Value(0, Colors[iClass]); // Color
pClass->Set_Value(1, Name ); // Name
=====================================
saga-gis/src/saga_core/saga_gui/wksp_layer.cpp
=====================================
@@ -965,7 +965,8 @@ bool CWKSP_Layer::Set_Colors(CSG_Colors *pColors)
//---------------------------------------------------------
bool CWKSP_Layer::Set_Color_Range(double Minimum, double Maximum)
{
- m_Parameters.Set_Parameter("STRETCH_DEFAULT" , 3); // manual
+ m_Parameters.Set_Parameter("COLORS_TYPE" , CLASSIFY_GRADUATED);
+ m_Parameters.Set_Parameter("STRETCH_DEFAULT" , _TL("Manual")); // manual
m_Parameters.Set_Parameter("METRIC_ZRANGE.MIN", Minimum < Maximum ? Minimum : Maximum);
m_Parameters.Set_Parameter("METRIC_ZRANGE.MAX", Minimum < Maximum ? Maximum : Minimum);
@@ -1093,12 +1094,6 @@ bool CWKSP_Layer::Show(int Flags)
return( false );
}
-//---------------------------------------------------------
-bool CWKSP_Layer::Update(CWKSP_Layer *pChanged)
-{
- return( pChanged == this );
-}
-
//---------------------------------------------------------
void CWKSP_Layer::On_Update_Views(bool bAll)
{
=====================================
saga-gis/src/saga_core/saga_gui/wksp_layer.h
=====================================
@@ -107,7 +107,6 @@ public:
virtual bool Show (class CWKSP_Map *pMap);
virtual bool Show (int Flags = 0);
- virtual bool Update (CWKSP_Layer *pChanged);
virtual bool View_Closes (class MDI_ChildFrame *pView);
virtual bool asImage (CSG_Grid *pImage) { return( false ); }
=====================================
saga-gis/src/saga_core/saga_gui/wksp_pointcloud.cpp
=====================================
@@ -473,14 +473,14 @@ void CWKSP_PointCloud::On_Parameters_Changed(void)
m_pClassify->Set_Mode(CLASSIFY_SINGLE);
}
- else if( m_Parameters("COLORS_TYPE")->asInt() == CLASSIFY_OVERLAY )
+ else if( m_Parameters("COLORS_TYPE")->asInt() == 4 ) // CLASSIFY_RGB
{
m_pClassify->Set_Mode(CLASSIFY_RGB);
}
+ //-----------------------------------------------------
m_pObject->Set_Max_Samples(Get_PointCloud()->Get_Count() * (m_Parameters("MAX_SAMPLES")->asDouble() / 100.) );
- //-----------------------------------------------------
long DefColor = m_Parameters("SINGLE_COLOR")->asColor();
m_Color_Pen = wxColour(SG_GET_R(DefColor), SG_GET_G(DefColor), SG_GET_B(DefColor));
@@ -513,6 +513,20 @@ int CWKSP_PointCloud::On_Parameter_Changed(CSG_Parameters *pParameters, CSG_Para
pParameters->Get_Parameter("METRIC_ZRANGE")->asRange()->Set_Range(min, max);
}
+
+ if( pParameter->Cmp_Identifier("LUT_ATTRIB") || (pParameter->Cmp_Identifier("COLORS_TYPE") && pParameter->asInt() == 1) ) // CLASSIFY_LUT
+ {
+ int Field = (*pParameters)("LUT_ATTRIB")->asInt();
+
+ if( Field >= 0 && Field < Get_PointCloud()->Get_Field_Count() )
+ {
+ TSG_Data_Type Type = SG_Data_Type_is_Numeric(Get_PointCloud()->Get_Field_Type(Field))
+ ? SG_DATATYPE_Double : SG_DATATYPE_String;
+
+ (*pParameters)("LUT")->asTable()->Set_Field_Type(LUT_MIN, Type);
+ (*pParameters)("LUT")->asTable()->Set_Field_Type(LUT_MAX, Type);
+ }
+ }
}
//-----------------------------------------------------
@@ -717,10 +731,11 @@ void CWKSP_PointCloud::_LUT_Create(void)
{
CSG_Table_Record &Class = *Classes.Add_Record();
- sLong i = (sLong)(0.5 + iClass * Step);
+ sLong i = (sLong)(Step * (1 + iClass));
- double Minimum = Maximum;
- Maximum = i < Get_PointCloud()->Get_Count() ? Get_PointCloud()->Get_Value(Index[i], Field) : Get_PointCloud()->Get_Maximum(Field) + 1.;
+ double Minimum = Maximum; Maximum = i < Get_PointCloud()->Get_Count()
+ ? Get_PointCloud()->Get_Value(Index[i], Field)
+ : Get_PointCloud()->Get_Maximum(Field) + 1.;
CSG_String Name(SG_Get_String(Minimum, -2) + " - " + SG_Get_String(Maximum, -2));
=====================================
saga-gis/src/saga_core/saga_gui/wksp_shapes.cpp
=====================================
@@ -114,7 +114,7 @@ wxString CWKSP_Shapes::Get_Description(void)
wxString s;
//-----------------------------------------------------
- s += wxString::Format("<h4>%s</h4>", _TL("Shapes"));
+ s += "<h4>" + Get_Manager()->Get_Name() + "</h4>";
s += "<table border=\"0\">";
@@ -547,9 +547,6 @@ void CWKSP_Shapes::On_Create_Parameters(void)
_TL("snap distance in screen units (pixels)"),
10, 0, true
);
-
- m_Parameters("LUT")->asTable()->Set_Field_Type(LUT_MIN, SG_DATATYPE_String);
- m_Parameters("LUT")->asTable()->Set_Field_Type(LUT_MAX, SG_DATATYPE_String);
}
@@ -591,13 +588,6 @@ void CWKSP_Shapes::On_Parameters_Changed(void)
case 1: // CLASSIFY_LUT
m_fValue = m_Parameters("LUT_ATTRIB" )->asInt(); if( m_fValue >= Get_Shapes()->Get_Field_Count() ) { m_fValue = -1; }
m_fNormal = -1;
-
- {
- TSG_Data_Type Type = SG_Data_Type_is_Numeric(Get_Shapes()->Get_Field_Type(m_Parameters("LUT_ATTRIB")->asInt())) ? SG_DATATYPE_Double : SG_DATATYPE_String;
-
- m_Parameters("LUT")->asTable()->Set_Field_Type(LUT_MIN, Type);
- m_Parameters("LUT")->asTable()->Set_Field_Type(LUT_MAX, Type);
- }
break;
case 2: // CLASSIFY_DISCRETE
@@ -741,25 +731,29 @@ int CWKSP_Shapes::On_Parameter_Changed(CSG_Parameters *pParameters, CSG_Paramete
|| pParameter->Cmp_Identifier("METRIC_NORFMT") )
{
Set_Metrics(
- pParameters->Get_Parameter("METRIC_ATTRIB")->asInt(),
- pParameters->Get_Parameter("METRIC_NORMAL")->asInt(),
- pParameters->Get_Parameter("METRIC_NORFMT")->asInt()
+ (*pParameters)("METRIC_ATTRIB")->asInt(),
+ (*pParameters)("METRIC_NORMAL")->asInt(),
+ (*pParameters)("METRIC_NORFMT")->asInt()
);
- pParameters->Get_Parameter("METRIC_ZRANGE")->asRange()->Set_Range(
+ (*pParameters)("METRIC_ZRANGE")->asRange()->Set_Range(
m_Metrics.Get_Minimum(),
m_Metrics.Get_Maximum()
);
}
- if( pParameter->Cmp_Identifier("LUT_ATTRIB")
- && pParameter->asInt() >= 0 && pParameter->asInt() < Get_Shapes()->Get_Field_Count() )
+ if( pParameter->Cmp_Identifier("LUT_ATTRIB") || (pParameter->Cmp_Identifier("COLORS_TYPE") && pParameter->asInt() == 1) ) // CLASSIFY_LUT
{
- TSG_Data_Type Type = SG_Data_Type_is_Numeric(Get_Shapes()->Get_Field_Type(pParameter->asInt()))
- ? SG_DATATYPE_Double : SG_DATATYPE_String;
+ int Field = (*pParameters)("LUT_ATTRIB")->asInt();
+
+ if( Field >= 0 && Field < Get_Shapes()->Get_Field_Count() )
+ {
+ TSG_Data_Type Type = SG_Data_Type_is_Numeric(Get_Shapes()->Get_Field_Type(Field))
+ ? SG_DATATYPE_Double : SG_DATATYPE_String;
- pParameters->Get_Parameter("LUT")->asTable()->Set_Field_Type(LUT_MIN, Type);
- pParameters->Get_Parameter("LUT")->asTable()->Set_Field_Type(LUT_MAX, Type);
+ (*pParameters)("LUT")->asTable()->Set_Field_Type(LUT_MIN, Type);
+ (*pParameters)("LUT")->asTable()->Set_Field_Type(LUT_MAX, Type);
+ }
}
}
=====================================
saga-gis/src/saga_core/saga_gui/wksp_shapes_type.cpp
=====================================
@@ -83,7 +83,14 @@ CWKSP_Shapes_Type::CWKSP_Shapes_Type(TSG_Shape_Type Type)
//---------------------------------------------------------
wxString CWKSP_Shapes_Type::Get_Name(void)
{
- return( SG_Get_ShapeType_Name(m_Shape_Type).c_str() );
+ switch( m_Shape_Type )
+ {
+ case SHAPE_TYPE_Point : return( _TL("Points" ) );
+ case SHAPE_TYPE_Points : return( _TL("Multiple Points") );
+ case SHAPE_TYPE_Line : return( _TL("Lines" ) );
+ case SHAPE_TYPE_Polygon: return( _TL("Polygons" ) );
+ default : return( _TL("Features" ) );
+ }
}
//---------------------------------------------------------
=====================================
saga-gis/src/saga_core/saga_gui/wksp_tool.cpp
=====================================
@@ -332,8 +332,6 @@ bool CWKSP_Tool::Execute(bool bDialog)
SG_UI_ProgressAndMsg_Reset();
- g_pActive->Get_Parameters()->Update_Parameters(m_pTool->Get_Parameters(), false);
-
if( g_pTools && g_pTools->Do_Beep() )
{
Do_Beep();
@@ -341,6 +339,8 @@ bool CWKSP_Tool::Execute(bool bDialog)
}
m_pTool->On_After_Execution();
+
+ g_pActive->Get_Parameters()->Update_Parameters(m_pTool->Get_Parameters(), false);
}
if( !bResult || !m_pTool->is_Interactive() )
=====================================
saga-gis/src/tools/imagery/imagery_tools/spot_scene_import.cpp
=====================================
@@ -399,6 +399,7 @@ bool CSPOT_Scene_Import::Georeference(const CSG_MetaData &Metadata, CSG_Grids &B
{
int UTM_Zone = Parameters("UTM_ZONE" )->asInt();
bool UTM_South = Parameters("UTM_SOUTH")->asBool();
+
Set_Reference_UTM(Frame, UTM_Zone, UTM_South);
xField = 4; yField = 5; Projection.Set_UTM_WGS84(UTM_Zone, UTM_South);
@@ -469,8 +470,7 @@ bool CSPOT_Scene_Import::Georeference(const CSG_MetaData &Metadata, CSG_Grids &B
&& pTool->Set_Parameter("XFIELD" , xField)
&& pTool->Set_Parameter("YFIELD" , yField)
&& pTool->Set_Parameter("METHOD" , 0) // automatic
- && pTool->Set_Parameter("CRS_WKT" , Projection.Get_WKT2())
- && pTool->Set_Parameter("CRS_PROJ" , Projection.Get_PROJ())
+ && pTool->Set_Parameter("CRS_STRING" , Projection.Get_WKT())
&& pTool->Set_Parameter("TARGET_USER_SIZE", Cellsize)
&& pTool->Set_Parameter("TARGET_USER_XMIN", Extent.xMin)
&& pTool->Set_Parameter("TARGET_USER_XMAX", Extent.xMax)
@@ -559,9 +559,7 @@ bool CSPOT_Scene_Import::Set_Reference_UTM(CSG_Shapes &Frame, int UTM_Zone, bool
&& pTool->Set_Parameter("SOURCE_Y", "FRAME_LAT")
&& pTool->Set_Parameter("TARGET_X", "FRAME_X" )
&& pTool->Set_Parameter("TARGET_Y", "FRAME_Y" )
- && pTool->Set_Parameter("SOURCE_CRS.CRS_METHOD", 0) // Definition String
&& pTool->Set_Parameter("SOURCE_CRS.CRS_STRING", GCS.Get_WKT())
- && pTool->Set_Parameter("TARGET_CRS.CRS_METHOD", 0) // Definition String
&& pTool->Set_Parameter("TARGET_CRS.CRS_STRING", UTM.Get_WKT())
&& pTool->Execute() )
{
=====================================
saga-gis/src/tools/imagery/imagery_vigra/vigra_random_forest.cpp
=====================================
@@ -887,7 +887,7 @@ CViGrA_RF_Presence::CViGrA_RF_Presence(void)
Parameters.Add_Grid("",
"PROBABILITY" , _TL("Presence Probability"),
_TL(""),
- PARAMETER_OUTPUT_OPTIONAL
+ PARAMETER_OUTPUT
);
Parameters.Add_Shapes("",
=====================================
saga-gis/src/tools/projection/pj_georeference/Georef_Grid.cpp
=====================================
@@ -402,7 +402,14 @@ CSG_Data_Object * CGeoref_Grid::Get_Target(CSG_Data_Object *pSource, TSG_Data_Ty
Type = pSource->asGrid()->Get_Type();
}
- pTarget = m_Grid_Target.Get_Grid("TARGET_GRID", Type != SG_DATATYPE_Undefined ? Type : pSource->asGrid()->Get_Type());
+ if( m_bList )
+ {
+ pTarget = SG_Create_Grid(m_Grid_Target.Get_System(), Type);
+ }
+ else
+ {
+ pTarget = m_Grid_Target.Get_Grid("TARGET_GRID", Type);
+ }
if( pTarget )
{
=====================================
saga-gis/src/tools/visualization/vis_3d_viewer/3d_viewer_multiple_grids.cpp
=====================================
@@ -118,8 +118,7 @@ C3D_Viewer_Multiple_Grids_Panel::C3D_Viewer_Multiple_Grids_Panel(wxWindow *pPare
{
m_pGrids = pGrids;
- m_Parameters.Add_Colors("GENERAL", "COLORS" , _TL("Colours" ), _TL(""));
- m_Parameters.Add_Bool ("COLORS" , "COLORS_GRAD", _TL("Graduated" ), _TL(""), true);
+ m_Parameters.Add_Bool ("GENERAL", "COLORS_GRAD", _TL("Graduated" ), _TL(""), true);
m_Parameters.Add_Choice("GENERAL", "SHADING" , _TL("Light Source"), _TL(""), CSG_String::Format("%s|%s", _TL("no"), _TL("yes")), 1);
m_Parameters.Add_Double("SHADING", "SHADE_DEC" , _TL("Height" ), _TL(""), 45., -180., true, 180., true);
@@ -216,7 +215,7 @@ int C3D_Viewer_Multiple_Grids_Panel::Get_Color(double Value)
double c = m_Color_Scale * (Value - m_Color_Min);
- return( m_Color_bGrad ? m_Colors.Get_Interpolated(c) : m_Colors[(int)c] );
+ return( m_Color_bGrad ? m_Colors.Get_Interpolated(c) : m_Colors.Get_Color((int)(0.5 + c)) );
}
@@ -266,16 +265,15 @@ inline bool C3D_Viewer_Multiple_Grids_Panel::Get_Node(CSG_Grid *pGrid, int x, in
//---------------------------------------------------------
void C3D_Viewer_Multiple_Grids_Panel::Draw_Grid(CSG_Grid *pGrid)
{
- //-----------------------------------------------------
if( !SG_UI_DataObject_Colors_Get(pGrid, &m_Colors) )
{
- m_Colors = *m_Parameters("COLORS")->asColors();
+ m_Colors.Set_Default();
}
m_Color_bGrad = m_Parameters("COLORS_GRAD")->asBool();
m_Color_Min = pGrid->Get_Min();
- m_Color_Scale = pGrid->Get_Range() > 0. ? m_Colors.Get_Count() / pGrid->Get_Range() : 0.;
+ m_Color_Scale = pGrid->Get_Range() > 0. ? (m_Colors.Get_Count() - 1) / pGrid->Get_Range() : 0.;
//-----------------------------------------------------
CSG_Vector LightSource;
=====================================
saga-gis/version.cmake
=====================================
@@ -1,7 +1,7 @@
# The version number.
set (SAGA_VERSION_MAJOR 9)
set (SAGA_VERSION_MINOR 8)
-set (SAGA_VERSION_PATCH 0)
+set (SAGA_VERSION_PATCH 1)
# get git commit hash (or dirty if git is not installed)
View it on GitLab: https://salsa.debian.org/debian-gis-team/saga/-/commit/6a8f95cb3fcd9f4a6c6aa13ae53c0c56a274187c
--
View it on GitLab: https://salsa.debian.org/debian-gis-team/saga/-/commit/6a8f95cb3fcd9f4a6c6aa13ae53c0c56a274187c
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-grass-devel/attachments/20250512/67b81509/attachment-0001.htm>
More information about the Pkg-grass-devel
mailing list