# class
UnsignedIntArray
UnsignedIntArray is the uint implementation of ValueArray. See ValueArray for a description.
See also: ValueArray
# Properties
Property | Description |
---|---|
AlternativeName | A string that can be used to identify the array in collections. |
ItemCount | The number of individual items in the array. Warning! Do not confuse this count with the count of tuples, they are only the same if TupleSize is equal to 1, i.e. when the tuples are exactly one component each. Also note that the item count should be a multiple of TupleSize. Note that the total number of items cannotexceed INT_MAX. |
TupleCount | The tuple count, meaning how many tuples are in the array. If resized to larger array, the new tuples will not be set to anything. |
TupleSize | The tuple size, meaning how many items of the underlying data type is in a tuple. The tuple size must be set before the array is populated. |
# Methods
Method | Description |
---|---|
AddItem | Adds an item to the list, allocates memory as needed to enlarge the list. If many items are being put into the list, use Resize to set the size of the new list (only one reallocation needed) and then use SetItem() / SetTuple() to set the items directly. |
AddTuple | Adds a tuple to the list. Reallocates the list if needed. If many items are being put into the list, use Resize to set the size of the new list (only one reallocation needed) and then use SetItem() / SetRealTuple() to set the items directly. |
AppendArray | Appends an array to this array. The array must be a descendant of ValueArray. For best performance, append arrays of the same basic type. |
Clear | Clears the array and sets the tuple count to 0. Tuple size and name remains the same though. |
CompareTuples | CompareTuples compares a tuple in this array with a tuple in another array. Returns 0 if the tuples are identical, 1 if an element in this array tuple in ascending order is larger and -1 if smaller. |
CopyRange | CopyRange copies a range of tuples from a source array into this array. The arrays must have the same tuple size and base type. This array must be resized to hold the tuples before copying. The basetypes are listed in EBaseTypes. |
CopyTuple | CopyTuple copies one tuple in a source array to a tuple in this array. Both the dest_id and the source_id must exist in the arrays. This array can be used as the source array to copy within the array. |
DeepCopy | Copies data from another array. The arrays must have the same underlying data types. |
ExtractTuples | Extracts tuples from the array. Note that the destination array must have the same classtype and have the same tuple size as the source array. (If both arrays are decendants of ValueArray, they can be of different types, but the conversion is slow). |
GetBaseType | Returns the id of the basic type that the array is based on The ids are listed in the BaseTypes enumeration. |
GetClass | Get the name of the UnsignedIntArray class. |
GetData | Returns all tuples in the array as a single item array. |
GetDataRange | Returns a range of tuples in the array. |
GetItem | Gets the value of an item in the list. The id of the item is the exact location of the item (TupleId * TupleSize + Index of item in tuple) Warning! No range checking is done. |
GetMaxItemId | Returns the id of the last item that is in the array. The id returned is equal to (ItemCount - 1). Warning! Do not confuse this id with the id of a tuple, they are only the same if TupleSize is equal to one, i.e. when the tuples are exactly one component each. |
GetMaxTupleId | Returns the id of the tuple last in the list. If the array is empty, the value is unspecified. Note: GetMaxTupleId() always returns (GetTupleCount()-1) as a signed id. |
GetRealItem | GetRealItem() retrieves the item at position id. The id is the id of the item, not the tuple the item belongs to. GetRealItem() converts the value from the actual underlying data type to a real. |
GetTuple | Gets a tuple in the list. The id is the id of the tuple that is being fetched. Warning! No range checking is done. |
IndexedCopy | Copies tuples from a source array through an id table. The id table dictates the order in which the tuples are to be copied to this array. E.g. If the first item in the id table has the value 14, then the tuple with id 14 in the source array will be copied to the first tuple in this array. Note: All ids in the id table must be valid ids of tuples in the source array. The id table is assumed to have a tuple size of 1. The source array and this array must have the same underlying data type, and have the same tuple size. The array must be large enough to hold the copied data. |
IsA | Returns true if UnsignedIntArray is a or is a descendant of the class named as the type parameter. |
IsEmpty | Returns true if the list is empty. |
IsNull | Returns true if the UnsignedIntArray object is invalid. |
NewCopy | Creates a new array with the same underlying data type, size and tuple settings as this array. To also copy the actual data, set copy_data to true. |
NewPackedCopy | Like NewCopy, NewPackedCopy creates an array with the same underlying data and tuple settings as the source array. However, NewPackedCopy only copies unique tuples, and if the index_array parameter is set, this index array will contain the same number of tuples as the source array, and with the ids of a specific tuples within the new copy of the array. |
SetData | Set the array from a range of data values. Note that the array will be resized to the size of the items. Note that the source_item_count is the number of items to set, NOT the number of tuples. |
SetDataFromMemoryPtr | Set the array from a range of data values in a raw memory block. The array will be resized to the size of the tuples. Please set the tuple sizebefore calling this method. Note! that the source_tuple_count is the number of TUPLES to set, not the number of items. Note! This method is intended for advanced users who want to get maximum performance. No range checking is done in this method, and your code will crash if your read area is not large enough. |
SetDataRange | Set a part of the array from a range of data values. Note that the array will be resized to contain the size of the items. Note that the source_item_count is the number of items to set, NOT the number of tuples, but start_tuple_id IS the first tuple index to update. |
SetItem | Sets an item in the list. The id of the item is the exact location of the item (TupleId * TupleSize + Index of item in tuple) Warning! No range checking is done. |
SetRealItem | SetRealItem() sets the item at position id. The id is the id of the item, not the tuple the item belongs to. SetRealItem() converts the value from real to the actual underlying data type. |
SetTuple | Sets a tuple in the list. The id is the id of the tuple that is being updated. Warning! No range checking is done. |
# Static methods
Method | Description |
---|---|
IsClassA | Returns true if the class is a or is a descendant of the class named as the type parameter. |
SafeCast | SafeCast makes sure the input object is of a class that can be cast into spUnsignedIntArray, and if this is the case, returns the object cast into spUnsignedIntArray. |
# Properties details
# AlternativeName
A string that can be used to identify the array in collections.
# ItemCount
The number of individual items in the array. Warning! Do not confuse this count with the count of tuples, they are only the same if TupleSize is equal to 1, i.e. when the tuples are exactly one component each. Also note that the item count should be a multiple of TupleSize. Note that the total number of items cannotexceed INT_MAX.
# TupleCount
The tuple count, meaning how many tuples are in the array. If resized to larger array, the new tuples will not be set to anything.
# TupleSize
The tuple size, meaning how many items of the underlying data type is in a tuple. The tuple size must be set before the array is populated.
# Methods details
# AddItem
Adds an item to the list, allocates memory as needed to enlarge the list. If many items are being put into the list, use Resize to set the size of the new list (only one reallocation needed) and then use SetItem() / SetTuple() to set the items directly.
# AddTuple
Adds a tuple to the list. Reallocates the list if needed. If many items are being put into the list, use Resize to set the size of the new list (only one reallocation needed) and then use SetItem() / SetRealTuple() to set the items directly.
# AppendArray
Appends an array to this array. The array must be a descendant of ValueArray. For best performance, append arrays of the same basic type.
# Clear
Clears the array and sets the tuple count to 0. Tuple size and name remains the same though.
# CompareTuples
CompareTuples compares a tuple in this array with a tuple in another array. Returns 0 if the tuples are identical, 1 if an element in this array tuple in ascending order is larger and -1 if smaller.
# Syntax
int CompareTuples( spArray otherArray , rid tuple_id , rid other_tuple_id );
# Parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
Array | otherArray | The other array to compare with. | ||
rid | tuple_id | 0 | MaxTupleId | The tuple from this array to use for comparison. |
rid | other_tuple_id | 0 | The tuple from the other array to use for comparison. |
# Return value
Type: int
# CopyRange
CopyRange copies a range of tuples from a source array into this array. The arrays must have the same tuple size and base type. This array must be resized to hold the tuples before copying. The basetypes are listed in EBaseTypes.
# Syntax
void CopyRange( spArray source_array , rid start_dest_id , rid start_src_id , unsigned int count );
# Parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
Array | source_array | The source array to copy from. | ||
rid | start_dest_id | The first destination tuple id. | ||
rid | start_src_id | The first source tuple id. | ||
unsigned int | count | The number of tuples to copy. |
# CopyTuple
CopyTuple copies one tuple in a source array to a tuple in this array. Both the dest_id and the source_id must exist in the arrays. This array can be used as the source array to copy within the array.
# DeepCopy
Copies data from another array. The arrays must have the same underlying data types.
# ExtractTuples
Extracts tuples from the array. Note that the destination array must have the same classtype and have the same tuple size as the source array. (If both arrays are decendants of ValueArray, they can be of different types, but the conversion is slow).
# Syntax
void ExtractTuples( spArray dest , rid start , unsigned int count );
# Parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
Array | dest | The array that will store the extracted tuples. | ||
rid | start | 0 | MaxTupleId | This array tuple index where the extraction starts. |
unsigned int | count | INT_MAX | The number of tuples to extract. |
# GetBaseType
Returns the id of the basic type that the array is based on The ids are listed in the BaseTypes enumeration.
# Syntax
Simplygon::EBaseTypes GetBaseType();
# Parameters
GetBaseType takes no parameters.
# Return value
Type: EBaseTypes
Key | Value | Comment |
---|---|---|
TYPES_ID_VOID | 0 | |
TYPES_ID_BOOL | 1 | |
TYPES_ID_CHAR | 2 | |
TYPES_ID_UCHAR | 3 | |
TYPES_ID_SHORT | 4 | |
TYPES_ID_USHORT | 5 | |
TYPES_ID_INT | 6 | |
TYPES_ID_UINT | 7 | |
TYPES_ID_LONG | 8 | |
TYPES_ID_ULONG | 9 | |
TYPES_ID_FLOAT | 10 | |
TYPES_ID_DOUBLE | 11 | |
TYPES_ID_REAL | 12 | |
TYPES_ID_RID | 13 | |
TYPES_ID_RCHAR | 14 | |
TYPES_ID_RHANDLE | 15 | |
TYPES_ID_STRING | 16 | |
TYPES_ID_OBJECT | 17 |
# GetClass
Get the name of the UnsignedIntArray class.
# GetData
Returns all tuples in the array as a single item array.
# GetDataRange
Returns a range of tuples in the array.
# Syntax
spUnsignedIntData GetDataRange( rid start_tuple_id , unsigned int tuple_count );
# Parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
rid | start_tuple_id | 0 | MaxTupleId | The first id in the range. |
unsigned int | tuple_count | The number of tuples in the range. | ||
UnsignedIntData | ItemCount |
# Return value
Type: UnsignedIntData
# GetItem
Gets the value of an item in the list. The id of the item is the exact location of the item (TupleId * TupleSize + Index of item in tuple) Warning! No range checking is done.
# GetMaxItemId
Returns the id of the last item that is in the array. The id returned is equal to (ItemCount - 1). Warning! Do not confuse this id with the id of a tuple, they are only the same if TupleSize is equal to one, i.e. when the tuples are exactly one component each.
# GetMaxTupleId
Returns the id of the tuple last in the list. If the array is empty, the value is unspecified. Note: GetMaxTupleId() always returns (GetTupleCount()-1) as a signed id.
# GetRealItem
GetRealItem() retrieves the item at position id. The id is the id of the item, not the tuple the item belongs to. GetRealItem() converts the value from the actual underlying data type to a real.
# GetTuple
Gets a tuple in the list. The id is the id of the tuple that is being fetched. Warning! No range checking is done.
# IndexedCopy
Copies tuples from a source array through an id table. The id table dictates the order in which the tuples are to be copied to this array. E.g. If the first item in the id table has the value 14, then the tuple with id 14 in the source array will be copied to the first tuple in this array. Note: All ids in the id table must be valid ids of tuples in the source array. The id table is assumed to have a tuple size of 1. The source array and this array must have the same underlying data type, and have the same tuple size. The array must be large enough to hold the copied data.
# IsA
Returns true if UnsignedIntArray is a or is a descendant of the class named as the type parameter.
# IsEmpty
Returns true if the list is empty.
# IsNull
Returns true if the UnsignedIntArray object is invalid.
# NewCopy
Creates a new array with the same underlying data type, size and tuple settings as this array. To also copy the actual data, set copy_data to true.
# NewPackedCopy
Like NewCopy, NewPackedCopy creates an array with the same underlying data and tuple settings as the source array. However, NewPackedCopy only copies unique tuples, and if the index_array parameter is set, this index array will contain the same number of tuples as the source array, and with the ids of a specific tuples within the new copy of the array.
# SetData
Set the array from a range of data values. Note that the array will be resized to the size of the items. Note that the source_item_count is the number of items to set, NOT the number of tuples.
# SetDataFromMemoryPtr
Set the array from a range of data values in a raw memory block. The array will be resized to the size of the tuples. Please set the tuple sizebefore calling this method. Note! that the source_tuple_count is the number of TUPLES to set, not the number of items. Note! This method is intended for advanced users who want to get maximum performance. No range checking is done in this method, and your code will crash if your read area is not large enough.
# Syntax
void SetDataFromMemoryPtr( void *mem_area_voidInputDataPtr , unsigned int source_tuple_count , unsigned int item_stride , unsigned int tuple_stride );
# Parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
void | mem_area | The array to copy from | ||
unsigned int | source_tuple_count | The number of items in the array | ||
unsigned int | item_stride | The number of bytes between the address of an item to the address of the next. If items are consecutive in memory, this stride should be the size of on item. | ||
unsigned int | tuple_stride | The number of bytes between the address of the first item in one tuple to the address of the first item in the next tuple. E.g, if the items are copied from an array of structs, this stride should be the size of one of the struct objects in the array. |
# SetDataRange
Set a part of the array from a range of data values. Note that the array will be resized to contain the size of the items. Note that the source_item_count is the number of items to set, NOT the number of tuples, but start_tuple_id IS the first tuple index to update.
# Syntax
void SetDataRange( rid start_tuple_id , const unsigned int *source_items_uintInputDataPtr , unsigned int source_item_count );
# Parameters
Type | Name | Min | Max | Description |
---|---|---|---|---|
rid | start_tuple_id | 0 | MaxTupleId | where to start copy to in this array. |
UnsignedIntData | source_items | The array to copy from. | ||
unsigned int | source_item_count | The number of items in the array. |
# SetItem
Sets an item in the list. The id of the item is the exact location of the item (TupleId * TupleSize + Index of item in tuple) Warning! No range checking is done.
# SetRealItem
SetRealItem() sets the item at position id. The id is the id of the item, not the tuple the item belongs to. SetRealItem() converts the value from real to the actual underlying data type.
# SetTuple
Sets a tuple in the list. The id is the id of the tuple that is being updated. Warning! No range checking is done.
# Static methods details
# IsClassA
Returns true if the class is a or is a descendant of the class named as the type parameter.
# SafeCast
SafeCast makes sure the input object is of a class that can be cast into spUnsignedIntArray, and if this is the case, returns the object cast into spUnsignedIntArray.