SE_shape_find_CBM_relation |
Returns an SE_CBM_INFO structure defining all the relationships between the supplied shapes
LONG SE_shape_find_CBM_relation (const SE_SHAPE primary_shape, const SE_SHAPE secondary_shape, SE_CBM_INFO *info);
primary_shape | A handle to an active shape object |
secondary_shape | A handle to an active shape object |
info | Contains the relationships of the supplied shapes |
Returns an SE_CBM_INFO structure defining all the relationships between the supplied shapes. SE_CBM_INFO is
typedef struct {
LONG primary_entity_type;
LONG secondary_entity_type;
LONG mask;
LONG sectdims[3][3];
} SE_CBM_INFO;
The mask returns a flag for each of the relation types that is satisfied: equal, touch, cross, intersect, disjoint, and overlap.
RM_LINE_CROSS | Line intersection; the boundaries of shapes intersect. The point of intersection is not a contained vertex for at least one of the shapes. |
RM_COMMON_PT | The primary and secondary shapes have at least one point in common |
RM_EMBEDDED_PT | A vertex is embedded in a line |
RM_CBOUND_SAME | A common boundary exists between the primary and secondary shapes. The direction of flow (point storage order) of the common boundary is the same in both shapes. |
RM_CBOUND_DIFF | A common boundary exists between the primary and secondary shapes. The direction of flow (point storage order) of the common boundary is opposite in the shapes. |
RM_EMBEDDED_PT | A vertex is embedded in a line |
RM_PARALLEL_OVERLAPPING | Similar to the common boundary masks but one of the shapes has a common boundary with the interior of the other shape |
RM_IDENTICAL | The primary and secondary shapes are identical in terms of shape type and coordinate description |
RM_AREA_INTERSECT | An area intersection exists. At least one of the shapes is an area shape and the other shape is at least partially inside it. Adjacency is not an area intersect. |
RM_INTERIOR_INTERSECT | Same as RM_AREA_INTERSECT but applicable to all entity types. The interiors of both shapes must intersect. |
RM_BOUNDARY_INTERSECT | The endpoint of a linestring intersects the endpoint of another linestring or the boundary of an area feature |
RM_PRIM_LEP_INTERIOR | The endpoint of the primary feature intersects the interior of the secondary feature. Occurs when a linear features endpoint (primary) intersects a point feature. |
RM_SEC_LEP_INTERIOR | The primary feature intersects the endpoint of the secondary feature. Occurs when a point feature (primary) intersects a linear feature’s endpoint. |
RM_PRIM_CONTAINED | The primary shape is wholly contained by the secondary shape. If the secondary shape is an area shape, the primary shape is wholly inside the secondary shapes boundary. If both shapes are linear, the primary shapes path is wholly included in the secondary shapes path. If the primary shape is a point shape, the primary shape is one of the secondary shapes vertices. |
RM_SEC_CONTAINED | The secondary shape is wholly contained by the primary shape. If the primary shape is an area shape, the secondary shape is wholly inside the primary shapes boundary. If both shapes are linear, the secondary shapes path is wholly included in the primary shapes path. If the secondary shape is a point shape, the secondary shape is one of the primary shapes vertices. |
SE_SUCCESS
SE_INCOMPATIBLE_COORDREFS
SE_INVALID_POINTER
SE_INVALID_SHAPE
SE_INVALID_SHAPE_OBJECT
∙ Ignores any CAD data
∙ You must call this function before SE_shape_evaluate_CBM.