PostGIS 3.7.0dev-r@@SVN_REVISION@@
Loading...
Searching...
No Matches

◆ RASTER_makeEmpty()

Datum RASTER_makeEmpty ( PG_FUNCTION_ARGS  )

Definition at line 55 of file rtpg_create.c.

56{
57 uint16 width = 0, height = 0;
58 double ipx = 0, ipy = 0, scalex = 0, scaley = 0, skewx = 0, skewy = 0;
59 int32_t srid = SRID_UNKNOWN;
60 rt_pgraster *pgraster = NULL;
62
63 if (PG_NARGS() < 9) {
64 elog(ERROR, "RASTER_makeEmpty: ST_MakeEmptyRaster requires 9 args");
65 PG_RETURN_NULL();
66 }
67
68 if (!PG_ARGISNULL(0))
69 width = PG_GETARG_UINT16(0);
70
71 if (!PG_ARGISNULL(1))
72 height = PG_GETARG_UINT16(1);
73
74 if (!PG_ARGISNULL(2))
75 ipx = PG_GETARG_FLOAT8(2);
76
77 if (!PG_ARGISNULL(3))
78 ipy = PG_GETARG_FLOAT8(3);
79
80 if (!PG_ARGISNULL(4))
81 scalex = PG_GETARG_FLOAT8(4);
82
83 if (!PG_ARGISNULL(5))
84 scaley = PG_GETARG_FLOAT8(5);
85
86 if (!PG_ARGISNULL(6))
87 skewx = PG_GETARG_FLOAT8(6);
88
89 if (!PG_ARGISNULL(7))
90 skewy = PG_GETARG_FLOAT8(7);
91
92 if (!PG_ARGISNULL(8))
93 srid = PG_GETARG_INT32(8);
94
95 POSTGIS_RT_DEBUGF(4, "%dx%d, ip:%g,%g, scale:%g,%g, skew:%g,%g srid:%d",
96 width, height, ipx, ipy, scalex, scaley,
97 skewx, skewy, srid);
98
99 raster = rt_raster_new(width, height);
100 if (raster == NULL)
101 PG_RETURN_NULL(); /* error was supposedly printed already */
102
103 rt_raster_set_scale(raster, scalex, scaley);
104 rt_raster_set_offsets(raster, ipx, ipy);
105 rt_raster_set_skews(raster, skewx, skewy);
106 rt_raster_set_srid(raster, srid);
107
108 pgraster = rt_raster_serialize(raster);
109 rt_raster_destroy(raster);
110 if (!pgraster)
111 PG_RETURN_NULL();
112
113 SET_VARSIZE(pgraster, pgraster->size);
114 PG_RETURN_POINTER(pgraster);
115}
#define SRID_UNKNOWN
Unknown SRID value.
Definition liblwgeom.h:215
void rt_raster_set_scale(rt_raster raster, double scaleX, double scaleY)
Set scale in projection units.
Definition rt_raster.c:141
void rt_raster_destroy(rt_raster raster)
Release memory associated to a raster.
Definition rt_raster.c:86
void rt_raster_set_skews(rt_raster raster, double skewX, double skewY)
Set skews about the X and Y axis.
Definition rt_raster.c:172
rt_raster rt_raster_new(uint32_t width, uint32_t height)
Construct a raster with given dimensions.
Definition rt_raster.c:52
void rt_raster_set_srid(rt_raster raster, int32_t srid)
Set raster's SRID.
Definition rt_raster.c:367
void * rt_raster_serialize(rt_raster raster)
Return this raster in serialized form.
void rt_raster_set_offsets(rt_raster raster, double x, double y)
Set insertion points in projection units.
Definition rt_raster.c:203
raster
Be careful!! Zeros function's input parameter can be a (height x width) array, not (width x height): ...
Definition rtrowdump.py:125
#define POSTGIS_RT_DEBUGF(level, msg,...)
Definition rtpostgis.h:69
Struct definitions.
Definition librtcore.h:2452

References POSTGIS_RT_DEBUGF, rt_raster_destroy(), rt_raster_new(), rt_raster_serialize(), rt_raster_set_offsets(), rt_raster_set_scale(), rt_raster_set_skews(), rt_raster_set_srid(), rt_raster_serialized_t::size, and SRID_UNKNOWN.

Here is the call graph for this function: