4.42 SDO_TOPO_MAP.MOVE_NODE

Format

SDO_TOPO_MAP.MOVE_NODE(     
  topology     IN VARCHAR2,      
  node_id      IN NUMBER,      
  edges_coords IN SDO_EDGE_ARRAY);

or

SDO_TOPO_MAP.MOVE_NODE(     
  topology        IN VARCHAR2,      
  node_id         IN NUMBER,      
  edges_coords    IN SDO_EDGE_ARRAY,      
  moved_iso_nodes OUT SDO_NUMBER_ARRAY,      
  moved_iso_edges OUT SDO_NUMBER_ARRAY,      
  allow_iso_moves IN VARCHAR2);

Description

Moves a non-isolated node and its attached edges.

Parameters

topology

Name of the topology in which to move the node, or null if you are using an updatable TopoMap object (see Specifying the Editing Approach with the Topology Parameter). Must not exceed 20 characters.

node_id

Node ID of the node to be moved.

edges_coords

An array of arrays, of type SDO_EDGE_ARRAY (described in SDO_EDGE_ARRAY and SDO_NUMBER_ARRAY Types). Each inner array consists of coordinates of each resulting attached edge, from start point to end point. The outer array consists of the attached edge arrays, starting with the start edge of the node to be moved and proceeding in clockwise order (with the sequence of the edges as would be obtained in a call to the SDO_TOPO_MAP.GET_NODE_STAR function).

The array for each edge must include the start and end points. Any loops that connect twice at the moved node must be specified twice in the array.

moved_iso_nodes

Output parameter in which, if the allow_iso_moves parameter value is TRUE, Spatial stores the node ID values of any isolated nodes that have moved to a different face as a result of this procedure. If the allow_iso_moves parameter value is FALSE, Spatial stores the node ID values of any isolated nodes that did not move but that would have moved to a different face if the allow_iso_moves parameter value had been TRUE.

moved_iso_edges

Output parameter in which, if the allow_iso_moves parameter value is TRUE, Spatial stores the edge ID values of any isolated edges that have moved to a different face as a result of this procedure. If the allow_iso_moves parameter value is FALSE, Spatial stores the edge ID values of any isolated edges that did not move but that would have moved to a different face if the allow_iso_moves parameter value had been TRUE.

allow_iso_moves

TRUE causes Spatial to allow a node move operation that would cause any isolated nodes or edges to be in a different face, and to adjust the containing face information for such isolated nodes and edges; FALSE causes Spatial not to allow a node move operation that would cause any isolated nodes or edges to be in a different face.

If you use the format that does not include the allow_iso_moves parameter, Spatial allows a node move operation that would cause any isolated nodes or edges to be in a different face, and it adjusts the containing face information for such isolated nodes and edges.

Usage Notes

For information about moving nodes, see Moving a Node.

This procedure is equivalent to using the moveNode method of the TopoMap class of the client-side Java API (described in Topology Data Model Java Interface).

Examples

The following example moves node N3 and adjusts the coordinates of the only attached edge. (The example refers to definitions and data from Topology Built from Topology Data.)

-- Move node N3 to right: from 25,35 to 26,35.
-- E3 is changed from 25,30 -> 25,35 to 25,30 -> 26,35.
CALL SDO_TOPO_MAP.MOVE_NODE(null, 3,
  SDO_EDGE_ARRAY(SDO_NUMBER_ARRAY(25,30, 26,35)));