# class ShortArray

ShortArray is the short 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. (Inherited from Array)
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 cannot exceed INT_MAX. (Inherited from Array)
Name The name of the ShortArray object. (Inherited from Object)
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. (Inherited from Array)
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. (Inherited from Array)

# 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.
AddObserver Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)
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. (Inherited from Array)
Clear Clears the array and sets the tuple count to 0. Tuple size and name remains the same though. (Inherited from Array)
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. (Inherited from Array)
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. (Inherited from Array)
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. (Inherited from Array)
DeepCopy Copies data from another array. The arrays must have the same underlying data types. (Inherited from Array)
Equals Compares this array, including all its contents, to another array. (Inherited from Array)
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). (Inherited from Array)
GetBaseType Returns the id of the basic type that the array is based on The ids are listed in the BaseTypes enumeration. (Inherited from Array)
GetClass Get the name of the ShortArray class. (Inherited from Object)
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. (Inherited from Array)
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. (Inherited from Array)
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. (Inherited from ValueArray)
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. (Inherited from Array)
IsA Returns true if ShortArray is a or is a descendant of the class named as the type parameter. (Inherited from Object)
IsEmpty Returns true if the list is empty. (Inherited from Array)
IsNull Returns true if the ShortArray object is invalid. (Inherited from Object)
IsSameObjectAs Returns true if the ShortArray object is valid. (Inherited from Object)
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. (Inherited from Array)
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. (Inherited from Array)
NonNull Returns true if the ShortArray object is valid. (Inherited from Object)
PrintInfo Prints the content/info of the ShortArray object to the log. (Inherited from Object)
RemoveObserver Removes a previously added observer object. (Inherited from Object)
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 size before 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. (Inherited from ValueArray)
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. (Inherited from Object)
SafeCast SafeCast makes sure the input object is of a class that can be cast into spShortArray, and if this is the case, returns the object cast into spShortArray. (Inherited from Object)

# Properties details

# AlternativeName

A string that can be used to identify the array in collections.

# Syntax

// Setter
void SetAlternativeName( const char * value ) const;

// Getter
spString GetAlternativeName() const;

# SetAlternativeName parameters

Type Name Min Max Description
const char * value The new alternative name.

# GetAlternativeName return value

Type: spString

# 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 cannot exceed INT_MAX.

# Syntax

// Setter
void SetItemCount( unsigned int value ) const;

// Getter
unsigned int GetItemCount() const;

# SetItemCount parameters

Type Name Min Max Description
unsigned int value 1 INT_MAX The desired item count.

# GetItemCount return value

Type: unsigned int

Default: 1

# Name

The name of the ShortArray object. (Inherited from Object)

# Syntax

// Setter
void SetName( const char * name ) const;

// Getter
spString GetName() const;

# SetName parameters

Type Name Min Max Description
const char * name New name of the object.

# GetName return value

Type: spString

# 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.

# Syntax

// Setter
void SetTupleCount( unsigned int value ) const;

// Getter
unsigned int GetTupleCount() const;

# SetTupleCount parameters

Type Name Min Max Description
unsigned int value 1 INT_MAX The desired tuple count.

# GetTupleCount return value

Type: unsigned int

Default: 1

# 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.

# Syntax

// Setter
void SetTupleSize( unsigned int value ) const;

// Getter
unsigned int GetTupleSize() const;

# SetTupleSize parameters

Type Name Min Max Description
unsigned int value 1 1024 The desired tuple size.

# GetTupleSize return value

Type: unsigned int

Default: 1

# 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.

# Syntax

void AddItem( short value ) const;

# Parameters

Type Name Min Max Description
short value The value of the item.

# AddObserver

Adds a user-defined observer object to the interface, that will receive events from the interface. (Inherited from Object)

# Syntax

rid AddObserver( const spObserver & observer ) const;

# Parameters

Type Name Min Max Description
Observer observer Observer is the object that will receive events.

# Return value

Type: rid

# 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.

# Syntax

void AddTuple( const short *tuple_shortInputDataPtr ) const;

# Parameters

Type Name Min Max Description
ShortData tuple The value(s) of the tuple.

# 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.

# Syntax

void AppendArray( const spArray & source ) const;

# Parameters

Type Name Min Max Description
Array source The array to append to this array.

# Clear

Clears the array and sets the tuple count to 0. Tuple size and name remains the same though.

# Syntax

void Clear() const;

# Parameters

Clear takes no parameters.

# 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( const spArray & otherArray , rid tupleId , rid otherTupleId ) const;

# Parameters

Type Name Min Max Description
Array otherArray The other array to compare with.
rid tupleId 0 MaxTupleId The tuple from this array to use for comparison.
rid otherTupleId 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( const spArray & sourceArray , rid startDestId , rid startSrcId , unsigned int count ) const;

# Parameters

Type Name Min Max Description
Array sourceArray The source array to copy from.
rid startDestId The first destination tuple id.
rid startSrcId 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.

# Syntax

void CopyTuple( const spArray & sourceArray , rid destId , rid srcId ) const;

# Parameters

Type Name Min Max Description
Array sourceArray The source array to copy from.
rid destId 0 MaxTupleId The tuple index in this array to copy into.
rid srcId 0 The tuple index in the source array to copy from.

# DeepCopy

Copies data from another array. The arrays must have the same underlying data types.

# Syntax

void DeepCopy( const spArray & source ) const;

# Parameters

Type Name Min Max Description
Array source The source array to copy from.

# Equals

Compares this array, including all its contents, to another array.

# Syntax

bool Equals( const spArray & other ) const;

# Parameters

Type Name Min Max Description
Array other The other array to compare against.

# Return value

Type: bool

# 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( const spArray & dest , rid start , unsigned int count ) const;

# 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() const;

# 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 ShortArray class. (Inherited from Object)

# Syntax

spString GetClass() const;

# Parameters

GetClass takes no parameters.

# Return value

Type: spString

# GetData

Returns all tuples in the array as a single item array.

# Syntax

spShortData GetData() const;

# Parameters

Type Name Min Max Description

# Return value

Type: spShortData

# GetDataRange

Returns a range of tuples in the array.

# Syntax

spShortData GetDataRange( rid start_tuple_id , unsigned int tuple_count ) const;

# 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.

# Return value

Type: spShortData

# 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.

# Syntax

short GetItem( rid id ) const;

# Parameters

Type Name Min Max Description
rid id 0 MaxItemId The id of the item.

# Return value

Type: short

# 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.

# Syntax

rid GetMaxItemId() const;

# Parameters

GetMaxItemId takes no parameters.

# Return value

Type: rid

# 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.

# Syntax

rid GetMaxTupleId() const;

# Parameters

GetMaxTupleId takes no parameters.

# Return value

Type: rid

# 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.

# Syntax

real GetRealItem( rid id ) const;

# Parameters

Type Name Min Max Description
rid id 0 MaxItemId The item to get.

# Return value

Type: 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.

# Syntax

spShortData GetTuple( rid id ) const;

# Parameters

Type Name Min Max Description
rid id 0 MaxTupleId The id of the tuple.

# Return value

Type: spShortData

# 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.

# Syntax

void IndexedCopy( const spArray & source , const spRidArray & idtable , rid startId ) const;

# Parameters

Type Name Min Max Description
Array source The array from which to copy tuples.
RidArray idtable The array with the tuple indices to copy.
rid startId The first tuple that will receive the copied values.

# IsA

Returns true if ShortArray is a or is a descendant of the class named as the type parameter. (Inherited from Object)

# Syntax

bool IsA( const char * type ) const;

# Parameters

Type Name Min Max Description
const char * type Name of the class to check if ShortArray is, or is a descendant of.

# Return value

Type: bool

# IsEmpty

Returns true if the list is empty.

# Syntax

bool IsEmpty() const;

# Parameters

IsEmpty takes no parameters.

# Return value

Type: bool

# IsNull

Returns true if the ShortArray object is invalid. (Inherited from Object)

# Syntax

bool IsNull() const;

# Parameters

IsNull takes no parameters.

# Return value

Type: bool

# IsSameObjectAs

Returns true if the ShortArray object is valid. (Inherited from Object)

# Syntax

bool IsSameObjectAs( const spObject & object ) const;

# Parameters

Type Name Min Max Description
Object object Object to compare with.

# Return value

Type: bool

# 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.

# Syntax

spArray NewCopy( bool copyData ) const;

# Parameters

Type Name Min Max Description
bool copyData If set, duplicate all the data. If cleared, return an empty array of the same type.

# Return value

Type: Array

# 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.

# Syntax

spArray NewPackedCopy( const spRidArray & indexArray ) const;

# Parameters

Type Name Min Max Description
RidArray indexArray The optional array that will receive the indices of the remapped tuples.

# Return value

Type: Array

# NonNull

Returns true if the ShortArray object is valid. (Inherited from Object)

# Syntax

bool NonNull() const;

# Parameters

NonNull takes no parameters.

# Return value

Type: bool

# PrintInfo

Prints the content/info of the ShortArray object to the log. (Inherited from Object)

# Syntax

void PrintInfo() const;

# Parameters

PrintInfo takes no parameters.

# RemoveObserver

Removes a previously added observer object. (Inherited from Object)

# Syntax

void RemoveObserver( rid observerId ) const;

# Parameters

Type Name Min Max Description
rid observerId ObserverId is the id returned by AddObserver when the observer was added.

# 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.

# Syntax

void SetData( const short *source_items_shortInputDataPtr , unsigned int source_item_count ) const;

# Parameters

Type Name Min Max Description
ShortData source_items The array to copy from.
unsigned int source_item_count The number of items in the array.

# 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 size before 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 ) const;

# 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 short *source_items_shortInputDataPtr , unsigned int source_item_count ) const;

# Parameters

Type Name Min Max Description
rid start_tuple_id 0 MaxTupleId where to start copy to in this array.
ShortData 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.

# Syntax

void SetItem( rid id , short value ) const;

# Parameters

Type Name Min Max Description
rid id 0 MaxItemId The id of the item.
short value The new value of the item.

# 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.

# Syntax

void SetRealItem( rid id , real value ) const;

# Parameters

Type Name Min Max Description
rid id 0 MaxItemId The item to set.
real value The real value to set the item to.

# 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.

# Syntax

void SetTuple( rid id , const short *tuple_shortInputDataPtr ) const;

# Parameters

Type Name Min Max Description
rid id 0 MaxTupleId The id of the tuple.
ShortData tuple The new value(s) of the tuple.

# Static methods details

# IsClassA

Returns true if the class is a or is a descendant of the class named as the type parameter. (Inherited from Object)

# Syntax

static bool IsClassA( const char * type ) const;

# Parameters

Type Name Min Max Description
const char * type Name of the class to check if the class is, or is a descendant of.

# Return value

Type: bool

# SafeCast

SafeCast makes sure the input object is of a class that can be cast into spShortArray, and if this is the case, returns the object cast into spShortArray. (Inherited from Object)

# Syntax

static spShortArray SafeCast( const spObject & object ) const;

# Parameters

Type Name Min Max Description
Object object Object to cast.

# Return value

Type: ShortArray