array template object

Path: /sdk/add_on/scriptarray/

The array type is a template object that allow the scripts to declare arrays of any type. Since it is a generic class it is not the most performatic due to the need to determine characteristics at runtime. For that reason it is recommended that the application registers a template specialization for the array types that are most commonly used.

The type is registered with RegisterScriptArray(asIScriptEngine*).

Public C++ interface

class CScriptArray
{
public:
  // Constructor
  CScriptArray(asUINT length, asIObjectType *ot);
  virtual ~CScriptArray();

  // Memory management
  void AddRef();
  void Release();

  // Type information
  asIObjectType *GetArrayObjectType() const;
  int            GetArrayTypeId() const;
  int            GetElementTypeId() const;

  // Get the current size
  asUINT GetSize();

  // Resize the array
  void   Resize(asUINT numElements);
  
  // Get a pointer to an element. Returns 0 if out of bounds
  void  *At(asUINT index);

  // Copy the contents of one array to another (only if the types are the same)
  CScriptArray &operator=(const CScriptArray&);
};

Public script interface

  class array<class T>
  {
    array();
    array(uint length);

    // Access elements
    // T & operator [] (uint)
    // const T & operator [] (uint) const

    array<T> opAssign(const array<T> & in);

    uint length();
    void resize(uint);
  }

Script example

  int main()
  {
    array<int> arr(3);
    arr[0] = 1;
    arr[1] = 2;
    arr[2] = 3;

    int sum = 0;
    for( uint n = 0; n < arr.length(); n++ )
      sum += arr[n];

    return sum;
  }

Generated on Wed Dec 16 19:34:50 2009 for AngelScript by  doxygen 1.5.9