[GRASS-dev] Rast_add_d_colour

Vaclav Petras wenzeslaus at gmail.com
Sat Dec 6 14:05:52 PST 2014


On Sat, Dec 6, 2014 at 3:59 PM, Markus Metz <markus.metz.giswork at gmail.com>
wrote:

> Yann Chemin wrote:
> > Hi,
> >
> > I am working on beautifying the output of i.theilsen, a new addon.
> >
> > For some reason, I cannot apply a grayscale palette.
> > ---------------
> > Rast_init_colors(&colors);
> > DCELL val1 = ts_min;
> > DCELL val2 = ceil(ts_max);
> > Rast_add_d_color_rule(&val1, 0, 0, 0, &val2, 255, 255, 255, &colors);
> > ---------------
> >
> > ts_min, ts_max are known from the data processed,
> > val1 and val2 are declared as DCELL instead of const DCELL as required,
> > but if I declare const DCELL val1, then I cannot write stats to it for
> > palette definition...
> >
> > What I am doing wrong?
>
> If you declare const DCELL val1, you can not pass a pointer to val1 to
> another function, because this other function could then easily modify
> to contents of that pointer.


This is of course true.


> Rast_add_d_color_rule() requires const
> DCELL *, not const DCELL.
>

Strange, (generated) documentation says const DCELL * [1] which fits with
the source code [2, 3].

I haven't tried compile anything now but isn't `const DCELL` constant
(value) and `const DCELL *` pointer to constant value. While `const DCELL *
const` would be constant pointer to constant value.

Also

const DCELL val;
const DCELL * pval = &val;

should work and carry on the constness which is exactly what should be
happening when calling the Rast_add_d_color_rule() function.

So, I don't understand.

Vaclav

[1]
http://grass.osgeo.org/programming7/color__rule_8c.html#a160535a46694589674f68c60eac23a05
[2] lib/raster/color_rule.c:35:void Rast_add_d_color_rule(const DCELL *
val1, int r1, int g1, int b1, ...
[3] include/defs/raster.h:198:void Rast_add_d_color_rule(const DCELL *,
int, int, int, ...


> Markus M
> _______________________________________________
> grass-dev mailing list
> grass-dev at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/grass-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-dev/attachments/20141206/f0de401b/attachment.html>


More information about the grass-dev mailing list