File Geodatabase API
FileGDBAPI::MultiPartShapeBuffer Class Reference

MultiPart Shape Buffer accessor functions. More...

Inherits FileGDBAPI::ShapeBuffer.

List of all members.

Public Member Functions

fgdbError GetExtent (double *&extent)
 Get a pointer to the geomtries extent.
fgdbError GetNumParts (int &numParts)
 Get the number of parts.
fgdbError GetNumPoints (int &numPoints)
 Get the number of coordinates in the geometry.
fgdbError GetParts (int *&parts)
 Get a pointer to the parts array.
fgdbError GetPoints (Point *&points)
 Get a pointer to the point array.
fgdbError GetZExtent (double *&zExtent)
 Get a pointer to the z extent.
fgdbError GetZs (double *&zArray)
 Get a pointer to the z array.
fgdbError GetMExtent (double *&mExtent)
 Get a pointer to the m extent.
fgdbError GetMs (double *&mArray)
 Get a pointer to the m array.
fgdbError GetNumCurves (int &numCurves)
 Get the number of curves in the geometry.
fgdbError GetCurves (byte *&curves)
 Get a pointer to the curve array.
fgdbError GetIDs (int *&ids)
 Get a pointer to the id array.
fgdbError Setup (ShapeType shapeType, int numParts, int numPoints, int numCurves=0)
 Setup a shape buffer for insert.
fgdbError CalculateExtent (void)
 Calculates the extent for the shape after all of the coordinate arrays have been filled.
fgdbError PackCurves (void)
 Remove excess space allocated for curves.

Detailed Description

MultiPart Shape Buffer accessor functions.

These functions provide access to the shape buffer. Consult the extended shapefile format document for the buffer layout. When reading a multipart shape buffer you should first create the appropriate shape buffer, get the geometry, get the number of points, get the number of parts, get the number of curves, get a pointer to the part array, get a pointer to the point array, and, if present pointers to the z, m, and id arrays. To write a multipart shape buffer create a row buffer, create a shape buffer, set up the shape buffer, get the points, assign the coordinates to the point array, get the part array and populate the array as needed, and if needed get the z, m, id and curve arrays and populate, calculate the extent of the geometry, set the geometry and insert the row. If curves were added Pact the curves before setting the geometry. To improve load use Table::LoadOnlyMode. Set it to true before you insert any rows and set it too false when finished. If all grid size values in the spatial index are zero, the values will be calculated based on the existing geometries.


Member Function Documentation

fgdbError FileGDBAPI::MultiPartShapeBuffer::GetExtent ( double *&  extent)

Get a pointer to the geomtries extent.

Parameters:
[out]extentA pointer to the geometries extent.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetNumParts ( int &  numParts)

Get the number of parts.

Parameters:
[out]numPartsThe number of parts in the geometry.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetNumPoints ( int &  numPoints)

Get the number of coordinates in the geometry.

Parameters:
[out]numPointsThe number of points.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetParts ( int *&  parts)

Get a pointer to the parts array.

Parameters:
[out]partsA pointer to the parts array.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetPoints ( Point *&  points)

Get a pointer to the point array.

Parameters:
[out]pointsA pointer to the point array.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetZExtent ( double *&  zExtent)

Get a pointer to the z extent.

Parameters:
[out]zExtentA pointer to the z extent.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetZs ( double *&  zArray)

Get a pointer to the z array.

Parameters:
[out]zArrayA pointer to the z array.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetMExtent ( double *&  mExtent)

Get a pointer to the m extent.

Parameters:
[out]mExtentA pointer to the m extent.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetMs ( double *&  mArray)

Get a pointer to the m array.

Parameters:
[out]mArrayA pointer to the m array.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetNumCurves ( int &  numCurves)

Get the number of curves in the geometry.

Parameters:
[out]numCurvesThe number of curves.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetCurves ( byte *&  curves)

Get a pointer to the curve array.

Parameters:
[out]curvesA pointer to the curve array.
Returns:
Error code indicating whether the method finished successfully.s.
fgdbError FileGDBAPI::MultiPartShapeBuffer::GetIDs ( int *&  ids)

Get a pointer to the id array.

Parameters:
[out]idsA pointer to the id array.
Returns:
Error code indicating whether the method finished successfully..
fgdbError FileGDBAPI::MultiPartShapeBuffer::Setup ( ShapeType  shapeType,
int  numParts,
int  numPoints,
int  numCurves = 0 
)

Setup a shape buffer for insert.

Allocates the correct length buffer for the selected shape type.

Parameters:
[in]shapeTypeThe shape type of the buffer. Shape Type
[in]numPartsThe number of parts that the geometry will contain.
[in]numPointsThe number of points that the geometry will contain.
[in]numCurvesThe number of curves that the geometry will contain, defaults to zero.
Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::CalculateExtent ( void  )

Calculates the extent for the shape after all of the coordinate arrays have been filled.

Returns:
Error code indicating whether the method finished successfully.
fgdbError FileGDBAPI::MultiPartShapeBuffer::PackCurves ( void  )

Remove excess space allocated for curves.

Setup allocates space for curves based of the max size that could be required. Depending on the curves loaded, all of the allocated space may not be required.

Returns:
Error code indicating whether the method finished successfully.