com.esri.arcgis.geodatabaseextensions
Class LasPointEnumerator

java.lang.Object
  extended by com.esri.arcgis.geodatabaseextensions.LasPointEnumerator
All Implemented Interfaces:
IEnumLasPoint, com.esri.arcgis.interop.RemoteObjRef, Serializable

public class LasPointEnumerator
extends Object
implements com.esri.arcgis.interop.RemoteObjRef, IEnumLasPoint

Las Point Enumerator.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

See Also:
Serialized Form

Constructor Summary
LasPointEnumerator(Object obj)
          Construct a LasPointEnumerator using a reference to such an object returned from ArcGIS Engine or Server.
 
Method Summary
 boolean equals(Object o)
          Compare this object with another
 int getAttribute()
          The LAS attribute.
 int hashCode()
          the hashcode for this object
 void next(int arraySize, int[] pPointCount, _WKSPointZ[] pPoints, ILongArray pIntensity, ILongArray pFileIndices, IDoubleArray pPointIDs)
          Populates an array of WKSPointZs, optional arrays of 0-based file indices and 1-based point IDs.
 void nextAttrDbl(int arraySize, int[] pPointCount, _WKSPointZ[] pPoints, double[] pAttribute, ILongArray pIntensity, ILongArray pFileIndices, IDoubleArray pPointIDs)
          Populates arrays of WKSPointZs and attributes, and optional arrays of 0-based file indices and 1-based point IDs.
 void nextAttrLong(int arraySize, int[] pPointCount, _WKSPointZ[] pPoints, int[] pAttribute, ILongArray pIntensity, ILongArray pFileIndices, IDoubleArray pPointIDs)
          Populates arrays of WKSPointZs and attributes, and optional arrays of 0-based file indices and 1-based point IDs.
 void nextAttrRGB32(int arraySize, int[] pPointCount, _WKSPointZ[] pPoints, _RGB32[] pAttribute, ILongArray pIntensity, ILongArray pFileIndices, IDoubleArray pPointIDs)
          Populates arrays of WKSPointZs and RGB colors, and optional arrays of 0-based file indices and 1-based point IDs.
 void nextLasInfo(IArray pInfo, int[] pPointCount)
          Populates an array of ILasPointInfo.
 void reset()
          Resets the enumerator.
 void setAttribute(int pAttribute)
          The LAS attribute.
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.esri.arcgis.interop.RemoteObjRef
getJintegraDispatch, release
 

Constructor Detail

LasPointEnumerator

public LasPointEnumerator(Object obj)
                   throws IOException
Construct a LasPointEnumerator using a reference to such an object returned from ArcGIS Engine or Server. This is semantically equivalent to casting obj to LasPointEnumerator.
Casting to this class from the return value of a method will not work, as this class represents an abstract class in ArcObjects.
*
LasPointEnumerator o = (LasPointEnumerator)obj; // will not work

LasPointEnumerator o = new LasPointEnumerator(obj); // Use this constructor instead
* @param obj an object returned from ArcGIS Engine or Server

Throws:
IOException - if there are interop problems LasPointEnumerator theLasPointEnumerator = (LasPointEnumerator) obj;
Method Detail

equals

public boolean equals(Object o)
Compare this object with another

Overrides:
equals in class Object

hashCode

public int hashCode()
the hashcode for this object

Overrides:
hashCode in class Object

setAttribute

public void setAttribute(int pAttribute)
                  throws IOException,
                         AutomationException
The LAS attribute.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
setAttribute in interface IEnumLasPoint
Parameters:
pAttribute - A com.esri.arcgis.geodatabaseextensions.esriLasAttributeType constant (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

getAttribute

public int getAttribute()
                 throws IOException,
                        AutomationException
The LAS attribute.

Description

Attribute is relevant when working with methods NextAttrDbl and NextAttrLong. Set this property before invoking those methods. If this property is not set, it defaults to esriLasAttributeType.esriLasClassCode.
All values except esriLasAttributeType.esriLasColorRGB is a valid input while setting this property.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
getAttribute in interface IEnumLasPoint
Returns:
A com.esri.arcgis.geodatabaseextensions.esriLasAttributeType constant
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

reset

public void reset()
           throws IOException,
                  AutomationException
Resets the enumerator.

Description

Resets the enumerator

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
reset in interface IEnumLasPoint
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

next

public void next(int arraySize,
                 int[] pPointCount,
                 _WKSPointZ[] pPoints,
                 ILongArray pIntensity,
                 ILongArray pFileIndices,
                 IDoubleArray pPointIDs)
          throws IOException,
                 AutomationException
Populates an array of WKSPointZs, optional arrays of 0-based file indices and 1-based point IDs.

Description

Retrieves points from a LAS dataset. Intended to be called in a loop.

arraySize is the allocated size of the array into which points will be retrieved. This tells the enumerator how many points it can retrieve for each call to Next.

pPointCount is a result, set by the call to Next, and represents the number of points retrieved into the point array. The value will be <= arraySize. When it's 0 there are no more points to retrieve.

pPoints is an array of WKSPointZ. Points are retrieved into it. It must be pre-allocated. It's size must be at least as large as arraySize.

pIntensity is an array into which lidar intensity values are placed for the retrieved points. The LongArray object needs to be instantiated if you want to retrieve intensity. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need intensity values.

pFileIndices is an array into which las file index (i.e., ILasDataset.File) values are placed for the retrieved points. This enables you top determine which LAS file each point comes from. The indices start at a base of 0. The passed LongArray object needs to be instantiated if you want to retrieve this information. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need the file indices.

pPointIDs is an array into which record numbers for retrieved points are placed. These are LAS file point record numbers and they start at a base of 1. These, used in combination with the file indices, enable you to uniquely identify the source of each point; the LAS file and the record number in that file. The DoubleArray object needs to be instantiated if you want to retrieve this information. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need point record numbers.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

This method uses C style arrays which are not supported in the ArcGIS API for Java. Hence the array size cannot be greater than 1. You can only retrieve information for one point at a time.

Specified by:
next in interface IEnumLasPoint
Parameters:
arraySize - The arraySize (in)
pPointCount - The pPointCount (out: use single element array)
pPoints - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pIntensity - A reference to a com.esri.arcgis.system.ILongArray (in)
pFileIndices - A reference to a com.esri.arcgis.system.ILongArray (in)
pPointIDs - A reference to a com.esri.arcgis.system.IDoubleArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

nextAttrLong

public void nextAttrLong(int arraySize,
                         int[] pPointCount,
                         _WKSPointZ[] pPoints,
                         int[] pAttribute,
                         ILongArray pIntensity,
                         ILongArray pFileIndices,
                         IDoubleArray pPointIDs)
                  throws IOException,
                         AutomationException
Populates arrays of WKSPointZs and attributes, and optional arrays of 0-based file indices and 1-based point IDs.

Description

Retrieves points and desired attributes as long values from a LAS dataset. Intended to be called in a loop.
Double attribute values such as esriLasAttributeType.esriLasZ and esriLasAttributeType.esriLasGpsTime will be rounded off.

arraySize is the allocated size of the array into which points will be retrieved. This tells the enumerator how many points it can retrieve for each call to Next.

pPointCount is a result, set by the call to Next, and represents the number of points retrieved into the point array. The value will be <= arraySize. When it's 0 there are no more points to retrieve.

pPoints is an array of WKSPointZ. Points are retrieved into it. It must be pre-allocated. It's size must be at least as large as arraySize.

pAttribute is an array of the specified attributes as long values.

pIntensity is an array into which lidar intensity values are placed for the retrieved points. The LongArray object needs to be instantiated if you want to retrieve intensity. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need intensity values.

pFileIndices is an array into which las file index (i.e., ILasDataset.File) values are placed for the retrieved points. This enables you top determine which LAS file each point comes from. The indices start at a base of 0. The passed LongArray object needs to be instantiated if you want to retrieve this information. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need the file indices.

pPointIDs is an array into which record numbers for retrieved points are placed. These are LAS file point record numbers and they start at a base of 1. These, used in combination with the file indices, enable you to uniquely identify the source of each point; the LAS file and the record number in that file. The DoubleArray object needs to be instantiated if you want to retrieve this information. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need point record numbers.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

This method uses C style arrays which are not supported in the ArcGIS API for Java. Hence the array size cannot be greater than 1. You can only retrieve information for one point at a time.

Specified by:
nextAttrLong in interface IEnumLasPoint
Parameters:
arraySize - The arraySize (in)
pPointCount - The pPointCount (out: use single element array)
pPoints - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pAttribute - The pAttribute (out: use single element array)
pIntensity - A reference to a com.esri.arcgis.system.ILongArray (in)
pFileIndices - A reference to a com.esri.arcgis.system.ILongArray (in)
pPointIDs - A reference to a com.esri.arcgis.system.IDoubleArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

nextAttrDbl

public void nextAttrDbl(int arraySize,
                        int[] pPointCount,
                        _WKSPointZ[] pPoints,
                        double[] pAttribute,
                        ILongArray pIntensity,
                        ILongArray pFileIndices,
                        IDoubleArray pPointIDs)
                 throws IOException,
                        AutomationException
Populates arrays of WKSPointZs and attributes, and optional arrays of 0-based file indices and 1-based point IDs.

Description

Retrieves points and desired attributes as double values from a LAS dataset. Intended to be called in a loop.

arraySize is the allocated size of the array into which points will be retrieved. This tells the enumerator how many points it can retrieve for each call to Next.

pPointCount is a result, set by the call to Next, and represents the number of points retrieved into the point array. The value will be <= arraySize. When it's 0 there are no more points to retrieve.

pPoints is an array of WKSPointZ. Points are retrieved into it. It must be pre-allocated. It's size must be at least as large as arraySize.

pAttribute is an array of the specified attributes as double values.

pIntensity is an array into which lidar intensity values are placed for the retrieved points. The LongArray object needs to be instantiated if you want to retrieve intensity. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need intensity values.

pFileIndices is an array into which las file index (i.e., ILasDataset.File) values are placed for the retrieved points. This enables you top determine which LAS file each point comes from. The indices start at a base of 0. The passed LongArray object needs to be instantiated if you want to retrieve this information. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need the file indices.

pPointIDs is an array into which record numbers for retrieved points are placed. These are LAS file point record numbers and they start at a base of 1. These, used in combination with the file indices, enable you to uniquely identify the source of each point; the LAS file and the record number in that file. The DoubleArray object needs to be instantiated if you want to retrieve this information. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need point record numbers.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

This method uses C style arrays which are not supported in the ArcGIS API for Java. Hence the array size cannot be greater than 1. You can only retrieve information for one point at a time.

Specified by:
nextAttrDbl in interface IEnumLasPoint
Parameters:
arraySize - The arraySize (in)
pPointCount - The pPointCount (out: use single element array)
pPoints - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pAttribute - The pAttribute (out: use single element array)
pIntensity - A reference to a com.esri.arcgis.system.ILongArray (in)
pFileIndices - A reference to a com.esri.arcgis.system.ILongArray (in)
pPointIDs - A reference to a com.esri.arcgis.system.IDoubleArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

nextAttrRGB32

public void nextAttrRGB32(int arraySize,
                          int[] pPointCount,
                          _WKSPointZ[] pPoints,
                          _RGB32[] pAttribute,
                          ILongArray pIntensity,
                          ILongArray pFileIndices,
                          IDoubleArray pPointIDs)
                   throws IOException,
                          AutomationException
Populates arrays of WKSPointZs and RGB colors, and optional arrays of 0-based file indices and 1-based point IDs.

Description

Retrieves points and RGB color values from a LAS dataset. Intended to be called in a loop.

arraySize is the allocated size of the array into which points will be retrieved. This tells the enumerator how many points it can retrieve for each call to Next.

pPointCount is a result, set by the call to Next, and represents the number of points retrieved into the point array. The value will be <= arraySize. When it's 0 there are no more points to retrieve.

pPoints is an array of WKSPointZ. Points are retrieved into it. It must be pre-allocated. It's size must be at least as large as arraySize.

pAttribute is an array of the RGB32.

pIntensity is an array into which lidar intensity values are placed for the retrieved points. The LongArray object needs to be instantiated if you want to retrieve intensity. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need intensity values.

pFileIndices is an array into which las file index (i.e., ILasDataset.File) values are placed for the retrieved points. This enables you top determine which LAS file each point comes from. The indices start at a base of 0. The passed LongArray object needs to be instantiated if you want to retrieve this information. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need the file indices.

pPointIDs is an array into which record numbers for retrieved points are placed. These are LAS file point record numbers and they start at a base of 1. These, used in combination with the file indices, enable you to uniquely identify the source of each point; the LAS file and the record number in that file. The DoubleArray object needs to be instantiated if you want to retrieve this information. Pre-existing values in the array, if any, will be cleared before new values are loaded. Pass NULL for this parameter if you don't need point record numbers.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

This method uses C style arrays which are not supported in the ArcGIS API for Java. Hence the array size cannot be greater than 1. You can only retrieve information for one point at a time.

Specified by:
nextAttrRGB32 in interface IEnumLasPoint
Parameters:
arraySize - The arraySize (in)
pPointCount - The pPointCount (out: use single element array)
pPoints - A Structure: com.esri.arcgis.system._WKSPointZ (A com.esri.arcgis.system._WKSPointZ COM typedef) (out: use single element array)
pAttribute - A Structure: com.esri.arcgis.geodatabaseextensions._RGB32 (A com.esri.arcgis.geodatabaseextensions._RGB32 COM typedef) (out: use single element array)
pIntensity - A reference to a com.esri.arcgis.system.ILongArray (in)
pFileIndices - A reference to a com.esri.arcgis.system.ILongArray (in)
pPointIDs - A reference to a com.esri.arcgis.system.IDoubleArray (in)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.

nextLasInfo

public void nextLasInfo(IArray pInfo,
                        int[] pPointCount)
                 throws IOException,
                        AutomationException
Populates an array of ILasPointInfo.

Description

Populates an array of ILasPointInfo.

pInfo is an array of ILasPointInfo. It must be pre-allocated to the desired size.

Product Availability

Available with ArcGIS Engine, ArcGIS Desktop, and ArcGIS Server.

Specified by:
nextLasInfo in interface IEnumLasPoint
Parameters:
pInfo - A reference to a com.esri.arcgis.system.IArray (in)
pPointCount - The pPointCount (out: use single element array)
Throws:
IOException - If there are interop problems.
AutomationException - If the ArcObject component throws an exception.