Definition at line 99 of file lwpsurface.c.
References struct_psurface_arcs::ax, struct_psurface_arcs::ay, struct_psurface_arcs::az, struct_psurface_arcs::bx, struct_psurface_arcs::by, struct_psurface_arcs::bz, struct_psurface_arcs::cnt, struct_psurface_arcs::face, LWPSURFACE::flags, FLAGS_GET_Z, LWPSURFACE::geoms, getPoint4d_p(), lwalloc(), lwfree(), LWPSURFACE::ngeoms, POINTARRAY::npoints, LWPOLY::rings, POINT4D::x, POINT4D::y, and POINT4D::z.
Referenced by lwgeom_dimension(), and lwgeom_is_closed().
112 if (psurface->
ngeoms < 4)
return 0;
115 for (i=0, narcs=0 ; i < psurface->
ngeoms ; i++)
122 for (i=0, carc=0; i < psurface->
ngeoms ; i++)
133 if (pa.
x == pb.
x && pa.
y == pb.
y && pa.
z == pb.
z)
continue;
136 if ( (pa.
x > pb.
x) ||
137 (pa.
x == pb.
x && pa.
y > pb.
y) ||
138 (pa.
x == pb.
x && pa.
y == pb.
y && pa.
z > pb.
z) )
144 for (found=0, k=0; k < carc ; k++)
147 if ( ( arcs[k].ax == pa.
x && arcs[k].
ay == pa.
y &&
148 arcs[k].
az == pa.
z && arcs[k].
bx == pb.
x &&
149 arcs[k].
by == pb.
y && arcs[k].
bz == pb.
z &&
169 arcs[carc].
ax = pa.
x;
170 arcs[carc].
ay = pa.
y;
171 arcs[carc].
az = pa.
z;
172 arcs[carc].
bx = pb.
x;
173 arcs[carc].
by = pb.
y;
174 arcs[carc].
bz = pb.
z;
190 for (k=0; k < carc ; k++)
192 if (arcs[k].cnt != 2)
201 if (carc < psurface->ngeoms)
return 0;
#define FLAGS_GET_Z(flags)
Macros for manipulating the 'flags' byte.
void * lwalloc(size_t size)
int getPoint4d_p(const POINTARRAY *pa, int n, POINT4D *point)