SE_shape_find_CBM_relation

Returns an SE_CBM_INFO structure defining all the relationships between the supplied shapes

Usage syntax

LONG SE_shape_find_CBM_relation (const SE_SHAPE primary_shape, const SE_SHAPE secondary_shape, SE_CBM_INFO *info);

Parameters
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
Description

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 feature’s 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 shape’s boundary. If both shapes are linear, the primary shape’s path is wholly included in the secondary shape’s path. If the primary shape is a point shape, the primary shape is one of the secondary shape’s 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 shape’s boundary. If both shapes are linear, the secondary shape’s path is wholly included in the primary shape’s path. If the secondary shape is a point shape, the secondary shape is one of the primary shape’s vertices.
Returns

SE_SUCCESS
SE_INCOMPATIBLE_COORDREFS

SE_INVALID_POINTER

SE_INVALID_SHAPE

SE_INVALID_SHAPE_OBJECT

Notes

∙  Ignores any CAD data

∙  You must call this function before SE_shape_evaluate_CBM.