PostGIS  2.5.7dev-r@@SVN_REVISION@@

◆ getPoint2d_cp()

const POINT2D* getPoint2d_cp ( const POINTARRAY pa,
uint32_t  n 
)

Returns a pointer into the POINTARRAY serialized_ptlist, suitable for reading from.

Returns a POINT2D pointer into the POINTARRAY serialized_ptlist, suitable for reading from.

This is very high performance and declared const because you aren't allowed to muck with the values, only read them.

Definition at line 374 of file lwgeom_api.c.

375 {
376  if ( ! pa ) return 0;
377 
378  if ( n>=pa->npoints )
379  {
380  lwerror("getPoint2d_cp: point offset out of range");
381  return 0; /*error */
382  }
383 
384  return (const POINT2D*)getPoint_internal(pa, n);
385 }
uint8_t * getPoint_internal(const POINTARRAY *pa, uint32_t n)
Definition: ptarray.c:1750
void lwerror(const char *fmt,...)
Write a notice out to the error handler.
Definition: lwutil.c:190
uint32_t npoints
Definition: liblwgeom.h:374

References getPoint_internal(), lwerror(), and POINTARRAY::npoints.

Referenced by _lwt_AddFaceSplit(), _lwt_AddPoint(), _lwt_CheckEdgeCrossing(), dbscan_update_context(), encode_ptarray(), geography_centroid_from_mline(), geography_centroid_from_mpoly(), geometry_to_path(), geometry_to_polygon(), geos_envelope_surrogate(), getPoint2d(), lw_curvering_getfirstpoint2d_cp(), lw_dist2d_fast_ptarray_ptarray(), lw_dist2d_line_curvepoly(), lw_dist2d_line_poly(), lw_dist2d_point_circstring(), lw_dist2d_point_curvepoly(), lw_dist2d_point_line(), lw_dist2d_point_point(), lw_dist2d_point_poly(), lw_dist2d_poly_poly(), lw_dist2d_pre_seg_seg(), lw_dist2d_pt_ptarray(), lw_dist2d_pt_ptarrayarc(), lw_dist2d_ptarray_ptarray(), lw_dist2d_ptarray_ptarrayarc(), lw_dist2d_ptarrayarc_ptarrayarc(), LWGEOM2GEOS(), lwgeom_cluster_2d_kmeans(), lwgeom_distance_spheroid(), lwgeom_remove_repeated_points_in_place(), lwgeom_simplify_in_place(), lwgeom_subdivide_recursive(), lwline_covers_lwline(), lwline_covers_lwpoint(), lwline_crossing_direction(), lwline_interpolate_points(), lwpoint_from_wkb_state(), lwpoint_inside_circle(), lwpoint_to_latlon(), lwpoly_covers_pointarray(), lwpoly_intersects_line(), lwt_ChangeEdgeGeom(), point_in_ring(), point_in_ring_rtree(), pointArray_svg_rel(), pointarray_to_encoded_polyline(), pointArray_to_geojson(), pointArray_toGML2(), pointArray_toGML3(), pt_in_ring_2d(), ptarray_arc_length_2d(), ptarray_area_sphere(), ptarray_calculate_gbox_geodetic(), ptarray_contains_point_partial(), ptarray_distance_spheroid(), ptarray_dp_findsplit_in_place(), ptarray_length_2d(), ptarray_locate_point(), ptarray_npoints_in_rect(), ptarray_remove_repeated_points_in_place(), ptarray_signed_area(), ptarray_to_GEOSCoordSeq(), ptarrayarc_contains_point_partial(), rect_leaf_node_distance(), rect_leaf_node_intersects(), rect_leaf_node_segment_side(), rect_node_leaf_new(), and rect_tree_get_point().

Here is the call graph for this function: