# CLongArray Class Reference

The CLongArray is an uni-dimensional array of LONG values. More...

`#include <xsi_longarray.h>`

List of all members.

## Public Member Functions
| CLongArray (LONG in_size=0)
| CLongArray (const CLongArray &in_array)
| ~CLongArray ()
CLongArray & | operator= (const CLongArray &in_array)
CLongArray & | operator+= (const CLongArray &in_array)
CLongArray & | operator-= (const CLongArray &in_array)
LONG | GetCount () const
CStatus | Attach (LONG *in_pArray, LONG in_nSize)
CStatus | Add (const LONG &in_item)
CStatus | Clear ()
CStatus | Resize (LONG in_size)
CStatus | Resize (LONG in_size, bool in_bReset)
const LONG & | operator[] (LONG in_index) const
LONG & | operator[] (LONG in_index)
bool | operator== (const CLongArray &in_array) const
bool | operator!= (const CLongArray &in_array) const
CString | GetAsText () const
const LONG * | GetArray () const
CStatus | Append (const CLongArray &in_array)

## Detailed Description

The CLongArray is an uni-dimensional array of LONG values.

The array is zero-based, which means that the first item index is 0 and the larger index is one less than the number of elements contained in the array.

Items are added with CLongArray::Add. You can also use CLongArray::Attach to encapsulate an external array. When an array is attached, its items are accessible through the CLongArray API.

See also:
  Cluster::FindIndices, CClusterElementArray::GetArray, X3DObject::AddPolygonMesh, CTriangleRefArray::GetIndexArray, Triangle::GetIndexArray, CSegmentRefArray::GetIndexArray, CSampleRefArray::GetIndexArray, PolygonMesh::Get, PolygonMesh::Set, Point::GetIndexArray, CNurbsSampleRefArray::GetUVSamplingCoordinateArray, CNurbsSampleRefArray::GetIndexArrayFromUVSamplingCoordinateArray, Geometry::AddCluster, Facet::GetIndexArray, ClusterProperty::PutItemsByIndex, ClusterProperty::GetItemsByIndex, Geometry::CreateSubComponent

## Constructor & Destructor Documentation

CLongArray | ( | LONG | in_size = `0` | ) |

Constructs a CLongArray and optionally initializes the array to a known size.

Parameters:

  | in_size | Size of array, defaults to 0.

CLongArray | ( | const CLongArray & | in_array | ) |

Constructs a CLongArray object from another CLongArray object.

Parameters:

  | in_array | constant CLongArray object.

~CLongArray | ( |  | ) |

Default destructor.

## Member Function Documentation

CLongArray& operator= | ( | const CLongArray & | in_array | ) |

Assignment operator.

Parameters:

  | in_array | constant class object.

Returns:
  A reference to this array.

CLongArray& operator+= | ( | const CLongArray & | in_array | ) |

Adds the value of each element of `in_array` to the value of the corresponding element of this CLongArray. The result is stored in this CLongArray object.

Parameters:

  | in_array | A constant CLongArray object.

Returns:
  A reference to this array.

Since:
  5.1

CLongArray& operator-= | ( | const CLongArray & | in_array | ) |

Subtracts the value of each element of `in_array` from the value of the corresponding element of this CLongArray. The result is stored in this CLongArray object.

Parameters:

  | in_array | A constant CLongArray object.

Returns:
  A reference to this array.

Since:
  5.1

LONG GetCount | ( |  | ) | const

Returns the number of items in this CLongArray

Returns:
  The number of items in the array.

CStatus Attach | ( | LONG * | in_pArray,
|  | LONG | in_nSize |
| ) |  |  |

Encapsulates a pointer to LONG without taking ownership of it (i.e. the memory is not released when the CLongArray is deleted). The content of the CLongArray is erased before attaching the external array. Attach does not take a copy of the external array, however functions like Add and Resize will force a copy of the encapsulated array.

Parameters:

  | in_pArray | Array to encapsulate.
  | in_nSize | Number of elements in the array.

Returns:
  CStatus::OK success

  CStatus::Fail Operation failed.

  CStatus::InvalidArgument Pointer is null or size is <= 0.

See also:
  CLongArray::Add, CLongArray::Resize

Since:
  5.1

CStatus Add | ( | const LONG & | in_item | ) |

Adds a LONG at the end of this array.

Parameters:

  | in_item | New item to be added at the end of the array.

Note:
  There is a performance cost when calling Add if an external array has been attached with the Attach method: CLongArray takes a copy of the external array before appending the item.

Returns:
  CStatus::OK success

See also:
  CLongArray::Attach

CStatus Clear | ( |  | ) |

Erases all elements contained in the array.

Returns:
  CStatus::OK success

CStatus Resize | ( | LONG | in_size | ) |

Reallocates memory for the array, preserves its contents if the new size is larger than existing size.

Note:
  There is a performance cost when calling Resize if an external array has been attached with the Attach method. The method takes a copy of the external array before resizing.

Parameters:

  | in_size | New size of the array.

Returns:
  CStatus::OK success

  CStatus::InvalidArgument in_size < 0

See also:
  CLongArray::Attach

CStatus Resize | ( | LONG | in_size,
|  | bool | in_bReset |
| ) |  |  |

Reallocates memory for the array, preserves its contents if the new size is larger than existing size.

Note:
  There is a performance cost when calling Resize if an external array has been attached with the Attach method. The method takes a copy of the external array before resizing.

Parameters:

  | in_size | New size of the array.
  | in_bReset | Set the array with 0 if true. If false the array is not reset and the content is preserved.

Returns:
  CStatus::OK success

  CStatus::InvalidArgument in_size < 0

See also:
  CLongArray::Attach

const LONG& operator[] | ( | LONG | in_index | ) | const

Accessor to elements at a given index. This function can only be called by constant objects, the returned value is read-only.

Parameters:

  | in_index | index in this zero based array.The index must be smaller than the number of elements in the array, otherwise the results are unpredicted.

Returns:
  A read-only reference to the indexed item.

LONG& operator[] | ( | LONG | in_index | ) |

Accessor to elements at a given index.

Parameters:

  | in_index | index in this zero-based array.The index must be smaller than the number of elements in the array, otherwise the results are unpredicted.

Returns:
  A reference to the indexed item.

bool operator== | ( | const CLongArray & | in_array | ) | const

Equality operator.

Parameters:

  | in_array | CLongArray to compare with.

Returns:
  true if in_array contains the same number of elements as this array and if all members of in_array are equal to the corresponding members of the current array.

bool operator!= | ( | const CLongArray & | in_array | ) | const

Inequality operator.

Parameters:

  | in_array | CLongArray to compare with.

Returns:
  true if one member of in_array is different from the corresponding member in the current array or if the arrays are not the same size.

CString GetAsText | ( |  | ) | const

Returns a string that contains the values of this array separated with the comma character.

Returns:
  String of values.

Since:
  5.1

const LONG* GetArray | ( |  | ) | const

Accessor to the internal array of LONGs. The array cannot be modified and the content is undefined when the CLongArray object goes out of scope.

Returns:
  Pointer to an array of LONGs.

Since:
  5.1

CStatus Append | ( | const CLongArray & | in_array | ) |

Appends the content of a CLongArray object to this one.

Parameters:

  | in_array | A constant CLongArray object.

Returns:
  CStatus::OK success

  CStatus::InvalidArgument in_array::GetCount is 0

Since:
  5.1

The documentation for this class was generated from the following file:

- xsi_longarray.h