Regina 7.0 Calculation Engine
|
A template class that references a constant three-dimensional C++ array. More...
#include <python/globalarray.h>
Public Types | |
using | Subarray = GlobalArray2D< T, rvp > |
A wrapper class for each two-dimensional subarray. More... | |
Public Member Functions | |
template<size_t dim2, size_t dim3> | |
GlobalArray3D (const T data[][dim2][dim3], size_t dim1) | |
Constructs a new wrapper object for the given 3-dimensional C++ array. More... | |
GlobalArray3D (const GlobalArray3D< T, rvp > &cloneMe) | |
Constructs a new wrapper object that wraps the same C++ array as the given wrapper object. More... | |
~GlobalArray3D () | |
Class destructor. More... | |
size_t | dim1 () const |
Return the first dimension of this array. More... | |
size_t | dim2 () const |
Return the second dimension of this array. More... | |
size_t | dim3 () const |
Return the third dimension of this array. More... | |
const Subarray & | getItem (size_t index) const |
Returns the requested top-dimensional subarray of the array. More... | |
std::ostream & | writeText (std::ostream &out) const |
Writes a string representation of this array, including all of its elements, to the given output stream. More... | |
Static Public Member Functions | |
static void | wrapClass (pybind11::module_ &m, const char *className) |
Constructs a Python wrapper for this class. More... | |
A template class that references a constant three-dimensional C++ array.
An object of this class can be passed through to Python to allow the user access to the underlying C++ array. For the Python user, the usual list operator [] can be used to access the elements of the array. Range checking is performed on any indices that are passed.
The rvp template argument specifies the return value policy for element lookup.
For each different set of template parameters, the corresponding GlobalArray3D class must be wrapped in Python before the first object of this class is wrapped. This wrapping is performed by calling wrapClass().
Note that elements of this array can only be inspected, not modified.
using regina::python::GlobalArray3D< T, rvp >::Subarray = GlobalArray2D<T, rvp> |
A wrapper class for each two-dimensional subarray.
|
inline |
Constructs a new wrapper object for the given 3-dimensional C++ array.
data | the constant 3-dimensional C++ array that is to be wrapped. |
dim1 | the first array dimension of this C++ array. |
dim2 | the second array dimension of this C++ array. This must be a compile-time constant. |
dim3 | the third array dimension of this C++ array. This must be a compile-time constant. |
|
inline |
Constructs a new wrapper object that wraps the same C++ array as the given wrapper object.
Note that the same underlying C++ array is referenced, i.e., the C++ array itself is not cloned.
cloneMe | the wrapper object to clone. |
|
inline |
Class destructor.
All of the internal subarray wrappers are destroyed.
|
inline |
Return the first dimension of this array.
|
inline |
Return the second dimension of this array.
|
inline |
Return the third dimension of this array.
|
inline |
Returns the requested top-dimensional subarray of the array.
If the subarray index is out of range, a Python error will be thrown.
index | the index of the requested subarray. |
|
inlinestatic |
Constructs a Python wrapper for this class.
This routine must be called for each set of template parameters before the first object of this class is wrapped.
m | the Python module in which these wrappers should be installed. |
className | the name that will be assigned to this class in Python. |
|
inline |
Writes a string representation of this array, including all of its elements, to the given output stream.
out | the output stream to which to write. |