# [postgis-users] Problem with 3D polygon intersection test

Ed Linde edolinde at gmail.com
Tue Oct 30 01:00:36 PDT 2012

```Hi All,
I am having some troubles getting the *ST_Intersect* function to work with
3D polygons.
I have a table to hold triangles as polygons in *"small_tris"*
Another table for holding the polygonal faces of a 3D voronoi diagram in *
"vfaces"*
So now I am trying to do an intersection between the triangles and the
voronoi faces
to get the triangles that intersect with the faces. And it seems that *ALL*
triangles
are intersecting. I have attached a PDF where I have plotted the triangles
and the
voronoi cells. so the box around in red and blue with a major face going
through is
the voronoi diagram. The Voronoi partition in 3D is shown at the bottom too
for clarity
Is the select assuming something? So the polygons are flat and the
intersections
should just be lines or points. I am under some pressure to get this to
work, so if

Cheers,
Ed

*-- TABLE SCHEMAS*
bounds=# \d vfaces;
Table "public.vfaces"
Column  |   Type   | Modifiers
----------+----------+-----------
gen_id   | integer  |
geomtext | geometry |

bounds=# \d small_tris;
Table "public.small_tris"
Column  |   Type   | Modifiers
----------+----------+-----------
id       | integer  | not null
v0       | integer  |
v1       | integer  |
v2       | integer  |
geomtext | geometry |
Indexes:
"small_tris_pkey" PRIMARY KEY, btree (id)
"small_idx" gist (geomtext)

*
-- TABLE CONTENT*
bounds=# select id, st_astext( geomtext ) from small_tris;
id |                       st_astext
----+-------------------------------------------------------
0 | POLYGON Z ((10 10 805,20 10 809,10 20 814,10 10 805))
1 | POLYGON Z ((10 20 814,20 10 809,20 20 819,10 20 814))
2 | POLYGON Z ((20 20 819,30 10 809,30 20 812,20 20 819))
3 | POLYGON Z ((30 10 809,20 20 819,20 10 809,30 10 809))
4 | POLYGON Z ((30 20 812,30 10 809,40 10 826,30 20 812))
5 | POLYGON Z ((20 20 819,30 20 812,20 30 827,20 20 819))
6 | POLYGON Z ((10 20 814,20 20 819,20 30 827,10 20 814))
7 | POLYGON Z ((10 40 805,10 30 814,20 30 827,10 40 805))
8 | POLYGON Z ((10 50 804,10 40 805,20 40 807,10 50 804))
9 | POLYGON Z ((20 30 827,20 40 807,10 40 805,20 30 827))
10 | POLYGON Z ((30 30 817,20 40 807,20 30 827,30 30 817))
11 | POLYGON Z ((30 40 816,20 50 809,20 40 807,30 40 816))
12 | POLYGON Z ((20 40 807,20 50 809,10 50 804,20 40 807))
13 | POLYGON Z ((10 30 814,10 20 814,20 30 827,10 30 814))
14 | POLYGON Z ((30 30 817,20 30 827,30 20 812,30 30 817))
15 | POLYGON Z ((30 20 812,40 20 823,30 30 817,30 20 812))
16 | POLYGON Z ((40 20 823,30 20 812,40 10 826,40 20 823))
17 | POLYGON Z ((40 20 823,40 10 826,50 10 803,40 20 823))
18 | POLYGON Z ((30 30 817,40 20 823,40 30 814,30 30 817))
19 | POLYGON Z ((40 20 823,50 20 808,40 30 814,40 20 823))
20 | POLYGON Z ((50 20 808,40 20 823,50 10 803,50 20 808))
21 | POLYGON Z ((40 30 814,50 20 808,50 30 816,40 30 814))
22 | POLYGON Z ((30 30 817,40 30 814,40 40 800,30 30 817))
23 | POLYGON Z ((30 40 816,40 40 800,30 50 813,30 40 816))
24 | POLYGON Z ((30 40 816,30 30 817,40 40 800,30 40 816))
25 | POLYGON Z ((30 50 813,40 40 800,40 50 817,30 50 813))
26 | POLYGON Z ((30 40 816,30 50 813,20 50 809,30 40 816))
27 | POLYGON Z ((50 40 821,40 50 817,40 40 800,50 40 821))
28 | POLYGON Z ((50 50 809,40 50 817,50 40 821,50 50 809))
29 | POLYGON Z ((50 40 821,40 40 800,50 30 816,50 40 821))
30 | POLYGON Z ((40 30 814,50 30 816,40 40 800,40 30 814))
31 | POLYGON Z ((30 30 817,30 40 816,20 40 807,30 30 817))
(32 rows)

select st_astext(geomtext) from vfaces;

st_astext
-----------------------------------------------------------------------------------------------
POLYGON Z ((51 17.8 799,9 38.8 799,9 51 819.33333333333,19.4 51 828,51
35.2 828,51 17.8 799))
POLYGON Z ((51 17.8 799,9 38.8 799,9 51 799,51 51 799,51 17.8 799))
POLYGON Z ((51 35.2 828,19.4 51 828,51 51 828,51 35.2 828))
POLYGON Z ((9 9 799,9 38.8 799,51 17.8 799,51 9 799,9 9 799))
POLYGON Z ((51 17.8 799,9 38.8 799,9 51 819.33333333333,19.4 51 828,51
35.2 828,51 17.8 799))
POLYGON Z ((9 9 828,9 51 828,19.4 51 828,51 35.2 828,51 9 828,9 9 828))
(6 rows)

*select distinct a.id
from small_tris a, vfaces b
where st_intersects (a.geomtext, b.geomtext)
order by a.id;*
id
----
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
(32 rows)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20121030/3f03b950/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: polygons.pdf
Type: application/pdf
Size: 27919 bytes
Desc: not available
URL: <http://lists.osgeo.org/pipermail/postgis-users/attachments/20121030/3f03b950/attachment.pdf>
```