29 #ifndef NVBLASTINDEXFNS_H 30 #define NVBLASTINDEXFNS_H 59 return index == invalidIndex<T>();
100 for (T i = 0; i <= indexRange; ++i)
102 for (; indexPos < indexCount; ++indexPos, indexSource = (T*)((uintptr_t)indexSource + indexByteStride))
104 if (*indexSource + 1 >= i + indexBase)
106 lookup[i] = indexPos;
110 if (indexPos == indexCount)
112 lookup[i] = indexPos;
115 lookup[indexRange + 1] = indexCount;
128 void invertMap(T* inverseMap,
const T* map,
const T size)
130 memset(inverseMap, invalidIndex<T>(), size*
sizeof(T));
132 for (T i = 0; i < size; i++)
136 inverseMap[map[i]] = i;
145 #endif // #ifndef NVBLASTINDEXFNS_H void createIndexStartLookup(T *lookup, T indexBase, T indexRange, T *indexSource, T indexCount, T indexByteStride)
Definition: NvBlastIndexFns.h:96
NV_INLINE bool isInvalidIndex(T index)
Definition: NvBlastIndexFns.h:57
NV_INLINE T invalidIndex()
Definition: NvBlastIndexFns.h:47
void invertMap(T *inverseMap, const T *map, const T size)
Definition: NvBlastIndexFns.h:128
#define NV_INLINE
Definition: NvPreprocessor.h:350
Definition: NvBlastArray.h:37