TABLE OF CONTENTS
OBJECT TYPE/T_VERTEXLIST [ Types ]
NAME
T_VERTEXLIST -- Object type representing a collection of T_VERTICES
DESCRIPTION
An object type that represents an array/collection of T_VERTICES. Includes Methods on that type.
NOTES
This also implements JTS's OffsetSegmentString.java. A dynamic list of the vertices in a constructed offset curve. Automatically removes adjacent vertices which are closer than a given tolerance.
AUTHOR
Simon Greener
HISTORY
Martin Davis - 2016 - Java coding. Simon Greener - Jul 2019 - extended T_Vertices to include methods derived from OffsetSegmentString.java
COPYRIGHT
(c) 2005-2019 by TheSpatialDBAdvisor/Simon Greener
T_VERTEXLIST/addOrdinates [ Methods ]
[ Top ] [ T_VERTEXLIST ] [ Methods ]
NAME
addOrdinates -- Allows an sdo_ordinate_array to be directly added to the underlying list.
SYNOPSIS
Member Procedure addOrdinates( SELF IN OUT NOCOPY T_VERTEXLIST, p_dim in integer, p_lrs_dim in integer, p_ordinates in mdsys.sdo_ordinate_array ),
DESCRIPTION
This procedure allows for an sdo_ordinate_array to be directly added to the underlying list. XYZM ordinates are all supported. All vertices created adopt the SRID of the VertexList's first vertex. Coordinate dimensionality and lrs dim should be same as underling VertexList.
ARGUMENTS
p_dim (integer) -- The coordinate dimension used to interpret the numbers in the sdo_ordinate_array. p_lrs_dim (integer) -- The dimension for the LRS ordiante. p_ordinates (sdo_ordinate_array) -- The sdo_ordinate_array to be added to the vertex list.
EXAMPLE
-- Add sdo_ordinate_array to existing vertex list. set serveroutput on size unlimited declare v_vList t_vertexlist; v_vertices &&INSTALL_SCHEMA..T_Vertices; v_tgeom t_geometry; begin v_vList := T_VERTEXLIST(p_segment => &&INSTALL_SCHEMA..T_SEGMENT(p_line=>sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(0,0,1,1)))); dbms_output.put_line('Before v_vList.count=' || v_vList.vertexList.count); v_vList.addOrdinates( p_dim => 2, p_lrs_dim => 0, p_ordinates => sdo_ordinate_array(1,1,2,2,3,3) ); dbms_output.put_line('After v_VList.count=' || v_vList.vertexList.count); end; / show errors Before v_vList.count=2 After v_VList.count=5 PL/SQL procedure successfully completed.
AUTHOR
Simon Greener
HISTORY
Simon Greener - August 2019 - Original coding.
COPYRIGHT
(c) 2005-2019 by TheSpatialDBAdvisor/Simon Greener
T_VERTEXLIST/addVertices [ Methods ]
[ Top ] [ T_VERTEXLIST ] [ Methods ]
NAME
addVertices -- Enables a collection of vertices to be added to the underlying list.
SYNOPSIS
Member Procedure addVertices(SELF IN OUT NOCOPY &&INSTALL_SCHEMA..T_VERTEXLIST, p_vertices in &&INSTALL_SCHEMA..T_Vertices, isForward in ineger default 1)
DESCRIPTION
This procedure allows for a collection of T_VERTEX objects to be added to the underlying list. XYZM ordinates are all supported. isForward is 1, the two vertex lists are merged with no tests are carried out to see if first vertex in list to be added is same as end vertex in underlying list. However, when isForward is 2 the lists are merged with a test for duplicate coordinates. If isForward is 2, p_vertices is reversed before appending with a duplicate test carried out.
ARGUMENTS
p_vertices (&&INSTALL_SCHEMA..T_Vertices) -- Collection of t_vertex object to add. isForward (boolean) -- Flag indicating whether vertices should be added in reverse order.
EXAMPLE
-- Add vertices of two linestrings with no test for duplicates set serveroutput on size unlimited declare v_vList t_vertexlist; v_vertices &&INSTALL_SCHEMA..T_Vertices; v_tgeom t_geometry; begin v_vList := T_VERTEXLIST(p_segment => &&INSTALL_SCHEMA..T_SEGMENT(p_line=>sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(0,0,1,1)))); dbms_output.put_line('Before v_vList.count=' || v_vList.vertexList.count); v_tgeom := t_geometry(sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(1,1,2,2,3,3))); select v.ST_Self() as vertex bulk collect into v_vertices from table(v_tgeom.ST_Vertices()) v; v_vList.addVertices(p_vertices => v_vertices, p_isForward => 1); dbms_output.put_line('After v_VList.count=' || v_vList.vertexList.count); end; / show errors Before v_vList.count=2 After v_VList.count=5 PL/SQL procedure successfully completed. -- Now add vertices of two linestrings testing for duplicates set serveroutput on size unlimited declare v_vList t_vertexlist; v_vertices &&INSTALL_SCHEMA..T_Vertices; v_tgeom t_geometry; begin v_vList := T_VERTEXLIST(p_segment => &&INSTALL_SCHEMA..T_SEGMENT(p_line=>sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(0,0,1,1)))); dbms_output.put_line('Before v_vList.count=' || v_vList.vertexList.count); v_tgeom := t_geometry(sdo_geometry(2002,null,null,sdo_elem_info_array(1,2,1),sdo_ordinate_array(1,1,2,2,3,3))); select v.ST_Self() as vertex bulk collect into v_vertices from table(v_tgeom.ST_Vertices()) v; v_vList.addVertices(p_vertices => v_vertices, p_isForward => 2); dbms_output.put_line('After v_VList.count=' || v_vList.vertexList.count); end; / show errors Before v_vList.count=2 After v_VList.count=4 PL/SQL procedure successfully completed.
AUTHOR
Simon Greener
HISTORY
Simon Greener - July 2019 - Original coding.
COPYRIGHT
(c) 2005-2019 by TheSpatialDBAdvisor/Simon Greener
T_VERTEXLIST/ATTRIBUTES(T_VERTEXLIST) [ Variables ]
[ Top ] [ T_VERTEXLIST ] [ Variables ]
ATTRIBUTES
seglist is a table of t_segment minimimVertexDistance is min distance between two vertices. If less then any vertex is not added.
SOURCE
vertexList &&INSTALL_SCHEMA..T_VERTICES, minimimVertexDistance Number, dPrecision integer,
T_VERTEXLIST/CONSTRUCTORS(T_VERTEXE) [ Methods ]
[ Top ] [ T_VERTEXLIST ] [ Methods ]
NAME
A collection of T_VERTEXLIST Constructors.
SOURCE
-- Useful as an "Empty" constructor. Constructor Function T_VERTEXLIST(SELF IN OUT NOCOPY T_VERTEXLIST) Return Self As Result, Constructor Function T_VERTEXLIST(SELF IN OUT NOCOPY T_VERTEXLIST, p_vertex in &&INSTALL_SCHEMA..T_VERTEX) Return Self As Result, Constructor Function T_VERTEXLIST(SELF IN OUT NOCOPY T_VERTEXLIST, p_segment in &&INSTALL_SCHEMA..T_SEGMENT) Return Self As Result, Constructor Function T_VERTEXLIST(SELF IN OUT NOCOPY T_VERTEXLIST, p_line in mdsys.sdo_geometry) Return Self As Result,