Now, PostGIS is able to store 3D geometries as TIN and POLYHEDRALSURFACE and to import 3D data with the collada2pgsql command.
I decided to add functionalities in order to manipulate these new geometries. First, I implemented the isvalid operator in GEOS for TIN and POLYHEDRALSURFACE. GEOS (Geometry Engine Open Source) is a geometric library for PostGIS and the isvalid operator is based on the mathematical definition of geometries.
So It must check if:
- all faces are connected:
- there are no self-intersections:
- neighbour faces have the same orientation:
It's important to notice that a TIN or a POLYHEDRALSURFACE stored in PostGIS can represent a 3D volume but not be a valid geometry if we refer to its mathematical definition.
Some exemples of the isvalid operator use: