NeuralEngine
A Game Engine with embeded Machine Learning algorithms based on Gaussian Processes.
NeuralEngine::Array3< T > Class Template Reference

The Array3 class represents a 3-dimensional array that minimizes the number of new and delete calls. The T objects are stored in a contiguous array.
More...

#include <NeArray3.h>

Collaboration diagram for NeuralEngine::Array3< T >:

Public Member Functions

 Array3 (size_t bound0, size_t bound1, size_t bound2)
 Constructor. More...
 
 Array3 (size_t bound0, size_t bound1, size_t bound2, T *objects)
 Constructor. More...
 
 Array3 ()
 Default constructor. More...
 
 Array3 (Array3 const &)
 
Array3operator= (Array3 const &)
 
 Array3 (Array3 &&)
 
Array3operator= (Array3 &&)
 
size_t GetBound0 () const
 
size_t GetBound1 () const
 
size_t GetBound2 () const
 
T *const * operator[] (int slice) const
 
T ** operator[] (int slice)
 

Private Member Functions

void SetPointers (T *objects)
 
void SetPointers (Array3 const &other)
 

Private Attributes

size_t mBound0
 
size_t mBound1
 
size_t mBound2
 
std::vector< T > mObjects
 
std::vector< T * > mIndirect1
 
std::vector< T ** > mIndirect2
 

Detailed Description

template<typename T>
class NeuralEngine::Array3< T >

The Array3 class represents a 3-dimensional array that minimizes the number of new and delete calls. The T objects are stored in a contiguous array.

Hmetal T, 04.08.2016.

Definition at line 30 of file NeArray3.h.

Constructor & Destructor Documentation

◆ Array3() [1/3]

template<typename T >
Array3::Array3 ( size_t  bound0,
size_t  bound1,
size_t  bound2 
)

Constructor.

<note> Construction. The first constructor generates an array of objects that are owned by Array3. The array has bound0 columns, bound1 rows, and bound2 slices. </note>

Hmetal T, 04.08.2016.

Parameters
bound0The bound 0.
bound1The first bound.
bound2The second bound.

File: NECore/DataTypes/NeArray3.inl

Author:
Email:
Site:

Copyright (c) 2016 . All rights reserved.

Definition at line 12 of file NeArray3.inl.

◆ Array3() [2/3]

template<typename T >
Array3::Array3 ( size_t  bound0,
size_t  bound1,
size_t  bound2,
T *  objects 
)

Constructor.

<note> The second constructor is given an array of objects that are owned by the caller. The array has bound0 columns, bound1 rows, and bound2 slices. </note>

Hmetal T, 04.08.2016.

Parameters
bound0The bound 0.
bound1The first bound.
bound2The second bound.
objects[in,out] If non-null, the objects.

Definition at line 25 of file NeArray3.inl.

◆ Array3() [3/3]

template<typename T >
Array3::Array3 ( )

Default constructor.

<note> Support for dynamic resizing, copying, or moving. If 'other' does not own the original 'objects', they are not copied by the assignment operator. </note>

Hmetal T, 04.08.2016.

Definition at line 37 of file NeArray3.inl.

Member Function Documentation

◆ GetBound0()

template<typename T >
size_t Array3::GetBound0 ( ) const
inline

Definition at line 76 of file NeArray3.inl.

◆ GetBound1()

template<typename T >
size_t Array3::GetBound1 ( ) const
inline

Definition at line 82 of file NeArray3.inl.

◆ GetBound2()

template<typename T >
size_t Array3::GetBound2 ( ) const
inline

Definition at line 88 of file NeArray3.inl.

◆ operator[]() [1/2]

template<typename T >
T *const * Array3::operator[] ( int  slice) const
inline

Definition at line 94 of file NeArray3.inl.

◆ operator[]() [2/2]

template<typename T >
T ** Array3::operator[] ( int  slice)
inline

Definition at line 100 of file NeArray3.inl.

◆ SetPointers() [1/2]

template<typename T >
void Array3::SetPointers ( T *  objects)
private

Definition at line 106 of file NeArray3.inl.

◆ SetPointers() [2/2]

template<typename T >
void Array3::SetPointers ( Array3< T > const &  other)
private

Definition at line 121 of file NeArray3.inl.

Member Data Documentation

◆ mBound0

template<typename T >
size_t NeuralEngine::Array3< T >::mBound0
private

Definition at line 102 of file NeArray3.h.

◆ mBound1

template<typename T >
size_t NeuralEngine::Array3< T >::mBound1
private

Definition at line 102 of file NeArray3.h.

◆ mBound2

template<typename T >
size_t NeuralEngine::Array3< T >::mBound2
private

Definition at line 102 of file NeArray3.h.

◆ mObjects

template<typename T >
std::vector<T> NeuralEngine::Array3< T >::mObjects
private

Definition at line 103 of file NeArray3.h.

◆ mIndirect1

template<typename T >
std::vector<T*> NeuralEngine::Array3< T >::mIndirect1
private

Definition at line 104 of file NeArray3.h.

◆ mIndirect2

template<typename T >
std::vector<T**> NeuralEngine::Array3< T >::mIndirect2
private

Definition at line 105 of file NeArray3.h.


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