It is something of a hack, but you can use a textthe replace function on the TIN zZs, convert thatthose to POLYGON zZs, and then use ST_Dump to extract the individual triangles as polygons. For example:
WITH
tin (id, geom) AS (
SELECT (ST_DUMPST_Dump(
ST_GEOMFROMTEXTST_GeomFromText(
replace(
'TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),
((0 0.5 0,0 0 0,0 0.5 0.5,0 0.5 0)))'::text,
'TIN Z', 'MULTIPOLYGON')))
).*),
tin1 (id, geom) AS (
SELECT (ST_DUMPST_Dump(
ST_GEOMFROMTEXTST_GeomFromText(
replace(
'TIN Z (((0 0 0,0 0 0.5,0 0.5 0.5,0 0 0)),
((0 0.5 0,1 1 1,1 0.5 0.5,0 0.5 0)))'::text,
'TIN Z', 'MULTIPOLYGON')))
).*)
SELECT
a.id[0],
b.id[0],
ST_3dIntersects(a.geom, b.geom)
FROM tin a, tin1 b;
As there is no 3D equivalent of ST_Contains, you would have to ensure that your TINs are closed in 3D (ie, are solids) and use ST_3DIntersection of of the two TINs and compare against ST_Volume of each individual one.