Warning! This version of documentation is OUTDATED, as it describes an older SDK version! Please switch to the documentation for the latest SDK version.
Warning! This version of documentation describes an old SDK version which is no longer supported! Please upgrade to the latest SDK version.

# Unigine::ivec2 Struct

This class represents a vector of 2 integer components.

## ivec2 ( ) #

Default constructor. Produces a zero vector.

## ivec2 ( const ivec2 & v ) #

Constructor. Initializes the vector by copying a given source vector.

### Arguments

• const ivec2 & v - Source vector.

## ivec2 ( int x, int y ) #

Constructor. Initializes the vector using given integer values.

### Arguments

• int x - X component of the vector.
• int y - Y component of the vector.

### Examples

Source code (UnigineScript)
``````ivec2(2, 3);
/*
Creates a vector (2, 3)
*/``````

## explicit ivec2 ( int v ) #

Constructor. Initializes the vector using a given scalar value: x=v, y=v.

### Arguments

• int v - Scalar value.

### Examples

Source code (UnigineScript)
``````ivec2(1);
/*
Creates a vector (1, 1)
*/``````

## explicit ivec2 ( const vec2 & v ) #

Constructor. Initializes the vector using a given vec2 source vector.

### Arguments

• const vec2 & v - Source vector.

## explicit ivec2 ( const dvec2 & v ) #

Constructor. Initializes the vector using a given dvec2 source vector.

### Arguments

• const dvec2 & v - Source vector.

## explicit ivec2 ( const int * v ) #

Constructor. Initializes the vector using a given pointer to the array of integer elements: x=v[0], y=v[1].

### Arguments

• const int * v - Pointer to the array of integer elements.

## voidset ( int x_, int y_ ) #

Sets the vector by components.

### Arguments

• int x_ - X component of the vector.
• int y_ - Y component of the vector.

## voidset ( const int * val ) #

Sets the vector using the array of integer elements: x=val[0], y=val[1].

### Arguments

• const int * val - Pointer to the array of integer elements.

## voidset ( const ivec2 & val ) #

Sets the vector equal to the specified source vector.

### Arguments

• const ivec2 & val - Source vector.

## voidset ( int val ) #

Sets the vector components equal to specified scalar value: x=val, y=val.

### Arguments

• int val - Scalar value.

## int *get ( ) #

Returns the pointer to the vector.

### Return value

Pointer to the vector.

## const int *get ( ) # const

Returns the constant pointer to the vector.

### Return value

Pointer to the vector.

## voidget ( int * val ) #

Gets the vector: val[0]=x, val[1]=y.

### Arguments

• int * val - Pointer to the array of integer elements.

## intlength2 ( ) #

Returns the squared length of the vector.

### Return value

Squared length of the vector.

## const int *operator const int * ( ) #

Performs type conversion to const int *.

## const void *operator const void * ( ) #

Performs type conversion to const void *.

## int *operator int * ( ) #

Performs type conversion to int *.

## void *operator void * ( ) #

Performs type conversion to void *.

## ivec2 &operator*= ( int val ) #

Performs scalar multiplication.

### Arguments

• int val - Scalar value.

### Return value

Resulting vector.

## ivec2 &operator*= ( const ivec2 & val ) #

Performs vector multiplication.

### Arguments

• const ivec2 & val - Vector.

### Return value

Resulting vector.

## ivec2 &operator+= ( const ivec2 & val ) #

### Arguments

• const ivec2 & val - Vector.

### Return value

Resulting vector.

## ivec2operator- ( ) # const

Performs vector negation.

### Return value

Resulting vector.

## ivec2 &operator-= ( const ivec2 & val ) #

Performs vector subtraction.

### Arguments

• const ivec2 & val - Vector.

### Return value

Resulting vector.

## ivec2 &operator/= ( int val ) #

Performs componentwise integer division of the vector by the scalar.

### Arguments

• int val - Scalar value.

### Return value

Resulting vector.

### Examples

Source code (UnigineScript)
``````ivec2 a = ivec2(6, 10);
a /= 2;
/*
Initial value of vector a:
a (6, 10)

a /= 2;
Vector a after operation:
a (3, 5)
*/``````

## ivec2 &operator/= ( const ivec2 & val ) #

Performs componentwise integer division of vectors.

### Arguments

• const ivec2 & val - Vector.

### Return value

Resulting vector.

### Examples

Source code (UnigineScript)
``````ivec2 a, b;
a = ivec2(6, 10);
b = ivec2(2, 6);
a /= b;
/*
Initial values of vectors a and b:
a (6, 10)
b (2, 6)

a /= b;
Vector a after operation:
a (3, 1)``````

## ivec2 &operator<<= ( int val ) #

Performs componentwise left bit shift.

### Arguments

• int val - Shift amount.

### Return value

Resulting vector.

## ivec2 &operator= ( const ivec2 & val ) #

Performs vector assignment. Destination vector = Source vector.

### Arguments

• const ivec2 & val - Source vector.

Result.

## ivec2 &operator>>= ( int val ) #

Performs componentwise right bit shift.

### Arguments

• int val - Shift amount.

### Return value

Resulting vector.

## int &operator[] ( int i ) #

Performs array access to the vector item reference by using given item index.

### Arguments

• int i - Vector item index.

### Return value

Vector item reference.

## intoperator[] ( int i ) # const

Performs array access to the vector item by using given item index.

### Arguments

• int i - Vector item index.

### Return value

Vector item.
Last update: 2019-08-16