GRASS Programmer's Manual  7.0.svn(2012)-r51645
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Todo List
File build_pg.c
Implement build_topo()
Namespace core.units
Probably will be replaced by Python ctypes fns in the near future(?)
Global D_draw_cell (int A_row, const CELL *carray, struct Colors *colors)
Replace by D_draw_c_raster()
Global D_open_driver (void)
Replace strncmp by G_strncasecmp()
Global db_CatValArray_alloc (dbCatValArray *arr, int n)
return type void?
Global db_CatValArray_realloc (dbCatValArray *arr, int n)
return code void?
Global db_set_column_has_undefined_default_value (dbColumn *column)
Replace by db_unset_column_has_default_value() ?
Global db_set_default_connection (void)
DB_OK on success, DB_* error code on fail
Global db_set_index_type_unique (dbIndex *index)
return type void?
Global DBL_SIZ
To be removed ?
Class dialogs.CategoryListCtrl

statistics and categories are managed here directly, it could be better to use some interface

delete vector features after deleting class

Global dialogs.ImportDialog.OnAbort
not yet implemented
Global dig_head::recycle
Not implemented yet
File field.c
see Vect_read_dblinks(); activate auto-FID detection once OGR_L_GetFIDColumn() is working or solution found if FID not available
Class Format_info_ogr
Structure size should not change depending on compilation I think, do it better
Global frame.GMFrame.LoadWorkspaceFile
Validate against DTD
Global frame.IClassMapFrame.GetGroupLayers
consider moving this function to core module for convenient
Global frame.IClassMapFrame.OnUpdateActive
move to DoubleMapFrame?
Global frame.IClassMapFrame.UpdateActive
move to DoubleMapFrame?
Global frame.MapFrame.RemoveToolbar
Only hide, activate by calling AddToolbar()
Global get_vert_intersects (geosurf *gs, float *bgn, float *end, float *dir)
For consistancy, need to decide how last row & last column are displayed - would it look funny to always draw last row/col with finer resolution if necessary, or would it be better to only show full rows/cols?
Class ghelp.AboutWindow
improve styling
Global goutput.GMConsole.RunCmd
Display commands (*.d) are captured and processed separately by mapdisp.py. Display commands are rendered in map display widget that currently has the focus (as indicted by mdidx).
Global goutput.PyStc.OnKeyPressed
implement code completion (see wxPython demo)
Global GP_get_zmode (int id, int *use_z)
Who's using this?
Global gp_init_site (geosite *gp)
Currently does nothing
Global GP_load_site (int id, const char *filename)
load file handle & ready for reading instead of using memory
Global gpd_2dsite (geosite *gp, geosurf *gs, int do_fast)
prevent scaling by 0
page GRASS 7 Programmer's Manual
Update the list.
Global gs_calc_normals (geosurf *gs)
fix to correctly calculate norms when mapped to sphere!
Global gs_clip_segment (geosurf *gs, float *bgn, float *end, float *region)
to use fast clipping and move to gs.c
Global GS_draw_legend (const char *name, GLuint fontbase, int size, int *flags, float *range, int *pt)
add legend from list option make font loading more flexible
Global GS_get_cat_at_xy (int id, int att, char *catstr, float x, float y)
Allocate catstr using G_store()
Global GS_get_to (float *to)
need set_to? - just use viewdir?
Global gs_get_zextents (geosurf *gs, float *min, float *max, float *mid)
pass flag to use zminmasked instead of zmin
Global gs_get_zrange0 (float *min, float *max)
pass flag to use zminmasked instead of zmin could also have this return a weighted average for vertical "centroid"
Global gs_init_surf (geosurf *gs, double ox, double oy, int rows, int cols, double xres, double yres)
Now xmin & ox are the same, right? - get rid of ox, oy in geosurf struct?
Global GS_init_view (void)
allow to set center?
Global Gs_loadmap_as_char (struct Cell_head *wind, const char *map_name, unsigned char *buff, struct BM *nullmap, int *has_null)
fn body Gs_loadmap_as_float()
Global Gs_loadmap_as_int (struct Cell_head *wind, const char *map_name, int *buff, struct BM *nullmap, int *has_null)
fn body of Gs_loadmap_as_float()
Global gs_put_label (const char *text, GLuint fontbase, int size, unsigned long color, int *pt)
Allocate label dynamicaly
Global gs_set_att_const (geosurf *gs, int desc, float constant)
set typbuf constant
Global GS_set_Narrow (int *pt, int id, float *pos2)
scale used to calculate len of arrow still needs work needs go function that returns center / eye distance gsd_get_los function is not working correctly ??
Global GS_set_wire_color (int id, int colr)
error-handling
Global gsd_coarse_surf_map (geosurf *surf)
normals have to be recalculated before proper low res surface can be drawn
Global gsd_display_fringe (geosurf *surf, unsigned long clr, float elev, int where[4])
add elevation for bottom add color option add ruler grid lines
File gsd_fonts.c

This file needs to be re-written in OpenGL

This file needs to be re-written in OpenGL

Global gsd_line_onsurf (geosurf *gs, float *v1, float *v2)
remove fudge, instead fudge the Z buffer
Global gsd_nline_onsurf (geosurf *gs, float *v1, float *v2, float *pt, int n)
remove fudge, instead fudge the Z buffer
Global gsd_surf_const (geosurf *surf, float k)
FIX: do_diff won't work right - needs normals - maybe calculate on the fly
File gsdiff.c
generalize this concept to allow transform functions which are dependent on surfaces that are dependent on other surfaces, etc., as long as the dependency doesn't loop back.
Global gsds_alloc_typbuff (int id, int *dims, int ndims, int type)
add ATTY_CONST
Global GV_draw_fastvect (int vid)
Seems to be broken, nothing is drawn
Global GV_load_vector (int id, const char *filename)
Load file handle & ready for reading instead of using memory
Global GVL_get_window ()
gvl_file.c use this - change
Global GVL_isosurf_get_drawres (int id, int *xres, int *yres, int *zres)
error handling
Class ilist
To be moved to gislib?
Global layertree.LayerTree.OnNvizProperties
vector/volume
File legal_dbname.c
Are we as restrictive here as for vector names?
Namespace lmgr.pyshell
Run pyshell and evaluate code in a separate instance of python & design the widget communicate back and forth with it
Global Map_info::n_site_att
To be removed?
Global Map_info::n_site_dbl
To be removed
Global Map_info::n_site_str
To be removed?
Global Map_info::site_att
To be removed?
Class mapdisp.DoubleMapFrame
Use it in GCP manager (probably changes to both DoubleMapFrame and GCP MapFrame will be neccessary).
Global mapdisp.MapFrameBase.GetPPM

now computed every time, is it necessary?

enable user to specify ppm (and store it in UserSettings)

Global mapwindow.BufferedWindow.DrawCross
implement rotation
Global mapwindow.GLWindow.LoadDataLayers
volumes
Global mapwindow.GLWindow.SaveToFile
fix BufferedPaintDC
Global model.Model.LoadModel
Validate against DTD
Global N_calc_solute_transport_disptensor_2d (N_solute_transport_data2d *data)
Change the tensor calculation to a mor realistic algorithm
Global N_calc_solute_transport_disptensor_3d (N_solute_transport_data3d *data)
Change the tensor calculation to a mor realistic algorithm
Global PORT_DOUBLE
To be moved to gislib?
Global PORT_DOUBLE_MAX
To be moved to gislib?
Global print_256lookup (int *buff)
G_debug ?
Global print_frto (float(*ft)[4])
G_debug ?
Global print_realto (float *rt)
G_debug ?
Global print_surf_fields (geosurf *s)
G_debug ?
Global print_view_fields (geoview *gv)
G_debug ?
Global prompt.GPromptSTC.OnKeyPressed
event.ControlDown() for manual autocomplete
File radii.c
Suggestion: all "lon"s in the file "radii.c" should read as "lat"
Global Rast_add_modular_color_rule (const void *val1, int r1, int g1, int b1, const void *val2, int r2, int g2, int b2, struct Colors *colors, RASTER_MAP_TYPE data_type)
Question: shouldn't this function call G_add_modular_<data_type>_raster_color_rule() instead?
Global Rast_free_cats (struct Categories *pcats)
To be removed, replaced by Rast_free_cats().
Global Rast_get_cats_title (const struct Categories *pcats)
Remove from GIS Library, replace by Rast_get_c_cats_title().
Global Rast_init_cats (const char *title, struct Categories *pcats)
Eliminate pcats->num. Num has no meaning in new Categories structure and only stores (int) largets data value for backwards compatibility.
Global Rast_read_vector_cats (const char *name, const char *mapset, struct Categories *pcats)
: To be moved to the vector library
Global Rast_set_cats_title (const char *title, struct Categories *pcats)
To be removed, replaced by Rast_set_cats_title().
Global Rast_write_cats (const char *name, struct Categories *cats)
To be removed, replaced by Rast_write_cats().
Global Rast_write_vector_cats (const char *name, struct Categories *cats)
Move to the vector library.
File read_pg.c
Currently only points, linestrings and polygons are supported, implement also other types
Class recycle
Implement it
Global render.Layer.__init__
pass cmd as tuple instead of list
File ret_codes.c
Are we as restrictive here as for vector names?
File simple_features.c
  • Vect_sfa_line_is_simple()
  • Vect_sfa_line_srid()
  • Vect_sfa_line_envelope()
  • Vect_sfa_line_asbinary()
  • Vect_sfa_line_is_empty()
  • Vect_sfa_line_is_3d()
  • Vect_sfa_line_is_measured()
  • Vect_sfa_line_boundary()
File snprintf.c
if needed, implement alternative versions for portability. potential code source:
Global statistics.Statistics.SetBaseStatistics
Later self.name is changed but self.rasterName is not. self.rasterName should not be set by user. It can remains the same. But it should be done more explicitly. Currently it looks like unintentional feature or bug.
Class statusbar.SbItem
consider externalizing position (see SbProgress use in SbManager)
Global statusbar.SbItem.__init__
rewrite Update also in derived classes to take in account item position
Class statusbar.SbManager

generalize access to UserSettings (specify group, etc.)

add GetMode method using name instead of index

Global statusbar.SbManager.HideStatusbarChoiceItemsByClass
consider adding similar function which would take item names
Global statusbar.SbRegionExtent.ReprojectRegionFromMap
reorganize this method to remove code useful only for derived class SbCompRegionExtent
File strings.c
merge interesting functions from ../datetime/scan.c here
Global toolbars.BaseToolbar.FixSize
Determine why combobox causes problems here
Global utils.GetTempfile
Fix path on MS Windows/MSYS
Global utils.GetValidLayerName
: Better use directly GRASS Python SWIG...
Global V1_open_new_pg (struct Map_info *Map, const char *name, int with_z)
To implement
Global V1_open_old_pg (struct Map_info *Map, int update)
Check database instead of geometry_columns
Global V1_write_line_ogr (struct Map_info *Map, int type, const struct line_pnts *points, const struct line_cats *cats)
How to deal with OGRNullFID ?
Global V2_delete_line_sfa (struct Map_info *Map, int line)
Update fidx
Global var_signature (IClass_statistics *statistics, int band1, int band2)
verify the computation
Namespace vdigit.wxdigit
Read large amounts of data from Vlib into arrays, which could then be processed using NumPy and rendered using glDrawArrays or glDrawElements, so no per-line/per-vertex processing in Python. Bulk data processing with NumPy is much faster than iterating in Python (and NumPy would be an excellent candidate for acceleration via e.g. OpenCL or CUDA; I'm surprised it hasn't happened already).
Global Vect_set_date (struct Map_info *Map, const char *str)
This should be coupled to DateTime functions to support time series
Global Vedit_add_vertex (struct Map_info *Map, struct ilist *List, struct line_pnts *coord, double thresh)
3D
Global Vedit_get_min_distance (struct line_pnts *Points1, struct line_pnts *Points2, int with_z, int *mindistidx)
LL projection
Global Vedit_remove_vertex (struct Map_info *Map, struct ilist *List, struct line_pnts *coord, double thresh)
3D
File Vlib/graph.c
Vect_graph_free ( dglGraph_s *graph )
File write_pg.c

PostGIS version of V2__add_line_to_topo_nat()

OGR version of V2__delete_area_cats_from_cidx_nat()

function to delete corresponding entry in fidx

OGR version of V2__add_area_cats_to_cidx_nat

OGR version of V2__add_line_to_topo_nat

File write_sfa.c

SFA version of V2__delete_area_cats_from_cidx_nat()

function to delete corresponding entry in fidx

SFA version of V2__add_area_cats_to_cidx_nat

SFA version of V2__add_line_to_topo_nat

Global wxdigit.IVDigit.OpenBackgroundMap
support more background maps then only one
Global wxdigit.IVDigit.SelectLinesByQuery
layer / 3D
Global wxdisplay.DisplayDriver.UpdateSettings
map units
Global wxnviz.Nviz.SetIsosurfaceMask
invert
Global wxnviz.Nviz.SetSurfaceMask
invert
Global wxnviz.Nviz.SetSurfaceTransp
invert
Global wxnviz.Nviz.SetWireColor
all