Property name           | Value        | Default value  | Updates   | Updates  | GLSL uniform declaration               | IXPL core set                               | IXPL core get                             | Notes
                        |  constraints |                |  cursor   |  lookat  |                                        |                                             |                                           |
                        |  constraints |                |  position |  plane   |                                        |                                             |                                           |
------------------------+--------------+----------------+-----------+----------+----------------------------------------+---------------------------------------------+-------------------------------------------+------
AxisAlignmentBias       | >= 0         |          1     | true      | false    | uniform float axisAlignmentBias      ; | void setGridAxisAlignmentBias      (float); | float  getGridAxisAlignmentBias       (); | this determines the distance of influence, in grid cells, within which the cursor will be snapped to a coordinate axis, to make it easier to hit; only for the rectangular grid type
AxisLineWidth           | >= 0         |          2     | false     | false    | uniform float axisLineWidth          ; | void setGridAxisLineWidth          (float); | float  getGridAxisLineWidth           (); | in pixels
AxisX                   |              | vec3(1, 0,  0) | true      | true     | uniform vec3  axisX                  ; | void setGridAxisX                  (vec3&); | vec3  &getGridAxisX                   (); |
AxisXNColor             |              | #660000        | false     | false    | uniform vec3  axisXNColor            ; | void setGridAxisXNColor            (vec3&); | vec3  &getGridAxisXNColor             (); |   y+
AxisXPColor             |              | #FF0000        | false     | false    | uniform vec3  axisXPColor            ; | void setGridAxisXPColor            (vec3&); | vec3  &getGridAxisXPColor             (); |   ^
AxisY                   |              | vec3(0, 1,  0) | true      | true     | uniform vec3  axisY                  ; | void setGridAxisY                  (vec3&); | vec3  &getGridAxisY                   (); |   |
AxisYNColor             |              | #006600        | false     | false    | uniform vec3  axisYNColor            ; | void setGridAxisYNColor            (vec3&); | vec3  &getGridAxisYNColor             (); |   *---> x+
AxisYPColor             |              | #00FF00        | false     | false    | uniform vec3  axisYPColor            ; | void setGridAxisYPColor            (vec3&); | vec3  &getGridAxisYPColor             (); |  /
AxisZ                   |              | vec3(0, 0,  1) | true      | true     | uniform vec3  axisZ                  ; | void setGridAxisZ                  (vec3&); | vec3  &getGridAxisZ                   (); | v z+
AxisZNColor             |              | #000066        | false     | false    | uniform vec3  axisZNColor            ; | void setGridAxisZNColor            (vec3&); | vec3  &getGridAxisZNColor             (); |
AxisZPColor             |              | #6666FF        | false     | false    | uniform vec3  axisZPColor            ; | void setGridAxisZPColor            (vec3&); | vec3  &getGridAxisZPColor             (); |
CamDirection            |              | vec3(0, 0, -1) | true      | true     | uniform vec3  camDirection           ; |                                             |                                           |
CamPosition             |              | vec3(0, 0,  0) | true      | false    | uniform vec3  camPosition            ; |                                             |                                           |
CellsPerMajorStep       | >  0         |          8     | true      | false    | uniform int   cellsPerMajorStep      ; | void setGridCellsPerMajorStep      (int  ); | int    getGridCellsPerMajorStep       (); | count of cells before the next highlight
CellsPerMajorStepAround | >  0         |         10     | true      | false    | uniform int   cellsPerMajorStepAround; | void setGridCellsPerMajorStepAround(int  ); | int    getGridCellsPerMajorStepAround (); | count of cells before the next highlight, around a circle
CircleResolution        |              |          0     | true      | false    | uniform int   circleResolution       ; | void setGridCircleResolution       (int  ); | int    getGridCircleResolution        (); | negative values yield smaller cells
CircleResolutionBase    | >  0         |         10     | true      | false    | uniform int   circleResolutionBase   ; | void setGridCircleResolutionBase   (int  ); | int    getGridCircleResolutionBase    (); |
CursorColor             |              | #FF8000        | false     | false    | uniform vec3  cursorColor            ; | void setGridCursorColor            (vec3&); | vec3  &getGridCursorColor             (); |
CursorLineWidth         | >= 0         |          3     | false     | false    | uniform float cursorLineWidth        ; | void setGridCursorLineWidth        (float); | float  getGridCursorLineWidth         (); | in pixels
CursorPlane             | 0..2         |          0     | false     | false    | uniform int   cursorPlane            ; |                                             | int    getGridCursorPlane             (); | 0 = ZX, 1 = XY, 2 = YZ, undefined if cursor not present
CursorPosition          |              | vec3(0, 0,  0) | true      | false    | uniform vec3  cursorPosition         ; |                                             | vec3  &getGridCursorPosition          (); | yields the displayed (and eventually snapped) position, undefined if cursor not present
CursorPresent           | bool         | true           | false     | false    | uniform bool  cursorPresent          ; |                                             | int    isGridCursorPresent            (); | the cursor is present if the mouse ray intersected with the grid, otherwise it is not present
CursorSnapToCenterLines | bool         | true           | true      | false    | uniform bool  cursorSnapToCenterLines; | void setGridCursorSnapToCenterLines(int  ); | int    doesGridCursorSnapToCenterLines(); | the center lines are those that go straight through the middle point in the circular version, both circle snap flags can be combined
CursorSnapToCircles     | bool         | true           | true      | false    | uniform bool  cursorSnapToCircles    ; | void setGridCursorSnapToCircles    (int  ); | int    doesGridCursorSnapToCircles    (); | these are the actual circle lines in the circular version
CursorSnapToXYU         | bool         | true           | true      | false    | uniform bool  cursorSnapToXYU        ; | void setGridCursorSnapToXYU        (int  ); | int    doesGridCursorSnapToXYU        (); |
CursorSnapToXYV         | bool         | true           | true      | false    | uniform bool  cursorSnapToXYV        ; | void setGridCursorSnapToXYV        (int  ); | int    doesGridCursorSnapToXYV        (); |
CursorSnapToYZU         | bool         | true           | true      | false    | uniform bool  cursorSnapToYZU        ; | void setGridCursorSnapToYZU        (int  ); | int    doesGridCursorSnapToYZU        (); |
CursorSnapToYZV         | bool         | true           | true      | false    | uniform bool  cursorSnapToYZV        ; | void setGridCursorSnapToYZV        (int  ); | int    doesGridCursorSnapToYZV        (); |
CursorSnapToZXU         | bool         | true           | true      | false    | uniform bool  cursorSnapToZXU        ; | void setGridCursorSnapToZXU        (int  ); | int    doesGridCursorSnapToZXU        (); |
CursorSnapToZXV         | bool         | true           | true      | false    | uniform bool  cursorSnapToZXV        ; | void setGridCursorSnapToZXV        (int  ); | int    doesGridCursorSnapToZXV        (); |
LookatPlane             | 0..2         |          1     | true      | true     | uniform int   lookatPlane            ; |                                             |                                           | 0 = ZX, 1 = XY, 2 = YZ
MajorColor              |              | #808080        | false     | false    | uniform vec3  majorColor             ; | void setGridMajorColor             (vec3&); | vec3  &getGridMajorColor              (); | color of the highlights that are placed every X grid cells
MajorCountAroundAtRes0  | >  0         |         36     | false     | false    | uniform int   majorCountAroundAtRes0 ; | void setGridMajorCountAroundAtRes0 (int  ); | int    getGridMajorCountAroundAtRes0  (); | determines the total extent of the displayed grid portion
MajorCountPerSideAtRes0 | >  0         |         24     | false     | false    | uniform int   majorCountPerSideAtRes0; | void setGridMajorCountPerSideAtRes0(int  ); | int    getGridMajorCountPerSideAtRes0 (); | determines count of highlights around a circle, total count rounded down on negative resolutions
MajorLineWidth          | >= 0         |          1     | false     | false    | uniform float majorLineWidth         ; | void setGridMajorLineWidth         (float); | float  getGridMajorLineWidth          (); | in pixels
MinorColor              |              | #BFBFBF        | false     | false    | uniform vec3  minorColor             ; | void setGridMinorColor             (vec3&); | vec3  &getGridMinorColor              (); |
MinorLineWidth          | >= 0         |          1     | false     | false    | uniform float minorLineWidth         ; | void setGridMinorLineWidth         (float); | float  getGridMinorLineWidth          (); | in pixels
MouseRayDirection       |              | vec3(0, 0, -1) | true      | false    | uniform vec3  mouseRayDirection      ; |                                             |                                           |
MouseRayOrigin          |              | vec3(0, 0,  0) | true      | false    | uniform vec3  mouseRayOrigin         ; |                                             |                                           |
Origin                  |              | vec3(0, 0,  0) | true      | false    | uniform vec3  origin                 ; | void setGridOrigin                 (vec3&); | vec3  &getGridOrigin                  (); |
PlanarOffset            | >= 0         |          0.006 | false     | false    | uniform float planarOffset           ; | void setGridPlanarOffset           (float); | float  getGridPlanarOffset            (); | this is to display the grid slightly above geometry which is exactly in the grid plane, to prevent "z-fighting"
PlaneSetup              | 0..1         |          0     | true      | false    | uniform int   planeSetup             ; | void setGridPlaneSetup             (int  ); | int    getGridPlaneSetup              (); | 0 = standard coordinate system with three folds, 1 = flat coordinate system
Resolution              |              |          0     | true      | false    | uniform int   resolution             ; | void setGridResolution             (int  ); | int    getGridResolution              (); | negative values yield smaller cells
ResolutionBase          | >  0         |          2     | true      | false    | uniform int   resolutionBase         ; | void setGridResolutionBase         (int  ); | int    getGridResolutionBase          (); |
SecondarySnap           | bool         | false          | true      | false    | uniform bool  secondarySnap          ; | void setGridSecondarySnap          (int  ); | int    gridUsesSecondarySnap          (); | when working with the circular grid, the intersections usually have "dirty" fractions in coordinates; this toggles a perfectly orthogonal ghost grid with the same grid origin, on which the cursor can be aligned after normal alignment, to make sure that cursor coordinates always yield desired "clean" coordinate fractions
SecondarySnapRes        |              |          4     | true      | false    | uniform int   secondarySnapRes       ; | void setGridSecondarySnapRes       (int  ); | int    getGridSecondarySnapRes        (); | negative values yield smaller cells
SecondarySnapResBase    | >  0         |          2     | true      | false    | uniform int   secondarySnapResBase   ; | void setGridSecondarySnapResBase   (int  ); | int    getGridSecondarySnapResBase    (); |
Shape                   | 0..1         |          0     | true      | false    | uniform int   shape                  ; | void setGridShape                  (int  ); | int    getGridShape                   (); | 0 = standard, 1 = circular
