Open3D (C++ API)  0.17.0
Public Member Functions | Static Public Member Functions | Data Fields
open3d::io::rpc::messages::Array Struct Reference

#include <Messages.h>

Public Member Functions

template<class T >
const T * Ptr () const
 
bool CheckRank (const std::vector< int > &expected_ranks, std::string &errstr) const
 
bool CheckRank (const std::vector< int > &expected_ranks) const
 
bool CheckShape (const std::vector< int64_t > &expected_shape, std::string &errstr) const
 
bool CheckShape (const std::vector< int64_t > &expected_shape) const
 
bool CheckNonEmpty (std::string &errstr) const
 
bool CheckNonEmpty () const
 
bool CheckType (const std::vector< std::string > &expected_types, std::string &errstr) const
 
bool CheckType (const std::vector< std::string > &expected_types) const
 
 MSGPACK_DEFINE_MAP (type, shape, data)
 

Static Public Member Functions

static std::string MsgId ()
 
template<class T >
static Array FromPtr (const T *const ptr, const std::vector< int64_t > &shape)
 
static Array FromTensor (const core::Tensor &tensor)
 

Data Fields

core::Tensor tensor_
 
std::string type
 
std::vector< int64_t > shape
 
msgpack::type::raw_ref data
 

Detailed Description

Array structure inspired by msgpack_numpy but not directly compatible because they use bin-type for the map keys and we must use string. This structure does not have ownership of the data.

The following code can be used in python to create a compatible dict

def numpy_to_Array(arr): if isinstance(arr, np.ndarray): return {'type': arr.dtype.str, 'shape': arr.shape, 'data': arr.tobytes()} raise Exception('object is not a numpy array')

This codes converts the dict back to numpy.ndarray

def Array_to_numpy(dic): return np.frombuffer(dic['data'], dtype=np.dtype(dic['type'])).reshape(dic['shape'])

Member Function Documentation

◆ CheckNonEmpty() [1/2]

bool open3d::io::rpc::messages::Array::CheckNonEmpty ( ) const
inline

◆ CheckNonEmpty() [2/2]

bool open3d::io::rpc::messages::Array::CheckNonEmpty ( std::string &  errstr) const
inline

Checks for a non empty array. Returns false if the array is empty and appends an error description to errstr.

◆ CheckRank() [1/2]

bool open3d::io::rpc::messages::Array::CheckRank ( const std::vector< int > &  expected_ranks) const
inline

◆ CheckRank() [2/2]

bool open3d::io::rpc::messages::Array::CheckRank ( const std::vector< int > &  expected_ranks,
std::string &  errstr 
) const
inline

Checks the rank of the shape. Returns false on mismatch and appends an error description to errstr.

◆ CheckShape() [1/2]

bool open3d::io::rpc::messages::Array::CheckShape ( const std::vector< int64_t > &  expected_shape) const
inline

◆ CheckShape() [2/2]

bool open3d::io::rpc::messages::Array::CheckShape ( const std::vector< int64_t > &  expected_shape,
std::string &  errstr 
) const
inline

Checks the shape against the expected shape. Use -1 in the expected shape to allow arbitrary values. Returns false on mismatch and appends an error description to errstr.

◆ CheckType() [1/2]

bool open3d::io::rpc::messages::Array::CheckType ( const std::vector< std::string > &  expected_types) const
inline

◆ CheckType() [2/2]

bool open3d::io::rpc::messages::Array::CheckType ( const std::vector< std::string > &  expected_types,
std::string &  errstr 
) const
inline

Checks the data type of the array. Returns false if the type is not in the list of expected types and appends an error description to errstr.

◆ FromPtr()

template<class T >
static Array open3d::io::rpc::messages::Array::FromPtr ( const T *const  ptr,
const std::vector< int64_t > &  shape 
)
inlinestatic

Creates an Array from a pointer. The caller is responsible for keeping the pointer valid during the lifetime of the Array object.

◆ FromTensor()

static Array open3d::io::rpc::messages::Array::FromTensor ( const core::Tensor tensor)
inlinestatic

Creates an Array from a Tensor. This will copy the tensor to contiguous CPU memory if necessary and the returned array will keep a reference.

◆ MsgId()

static std::string open3d::io::rpc::messages::Array::MsgId ( )
inlinestatic

◆ MSGPACK_DEFINE_MAP()

open3d::io::rpc::messages::Array::MSGPACK_DEFINE_MAP ( type  ,
shape  ,
data   
)

◆ Ptr()

template<class T >
const T* open3d::io::rpc::messages::Array::Ptr ( ) const
inline

Field Documentation

◆ data

msgpack::type::raw_ref open3d::io::rpc::messages::Array::data

◆ shape

std::vector<int64_t> open3d::io::rpc::messages::Array::shape

◆ tensor_

core::Tensor open3d::io::rpc::messages::Array::tensor_

◆ type

std::string open3d::io::rpc::messages::Array::type

The documentation for this struct was generated from the following file: