//--------------------------------------------------------- CSoil_Texture_Table::CSoil_Texture_Table(void) { Set_Name (_TL("Soil Texture Classification for Tables")); Set_Author ("O.Conrad (c) 2015"); Set_Description (Description); //----------------------------------------------------- CSG_Parameter *pNode = Parameters.Add_Table( NULL , "TABLE" , _TL("Table"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Table_Field( pNode , "SAND" , _TL("Sand"), _TL("sand content given as percentage"), true ); Parameters.Add_Table_Field( pNode , "SILT" , _TL("Silt"), _TL("silt content given as percentage"), true ); Parameters.Add_Table_Field( pNode , "CLAY" , _TL("Clay"), _TL("clay content given as percentage"), true ); Parameters.Add_Table_Field( pNode , "TEXTURE" , _TL("Texture"), _TL("soil texture"), true ); }
//--------------------------------------------------------- CSoil_Texture::CSoil_Texture(void) { Set_Name (_TL("Soil Texture Classification")); Set_Author ("Gianluca Massei (c) 2007 ([email protected])"); Set_Description (Description); //----------------------------------------------------- Parameters.Add_Grid( NULL, "SAND" , _TL("Sand"), _TL("sand content given as percentage"), PARAMETER_INPUT_OPTIONAL ); Parameters.Add_Grid( NULL, "SILT" , _TL("Silt"), _TL("silt content given as percentage"), PARAMETER_INPUT_OPTIONAL ); Parameters.Add_Grid( NULL, "CLAY" , _TL("Clay"), _TL("clay content given as percentage"), PARAMETER_INPUT_OPTIONAL ); Parameters.Add_Grid( NULL, "TEXTURE" , _TL("Soil Texture"), _TL("soil texture"), PARAMETER_OUTPUT, true, SG_DATATYPE_Char ); Parameters.Add_Grid( NULL, "SUM" , _TL("Sum"), _TL("Sum of percentages"), PARAMETER_OUTPUT_OPTIONAL ); }
CLakeFloodInteractive::CLakeFloodInteractive(void) { Set_Name (_TL("Lake Flood")); Set_Author (SG_T("Volker Wichmann (c) 2005-2010")); Parameters.Set_Description(_TW( "This tool works interactively and can be used to flood a digital elevation model for a given water depth or water level. " "Execute the tool and use the action tool on a cell to flood the digital elevation model from this " "location. Execute the tool again to terminate tool operation.\r\n") ); Parameters.Add_Grid( NULL, "ELEV", _TL("DEM"), _TL("digital elevation model"), PARAMETER_INPUT ); Parameters.Add_Value( NULL, "WATER", _TL("Water"), _TL("local water depth or absolute water level at the user specified cell"), PARAMETER_TYPE_Double, 2.5 ); Parameters.Add_Value( NULL, "LEVEL", _TL("Absolute Water Level"), _TL("check this in case parameter 'water' is absolute water level"), PARAMETER_TYPE_Bool, false ); Parameters.Add_Grid( NULL, "OUTDEPTH", _TL("Lake"), _TL("extent of lake, coded with local water depth"), PARAMETER_OUTPUT ); Parameters.Add_Grid( NULL, "OUTLEVEL", _TL("Surface"), _TL("Flooded digital elevation model"), PARAMETER_OUTPUT ); }
//--------------------------------------------------------- CTable_Load::CTable_Load(void) { Set_Name (_TL("Import Table")); Set_Author ("O.Conrad (c) 2013"); Set_Description (_TW( "Imports a table from a PostgreSQL database." )); Parameters.Add_Table("", "TABLE" , _TL("Table"), _TL(""), PARAMETER_OUTPUT ); Parameters.Add_Choice("", "TABLES" , _TL("Tables"), _TL(""), "" ); }
//--------------------------------------------------------- CPoints_From_MultiPoints::CPoints_From_MultiPoints(void) { Set_Name (_TL("Convert Multipoints to Points")); Set_Author (_TL("O.Conrad (c) 2011")); Set_Description (_TW( "Converts multipoints to points. " )); Parameters.Add_Shapes( NULL , "MULTIPOINTS" , _TL("Multipoints"), _TL(""), PARAMETER_INPUT, SHAPE_TYPE_Points ); Parameters.Add_Shapes( NULL , "POINTS" , _TL("Points"), _TL(""), PARAMETER_OUTPUT, SHAPE_TYPE_Point ); }
//--------------------------------------------------------- CGrid_Fill::CGrid_Fill(void) { Set_Name (_TL("Change Grid Values - Flood Fill")); Set_Author ("O.Conrad (c) 2018"); Set_Description (_TW( "A flood fill algorithm will be used for replacement of grid cell values " "starting at the positions of the input points. " "If one or more points are selected, only these will be processed, otherwise all. " "If the target grid is not set, the changes will be applied to the original grid. " )); //----------------------------------------------------- Parameters.Add_Shapes("", "POINTS" , _TL("Points"), _TL(""), PARAMETER_INPUT, SHAPE_TYPE_Point ); Parameters_Add(Parameters); }
//--------------------------------------------------------- CSelection_Copy::CSelection_Copy(void) { Set_Name (_TL("Copy Selection to New Shapes Layer")); Set_Author (SG_T("Victor Olaya (c) 2004")); Set_Description (_TW( "Copies selected shapes to a new shapes layer." )); Parameters.Add_Shapes( NULL , "INPUT" , _TL("Input"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Shapes( NULL , "OUTPUT" , _TL("Output"), _TL(""), PARAMETER_OUTPUT ); }
//--------------------------------------------------------- CSlopeLength::CSlopeLength(void) { Set_Name (_TL("Slope Length")); Set_Author (SG_T("V.Olaya (c) 2004")); Set_Description (_TW( "" )); Parameters.Add_Grid( NULL , "DEM" , _TL("Elevation"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Grid( NULL , "LENGTH" , _TL("Slope Length"), _TL(""), PARAMETER_OUTPUT ); }
//--------------------------------------------------------- CGrid_Gaps::CGrid_Gaps(void) { //----------------------------------------------------- Set_Name(_TL("Close Gaps")); Set_Author (SG_T("(c) 2002 by O.Conrad")); Set_Description (_TW( "Close gaps of a grid data set (i.e. eliminate no data values). " "If the target is not set, the changes will be stored to the original grid. ") ); //----------------------------------------------------- Parameters.Add_Grid( NULL, "INPUT" , _TL("Grid"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Grid( NULL, "MASK" , _TL("Mask"), _TL(""), PARAMETER_INPUT_OPTIONAL ); Parameters.Add_Grid( NULL, "RESULT" , _TL("Changed Grid"), _TL(""), PARAMETER_OUTPUT_OPTIONAL ); //----------------------------------------------------- Parameters.Add_Value( NULL, "THRESHOLD" , _TL("Tension Threshold"), _TL(""), PARAMETER_TYPE_Double, 0.1 ); }
//--------------------------------------------------------- CShapes_Load::CShapes_Load(void) { Set_Name (_TL("Import Shapes from PostGIS")); Set_Author (SG_T("O.Conrad (c) 2013")); Set_Description (_TW( "Imports shapes from a PostGIS database." )); Parameters.Add_Shapes( NULL , "SHAPES" , _TL("Shapes"), _TL(""), PARAMETER_OUTPUT ); Parameters.Add_Choice( NULL , "TABLES" , _TL("Tables"), _TL(""), "" ); }
//--------------------------------------------------------- Ctest_stream_power_model::Ctest_stream_power_model(void) { Set_Name (_TL("Test Stream Power Model")); Set_Author (SG_T("J. D. Pelletier 2008, J. Tunnicliffe and S. Masoud-Ansari 2014-2015")); Set_Description (_TW( "Modified C code from Pelletier 2008: Quantitative Modelling of Earth Surface Processes.\n" "Converted to C++ for use with SAGA GIS." )); Parameters.Add_Grid( NULL, "INPUT" , _TL("Input"), _TL("This must be your input data of type grid."), PARAMETER_INPUT ); Parameters.Add_Grid( NULL, "OUTPUT" , _TL("Output"), _TL("This will contain your output data of type grid."), PARAMETER_OUTPUT ); Parameters.Add_Value( NULL , "U" , _TL("U"), _TL("Uplift rate (m/kyr)"), PARAMETER_TYPE_Double, 1.0); Parameters.Add_Value( NULL , "K" , _TL("K"), _TL("Advection coefficient K (1/kyr)"), PARAMETER_TYPE_Double, 0.05); Parameters.Add_Value( NULL , "DURATION" , _TL("Timesteps"), _TL("Simulaiton duration (kyrs)"), PARAMETER_TYPE_Double, 2.0); }
//--------------------------------------------------------- CTable_Info::CTable_Info(void) { Set_Name (_TL("List Table Fields")); Set_Author (SG_T("O.Conrad (c) 2010")); Set_Description (_TW( "Loads table information from ODBC data source." )); Parameters.Add_Table( NULL , "TABLE" , _TL("Field Description"), _TL(""), PARAMETER_OUTPUT ); Parameters.Add_Choice( NULL , "TABLES" , _TL("Tables"), _TL(""), "" ); }
//--------------------------------------------------------- bool CSG_MetaData::Assign(const CSG_MetaData &MetaData, bool bAddChildren) { if( &MetaData != this ) { Destroy(); Set_Name (MetaData.Get_Name ()); Set_Content (MetaData.Get_Content()); for(int i=0; i<MetaData.Get_Property_Count(); i++) { Add_Property(MetaData.Get_Property_Name(i), MetaData.Get_Property(i)); } if( bAddChildren ) { Add_Children(MetaData); } } return( true ); }
//--------------------------------------------------------- CCropToData::CCropToData(void) { Set_Name (_TL("Crop to Data")); Set_Author (SG_T("V.Olaya (c) 2004")); Set_Description (_TW( "Crop grids to valid data cells" )); Parameters.Add_Grid_List( NULL , "INPUT" , _TL("Grids"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Grid_List( NULL , "OUTPUT" , _TL("Cropped Grids"), _TL(""), PARAMETER_OUTPUT ); }
//--------------------------------------------------------- CTable_Record_Statistics_Shapes::CTable_Record_Statistics_Shapes(void) : CTable_Record_Statistics_Base() { Set_Name (_TL("Record Statistics (Shapes)")); CSG_Parameter *pNode = Parameters.Add_Shapes( NULL , "TABLE" , _TL("Table"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Table_Fields( pNode , "FIELDS" , _TL("Attributes"), _TL("If no field is selected statistics will be built from all numeric fields.") ); Parameters.Add_Shapes( NULL , "RESULT" , _TL("Result"), _TL(""), PARAMETER_OUTPUT_OPTIONAL ); }
//--------------------------------------------------------- CWASP_MAP_Import::CWASP_MAP_Import(void) { Set_Name (_TL("Import WASP terrain map file")); Set_Author (SG_T("(c) 2006 by O.Conrad")); Set_Description (_TW( "Reference:\n" "<a href=\"http://www.risoe.dk/vea/projects/nimo/WAsPHelp/Wasp8.htm#FileFormatofMAP.htm\" target=\"_blank\">" "http://www.risoe.dk/vea/projects/nimo/WAsPHelp/Wasp8.htm#FileFormatofMAP.htm</a>" )); //----------------------------------------------------- Parameters.Add_Shapes( NULL , "SHAPES" , _TL("Contour Lines"), _TL(""), PARAMETER_OUTPUT , SHAPE_TYPE_Line ); Parameters.Add_FilePath( NULL , "FILE" , _TL("File Name"), _TL(""), CSG_String::Format(SG_T("%s|*.map|%s|*.*"), _TL("WASP Map Files (*.map)"), _TL("All Files") ), NULL, false ); Parameters.Add_Choice( NULL , "METHOD" , _TL("Input Specification"), _TL(""), CSG_String::Format(SG_T("%s|%s|%s|"), _TL("elevation"), _TL("roughness"), _TL("elevation and roughness") ), 0 ); }
//--------------------------------------------------------- CAddCoordinates::CAddCoordinates(void) { Set_Name (_TL("Add Coordinates to points")); Set_Author (SG_T("Victor Olaya (c) 2004")); Set_Description (_TW( "(c) 2004 by Victor Olaya." )); Parameters.Add_Shapes( NULL, "INPUT" , _TL("Points"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Shapes( NULL, "OUTPUT" , _TL("Output"), _TL(""), PARAMETER_OUTPUT_OPTIONAL ); }
//--------------------------------------------------------- CTable_Load::CTable_Load(void) { Set_Name (_TL("Import Table")); Set_Author (SG_T("O.Conrad (c) 2008")); Set_Description (_TW( "Imports a table from a database via ODBC." )); Parameters.Add_Table( NULL , "TABLE" , _TL("Table"), _TL(""), PARAMETER_OUTPUT ); Parameters.Add_Choice( NULL , "TABLES" , _TL("Tables"), _TL(""), "" ); }
//--------------------------------------------------------- CGSGrid_Variance::CGSGrid_Variance(void) { Set_Name (_TL("Representativeness (Grid)")); Set_Author (SG_T("(c) 2003 by O.Conrad")); Set_Description (_TW( "Representativeness - calculation of the variance within a given search radius.\n" "\n" "Reference:\n" "- Boehner, J., Koethe, R., Trachinow, C. (1997): " "'Weiterentwicklung der automatischen Reliefanalyse auf der Basis von Digitalen Gelaendemodellen', " "Goettinger Geographische Abhandlungen, Vol.100, p.3-21\n" )); Parameters.Add_Grid( NULL , "INPUT" , _TL("Grid"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Grid( NULL , "RESULT" , _TL("Representativeness"), _TL(""), PARAMETER_OUTPUT ); Parameters.Add_Value( NULL , "RADIUS" , _TL("Radius (Cells)"), _TL(""), PARAMETER_TYPE_Int, 10 ); Parameters.Add_Value( NULL , "EXPONENT", _TL("Exponent"), _TL(""), PARAMETER_TYPE_Double, 1 ); }
//--------------------------------------------------------- CGrid_Profile::CGrid_Profile(void) { Set_Name (_TL("Profile")); Set_Author (SG_T("(c) 2004 by O.Conrad")); Set_Description (_TW( "Create interactively profiles from a grid based DEM\n" "Use left mouse button clicks into a map window to add profile points." "A right mouse button click will finish the profile." )); Set_Drag_Mode (MODULE_INTERACTIVE_DRAG_LINE); Parameters.Add_Grid( NULL, "DEM" , _TL("DEM"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Grid_List( NULL, "VALUES" , _TL("Values"), _TL("Additional values that shall be saved to the output table."), PARAMETER_INPUT_OPTIONAL ); Parameters.Add_Shapes( NULL, "POINTS" , _TL("Profile Points"), _TL(""), PARAMETER_OUTPUT, SHAPE_TYPE_Point ); Parameters.Add_Shapes( NULL, "LINE" , _TL("Profile Line"), _TL(""), PARAMETER_OUTPUT, SHAPE_TYPE_Line ); }
//--------------------------------------------------------- CGridding_Spline_TPS_Local::CGridding_Spline_TPS_Local(void) { //----------------------------------------------------- Set_Name (_TL("Thin Plate Spline")); Set_Author ("O.Conrad (c) 2006"); Set_Description (_TW( "Creates a 'Thin Plate Spline' function for each grid point " "based on all of the scattered data points that are within a " "given distance. The number of points can be limited to a " "maximum number of closest points. " "\n\n" "References:\n" "- Donato G., Belongie S. (2002):" " 'Approximation Methods for Thin Plate Spline Mappings and Principal Warps'," " In Heyden, A., Sparr, G., Nielsen, M., Johansen, P. (Eds.):" " 'Computer Vision - ECCV 2002: 7th European Conference on Computer Vision, Copenhagen, Denmark, May 28-31, 2002'," " Proceedings, Part III, Lecture Notes in Computer Science." " Springer-Verlag Heidelberg; pp.21-31." "\n" "\n" "- Elonen, J. (2005):" " 'Thin Plate Spline editor - an example program in C++'," " <a target=\"_blank\" href=\"http://elonen.iki.fi/code/tpsdemo/index.html\">http://elonen.iki.fi/code/tpsdemo/index.html</a>." "\n" )); //----------------------------------------------------- Parameters.Add_Value( NULL, "REGULARISATION" , _TL("Regularisation"), _TL(""), PARAMETER_TYPE_Double, 0.0001, 0.0, true ); //----------------------------------------------------- m_Search.Create(&Parameters, Parameters.Add_Node(NULL, "NODE_SEARCH", _TL("Search Options"), _TL("")), 16); }
//--------------------------------------------------------- CShapes_Save::CShapes_Save(void) { //----------------------------------------------------- Set_Name (_TL("Export Shapes to PostGIS")); Set_Author (SG_T("O.Conrad (c) 2013")); Set_Description (_TW( "Exports shapes to a PostGIS database." )); //----------------------------------------------------- Parameters.Add_Shapes( NULL , "SHAPES" , _TL("Shapes"), _TL(""), PARAMETER_INPUT ); Set_Constraints(&Parameters, "SHAPES"); Parameters.Add_String( NULL , "NAME" , _TL("Table Name"), _TL("if empty shapes layers's name is used as table name"), SG_T("") ); Parameters.Add_Choice( NULL , "EXISTS" , _TL("If table exists..."), _TL(""), CSG_String::Format(SG_T("%s|%s|%s|"), _TL("abort export"), _TL("replace existing table"), _TL("append records, if table structure allows") ), 0 ); Add_SRID_Picker(); }
//--------------------------------------------------------- CTIN_View_Module::CTIN_View_Module(void) { //----------------------------------------------------- Set_Name (_TL("TIN Viewer")); Set_Author (SG_T("O. Conrad (c) 2011")); Set_Description (_TW( "This module is a 3D viewer for SAGA TINs. Amongst others, " "the viewer supports attribute based coloring, a map view to control " "the area-of-interest, point size scaling based on distance, level " "of detail control and an anaglyph modus (to use with red/blue or " "red/green glasses).\n\n" )); //----------------------------------------------------- CSG_Parameter *pNode = Parameters.Add_TIN( NULL , "TIN" , _TL("TIN"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Table_Field( pNode , "HEIGHT" , _TL("Elevation"), _TL("") ); Parameters.Add_Table_Field( pNode , "COLOR" , _TL("Color"), _TL("") ); Parameters.Add_Grid( NULL , "RGB" , _TL("Map"), _TL("rgb coded raster map to be draped"), PARAMETER_INPUT_OPTIONAL ); }
//--------------------------------------------------------- CTC_Texture::CTC_Texture(void) { //----------------------------------------------------- Set_Name (_TL("Terrain Surface Texture")); Set_Author ("O.Conrad (c) 2012"); Set_Description (_TW( "Terrain surface texture as proposed by Iwahashi & Pike (2007) for subsequent terrain classification.\n" "\n" "Reference:\n" "Iwahashi, J. & Pike, R.J. (2007): " "Automated classifications of topography from DEMs by an unsupervised nested-means algorithm and a three-part geometric signature. " "Geomorphology, Vol. 86, pp. 409–440\n" )); //----------------------------------------------------- Parameters.Add_Grid( NULL , "DEM" , _TL("Elevation"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Grid( NULL , "TEXTURE" , _TL("Texture"), _TL(""), PARAMETER_OUTPUT ); Parameters.Add_Value( NULL , "EPSILON" , _TL("Flat Area Threshold"), _TL("maximum difference between original and median filtered elevation (3x3 moving window) that still is recognized flat"), PARAMETER_TYPE_Double, 1.0, 0.0, true ); //----------------------------------------------------- On_Construction(); }
//--------------------------------------------------------- CWatersheds::CWatersheds(void) { Set_Name(_TL("Watershed Basins")); Set_Author (SG_T("(c) 2001 by O.Conrad")); Set_Description(_TL("")); Parameters.Add_Grid( NULL, "ELEVATION" , _TL("Elevation"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Grid( NULL, "CHANNELS" , _TL("Channel Network"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Grid( NULL, "SINKROUTE" , _TL("Sink Route"), _TL(""), PARAMETER_INPUT_OPTIONAL ); Parameters.Add_Grid( NULL, "BASINS" , _TL("Watershed Basins"), _TL(""), PARAMETER_OUTPUT ); Parameters.Add_Value( NULL, "MINSIZE" , _TL("Min. Size"), _TL("Minimum size of basin (cells)"), PARAMETER_TYPE_Int ); }
//--------------------------------------------------------- CXYZ_Import::CXYZ_Import(void) { CSG_Parameter *pNode; //----------------------------------------------------- Set_Name (_TL("Import Shapes from XYZ")); Set_Author ("O.Conrad (c) 2003"); Set_Description (_TW( "Imports points from a table with only list of x, y, z coordinates provided as simple text. " "If your table has a more complex structure, you should import it as table " "and then use the \'points from table\' conversion tool. " )); //----------------------------------------------------- pNode = Parameters.Add_Shapes( NULL , "POINTS" , _TL("Points"), _TL(""), PARAMETER_OUTPUT, SHAPE_TYPE_Point ); Parameters.Add_Value( NULL , "HEADLINE" , "File contains headline", _TL(""), PARAMETER_TYPE_Bool , true ); Parameters.Add_FilePath( NULL , "FILENAME" , _TL("File"), _TL(""), CSG_String::Format(SG_T("%s|%s|%s|%s|%s|%s"), _TL("XYZ Files (*.xyz)") , SG_T("*.xyz"), _TL("Text Files (*.txt)") , SG_T("*.txt"), _TL("All Files") , SG_T("*.*") ), NULL, false ); }
//--------------------------------------------------------- CGrid_Colors_Fit::CGrid_Colors_Fit(void) { Set_Name (_TL("Fit Color Palette to Grid Values")); Set_Author (SG_T("(c) 2005 by O.Conrad")); Set_Description (_TW( "" )); Parameters.Add_Grid( NULL , "GRID" , _TL("Grid"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Value( NULL , "COUNT" , _TL("Number of Colors"), _TL(""), PARAMETER_TYPE_Int , 100, 2, true ); Parameters.Add_Choice( NULL , "SCALE" , _TL("Scale"), _TL(""), CSG_String::Format(SG_T("%s|%s|"), _TL("Grid range"), _TL("User defined range") ), 0 ); Parameters.Add_Range( NULL , "RANGE" , _TL("User defined range"), _TL(""), 0.0, 1.0 ); }
//--------------------------------------------------------- CAtlas_BNA_Import::CAtlas_BNA_Import(void) { //----------------------------------------------------- // 1. Info... Set_Name (_TL("Import Atlas Boundary File")); Set_Author (SG_T("(c) 2006 by O.Conrad")); Set_Description (_TW( "\n" )); //----------------------------------------------------- // 2. Parameters... Parameters.Add_FilePath( NULL , "FILE" , _TL("File"), _TL(""), _TL("Atlas Boundary Files (*.bna)|*.bna|All Files|*.*") ); }
//--------------------------------------------------------- CAddCoordinates::CAddCoordinates(void) { Set_Name (_TL("Add Coordinates to points")); Set_Author (SG_T("Victor Olaya (c) 2004")); Set_Description (_TW( "The module attaches the x- and y-coordinates of each point to the attribute table. " "For 3D shapefiles, also the z/m-coordinates are reported.\n" )); Parameters.Add_Shapes( NULL, "INPUT" , _TL("Points"), _TL(""), PARAMETER_INPUT ); Parameters.Add_Shapes( NULL, "OUTPUT" , _TL("Output"), _TL(""), PARAMETER_OUTPUT_OPTIONAL ); }
//--------------------------------------------------------- CSeparate_by_Direction::CSeparate_by_Direction(void) { Set_Name (_TL("Separate points by direction")); Set_Author (SG_T("O. Conrad (c) 2008")); Set_Description (_TW( "Separates points by direction. Direction is determined as average direction of three consecutive points A, B, C. " "If the angle between the directions of A-B and B-C is higher than given tolerance angle the point is dropped. " "This tool has been designed to separate GPS tracks recorded by tractors while preparing a field. " )); //----------------------------------------------------- Parameters.Add_Shapes_List( NULL , "OUTPUT" , _TL("Ouput"), _TL(""), PARAMETER_OUTPUT ); Parameters.Add_Shapes( NULL , "POINTS" , _TL("Points"), _TL(""), PARAMETER_INPUT, SHAPE_TYPE_Point ); Parameters.Add_Value( NULL , "DIRECTIONS" , _TL("Number of Directions"), _TL(""), PARAMETER_TYPE_Double , 4.0, 2.0, true ); Parameters.Add_Value( NULL , "TOLERANCE" , _TL("Tolerance (Degree)"), _TL(""), PARAMETER_TYPE_Double , 5.0, 0.0, true ); }