This topic describes the at sign (@) operator. This operator is used to determine the relationship between the bounding boxes of two sfmesh, meshgeom, or box3d objects.

Syntax

boolean @(sfmesh A, sfmesh B);
boolean @(meshgeom A, meshgeom B);
boolean @(sfmesh A, box3d B);
boolean @(box3d A, sfmesh B);

Parameters

ParameterDescription
AThe object A, which can be an sfmesh, meshgeom, or box3d object.
BThe object B, which can be an sfmesh, meshgeom, or box3d object.

Overview

This operator is used to determine the relationship between the 3D bounding boxes of two sfmesh, meshgeom, or box3d objects. If the 3D bounding box of object A is fully contained in the 3D bounding box of object B, true is returned. If the 3D bounding box of object A is not fully contained in the 3D bounding box of object B, false is returned.

Examples

  • Example 1:
    -- @(sfmesh, sfmesh)
    select count(*) from mesh_gist_test where '{"version" : 1, "root" : 0, "meshgeoms" : ["MESHGEOM(PATCH(INDEXSURFACE Z (VERTEX(307248.723802283 296449.440306073 6500.00004882812,307248.723802283 296449.440306073 100,307258.460240141 296449.440306073 6500.00004882812,307258.460240141 296449.440306073 100,307258.460240141 296474.440306263 6500.00004882812,307258.460240141 296474.440306263 100,307248.723802283 296474.440306263 6500.00004882812,307248.723802283 296474.440306263 100),INDEX((0,1,2),(3,2,1),(4,5,6),(7,6,5),(3,1,7),(7,5,3),(2,3,4),(5,4,3),(0,2,4),(4,6,0),(1,0,7),(6,7,0)))))"], "primitives" : [{"meshgeom" : 0}], "nodes" : [{"primitive" : 0}]}'::mesh @ the_mesh;
    -------------------------------------
    2
  • Example 2:
    -- @(meshgeom, meshgeom)
    select count(*) from meshgeom_gist_test where '{"version" : 1, "root" : 0, "meshgeoms" : ["MESHGEOM(PATCH(INDEXSURFACE Z (VERTEX(307248.723802283 296449.440306073 6500.00004882812,307248.723802283 296449.440306073 100,307258.460240141 296449.440306073 6500.00004882812,307258.460240141 296449.440306073 100,307258.460240141 296474.440306263 6500.00004882812,307258.460240141 296474.440306263 100,307248.723802283 296474.440306263 6500.00004882812,307248.723802283 296474.440306263 100),INDEX((0,1,2),(3,2,1),(4,5,6),(7,6,5),(3,1,7),(7,5,3),(2,3,4),(5,4,3),(0,2,4),(4,6,0),(1,0,7),(6,7,0)))))"], "primitives" : [{"meshgeom" : 0}], "nodes" : [{"primitive" : 0}]}'::mesh::meshgeom @ the_meshgeom;
    -------------------------------------
    2
  • Example 3:
    -- @(sfmesh, box3d)
    select count(*) from mesh_gist_test where the_mesh @ st_3dmakebox('POINT(206126.22379756 290161.940316926 5249.99990997314)'::geometry,'POINT(226126.22379756 300161.940316926 7249.99990997314)'::geometry);
    -------------------------------------
    0
  • Example 4:
    -- @(box3d, sfmesh)
    select count(*) from mesh_gist_test where st_3dmakebox('POINT(206126.22379756 290161.940316926 5249.99990997314)'::geometry,'POINT(226126.22379756 300161.940316926 7249.99990997314)'::geometry) @ the_mesh;
    -------------------------------------
    2