Data Structures | Functions
ai_array.h File Reference

Generic array data type and methods. More...

#include "ai_color.h"
#include "ai_math.h"
#include "ai_matrix.h"
#include "ai_string.h"
#include "ai_vector.h"
#include "ai_api.h"
#include <stdint.h>

Go to the source code of this file.

Data Structures

struct  POD_tempf2
 
struct  POD_tempf3
 
struct  POD_tempf4
 

Functions

AI_API AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type,...)
 Create an array and initialize it with supplied data. More...
 
AI_API AtArray * AiArrayAllocate (uint32_t nelements, uint8_t nkeys, uint8_t type)
 Create an empty (uninitialized) array of the specified type. More...
 
AI_API void AiArrayDestroy (AtArray *array)
 Deallocate an array object. More...
 
AI_API AtArray * AiArrayConvert (uint32_t nelements, uint8_t nkeys, uint8_t type, const void *data)
 Create an array and initialize it from an existing data buffer. More...
 
AI_API void AiArrayResize (AtArray *array, uint32_t nelements, uint8_t nkeys)
 Resize an existing array contents in place. More...
 
AI_API AtArray * AiArrayCopy (const AtArray *array)
 Create a copy of an array. More...
 
AI_API bool AiArraySetKey (AtArray *array, uint8_t key, const void *data)
 Initializes data for all the elements in a specific key of an array. More...
 
AI_API void * AiArrayMap (AtArray *array)
 Obtains a pointer to the internal array data for construction. More...
 
AI_API void * AiArrayMapKey (AtArray *array, uint8_t key)
 Obtains a pointer to a specific key in the internal array data for construction. More...
 
AI_API void AiArrayUnmap (AtArray *array)
 Notifies the array that construction is finished. More...
 
AI_API AI_PURE uint32_t AiArrayGetNumElements (const AtArray *array)
 Get the number of elements on each key of the array. More...
 
AI_API AI_PURE uint8_t AiArrayGetNumKeys (const AtArray *array)
 Get the number of keys. More...
 
AI_API AI_PURE uint8_t AiArrayGetType (const AtArray *array)
 Get the type of array elements. More...
 
AI_API AI_PURE size_t AiArrayGetDataSize (const AtArray *array)
 Get the total size in bytes of the data buffer for this array. More...
 
AI_API AI_PURE size_t AiArrayGetKeySize (const AtArray *array)
 Get the total size in bytes of the data for one key. More...
 
AI_API AI_PURE AtVector AiArrayInterpolateVec (const AtArray *array, float time, uint32_t idx)
 Interpolate a vector at a given time from an array. More...
 
AI_API AI_PURE AtRGB AiArrayInterpolateRGB (const AtArray *array, float time, uint32_t idx)
 Interpolate a color at a given time from an array. More...
 
AI_API AI_PURE AtRGBA AiArrayInterpolateRGBA (const AtArray *array, float time, uint32_t idx)
 Interpolate an AtRGBA at a given time from an array. More...
 
AI_API AI_PURE float AiArrayInterpolateFlt (const AtArray *array, float time, uint32_t idx)
 Interpolate a float at a given time from an array. More...
 
AI_API AI_PURE AtMatrix AiArrayInterpolateMtx (const AtArray *array, float time, uint32_t idx)
 Interpolate a matrix at a given time from an array. More...
 
AtArray Getters

The following getter functions return the i'th element in an array of the given type. In case of out-of-bounds access, an error message is generated

AI_API AI_PURE bool AiArrayGetBool (const AtArray *a, uint32_t i)
 
AI_API AI_PURE uint8_t AiArrayGetByte (const AtArray *a, uint32_t i)
 
AI_API AI_PURE int AiArrayGetInt (const AtArray *a, uint32_t i)
 
AI_API AI_PURE uint32_t AiArrayGetUInt (const AtArray *a, uint32_t i)
 
AI_API AI_PURE float AiArrayGetFlt (const AtArray *a, uint32_t i)
 
AI_API AI_PURE AtRGB AiArrayGetRGB (const AtArray *a, uint32_t i)
 
AI_API AI_PURE AtRGBA AiArrayGetRGBA (const AtArray *a, uint32_t i)
 
AI_API AI_PURE AtVector2 AiArrayGetVec2 (const AtArray *a, uint32_t i)
 
AI_API AI_PURE AtVector AiArrayGetVec (const AtArray *a, uint32_t i)
 
AI_API AI_PURE AtMatrix AiArrayGetMtx (const AtArray *a, uint32_t i)
 
AI_API AI_PURE AtString AiArrayGetStr (const AtArray *a, uint32_t i)
 
AI_API AI_PURE void * AiArrayGetPtr (const AtArray *a, uint32_t i)
 
AI_API AI_PURE AtArray * AiArrayGetArray (const AtArray *a, uint32_t i)
 
AtArray Setters

The following functions write an element of a given type into the i'th position in an array. If the write was succesful, these functions will return true, otherwise a detailed error message will be logged and false will be returned.

AI_API bool AiArraySetBool (AtArray *a, uint32_t i, bool val)
 
AI_API bool AiArraySetByte (AtArray *a, uint32_t i, uint8_t val)
 
AI_API bool AiArraySetInt (AtArray *a, uint32_t i, int val)
 
AI_API bool AiArraySetUInt (AtArray *a, uint32_t i, uint32_t val)
 
AI_API bool AiArraySetFlt (AtArray *a, uint32_t i, float val)
 
AI_API bool AiArraySetRGB (AtArray *a, uint32_t i, AtRGB val)
 
AI_API bool AiArraySetRGBA (AtArray *a, uint32_t i, AtRGBA val)
 
AI_API bool AiArraySetVec2 (AtArray *a, uint32_t i, AtVector2 val)
 
AI_API bool AiArraySetVec (AtArray *a, uint32_t i, AtVector val)
 
AI_API bool AiArraySetMtx (AtArray *a, uint32_t i, AtMatrix val)
 
AI_API bool AiArraySetStr (AtArray *a, uint32_t i, AtString val)
 
AI_API bool AiArraySetPtr (AtArray *a, uint32_t i, void *val)
 
AI_API bool AiArraySetArray (AtArray *a, uint32_t i, AtArray *val)
 
bool AiArraySetStr (AtArray *a, uint32_t i, const char *val)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector v1)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector v1, AtVector v2)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector v1, AtVector v2, AtVector v3)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector v1, AtVector v2, AtVector v3, AtVector v4)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector v1, AtVector v2, AtVector v3, AtVector v4, AtVector v5)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector2 v1)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector2 v1, AtVector2 v2)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector2 v1, AtVector2 v2, AtVector2 v3)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector2 v1, AtVector2 v2, AtVector2 v3, AtVector2 v4)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtVector2 v1, AtVector2 v2, AtVector2 v3, AtVector2 v4, AtVector2 v5)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGB v1)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGB v1, AtRGB v2)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGB v1, AtRGB v2, AtRGB v3)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGB v1, AtRGB v2, AtRGB v3, AtRGB v4)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGB v1, AtRGB v2, AtRGB v3, AtRGB v4, AtRGB v5)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGBA v1)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGBA v1, AtRGBA v2)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGBA v1, AtRGBA v2, AtRGBA v3)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGBA v1, AtRGBA v2, AtRGBA v3, AtRGBA v4)
 
AtArray * AiArray (uint32_t nelements, uint8_t nkeys, int type, AtRGBA v1, AtRGBA v2, AtRGBA v3, AtRGBA v4, AtRGBA v5)
 

Detailed Description

Generic array data type and methods.


© 2022 Autodesk, Inc. · All rights reserved · www.arnoldrenderer.com