Open3D (C++ API)  0.18.0
Namespaces | Data Structures | Functions
open3d::io::rpc Namespace Reference

Namespaces

 messages
 

Data Structures

class  BufferConnection
 Implements a connection writing to a buffer. More...
 
class  Connection
 
class  ConnectionBase
 Base class for all connections. More...
 
class  DummyMessageProcessor
 
class  DummyReceiver
 
class  MessageProcessorBase
 
class  ZMQReceiver
 Class for the server side receiving requests from a client. More...
 

Functions

std::shared_ptr< messages::StatusUnpackStatusFromReply (const zmq::message_t &msg, size_t &offset, bool &ok)
 
bool ReplyIsOKStatus (const zmq::message_t &msg)
 Convenience function for checking if the message is an OK. More...
 
bool ReplyIsOKStatus (const zmq::message_t &msg, size_t &offset)
 
std::string CreateSerializedRequestMessage (const std::string &msg_id)
 Creates a serialized Request message for testing purposes. More...
 
std::tuple< const void *, size_t > GetZMQMessageDataAndSize (const zmq::message_t &msg)
 
std::tuple< int32_t, std::string > GetStatusCodeAndStr (const messages::Status &status)
 
std::shared_ptr< zmq::message_t > CreateStatusOKMsg ()
 
std::shared_ptr< t::geometry::GeometryMeshDataToGeometry (const messages::MeshData &mesh_data)
 
messages::MeshData GeometryToMeshData (const t::geometry::TriangleMesh &trimesh)
 
messages::MeshData GeometryToMeshData (const t::geometry::PointCloud &pcd)
 
messages::MeshData GeometryToMeshData (const t::geometry::LineSet &ls)
 
std::tuple< std::string, double, std::shared_ptr< t::geometry::Geometry > > DataBufferToMetaGeometry (std::string &data)
 
bool SetPointCloud (const geometry::PointCloud &pcd, const std::string &path, int time, const std::string &layer, std::shared_ptr< ConnectionBase > connection)
 
bool SetTriangleMesh (const geometry::TriangleMesh &mesh, const std::string &path, int time, const std::string &layer, std::shared_ptr< ConnectionBase > connection)
 
bool SetTriangleMesh (const t::geometry::TriangleMesh &mesh, const std::string &path, int time, const std::string &layer, std::shared_ptr< ConnectionBase > connection)
 
bool SetMeshData (const std::string &path, int time, const std::string &layer, const core::Tensor &vertices, const std::map< std::string, core::Tensor > &vertex_attributes, const core::Tensor &faces, const std::map< std::string, core::Tensor > &face_attributes, const core::Tensor &lines, const std::map< std::string, core::Tensor > &line_attributes, const std::string &material, const std::map< std::string, float > &material_scalar_attributes, const std::map< std::string, std::array< float, 4 >> &material_vector_attributes, const std::map< std::string, t::geometry::Image > &texture_maps, const std::string &o3d_type, std::shared_ptr< ConnectionBase > connection)
 
bool SetLegacyCamera (const camera::PinholeCameraParameters &camera, const std::string &path, int time, const std::string &layer, std::shared_ptr< ConnectionBase > connection)
 
bool SetTime (int time, std::shared_ptr< ConnectionBase > connection)
 
bool SetActiveCamera (const std::string &path, std::shared_ptr< ConnectionBase > connection)
 
std::shared_ptr< zmq::context_t > GetZMQContext ()
 Returns the zeromq context for this process. More...
 
void DestroyZMQContext ()
 

Function Documentation

◆ CreateSerializedRequestMessage()

std::string open3d::io::rpc::CreateSerializedRequestMessage ( const std::string &  msg_id)

Creates a serialized Request message for testing purposes.

◆ CreateStatusOKMsg()

std::shared_ptr< zmq::message_t > open3d::io::rpc::CreateStatusOKMsg ( )

◆ DataBufferToMetaGeometry()

std::tuple< std::string, double, std::shared_ptr< t::geometry::Geometry > > open3d::io::rpc::DataBufferToMetaGeometry ( std::string &  data)

This function returns the geometry, the path and the time stored in a SetMeshData message. data must contain the Request header message followed by the SetMeshData message. The function returns a null pointer for the geometry if not successful.

◆ DestroyZMQContext()

void open3d::io::rpc::DestroyZMQContext ( )

Destroys the zeromq context for this process. On windows this needs to be called manually for a clean shutdown of the process.

◆ GeometryToMeshData() [1/3]

messages::MeshData open3d::io::rpc::GeometryToMeshData ( const t::geometry::LineSet ls)

Creates MeshData from a LineSet. This function returns the MeshData object for serialization.

◆ GeometryToMeshData() [2/3]

messages::MeshData open3d::io::rpc::GeometryToMeshData ( const t::geometry::PointCloud pcd)

Creates MeshData from a TriangleMesh. This function returns the MeshData object for serialization.

◆ GeometryToMeshData() [3/3]

messages::MeshData open3d::io::rpc::GeometryToMeshData ( const t::geometry::TriangleMesh trimesh)

Creates MeshData from a TriangleMesh. This function returns the MeshData object for serialization.

◆ GetStatusCodeAndStr()

std::tuple< int32_t, std::string > open3d::io::rpc::GetStatusCodeAndStr ( const messages::Status status)

◆ GetZMQContext()

std::shared_ptr< zmq::context_t > open3d::io::rpc::GetZMQContext ( )

Returns the zeromq context for this process.

◆ GetZMQMessageDataAndSize()

std::tuple< const void *, size_t > open3d::io::rpc::GetZMQMessageDataAndSize ( const zmq::message_t &  msg)

◆ MeshDataToGeometry()

std::shared_ptr< t::geometry::Geometry > open3d::io::rpc::MeshDataToGeometry ( const messages::MeshData mesh_data)

Converts MeshData to a geometry type. MeshData can store TriangleMesh, PointCloud, and LineSet. The function returns a pointer to the base class Geometry. The pointer is null if the conversion is not successful. Note that the msgpack object backing the memory for mesh_data must be alive for calling this function.

◆ ReplyIsOKStatus() [1/2]

bool open3d::io::rpc::ReplyIsOKStatus ( const zmq::message_t &  msg)

Convenience function for checking if the message is an OK.

◆ ReplyIsOKStatus() [2/2]

bool open3d::io::rpc::ReplyIsOKStatus ( const zmq::message_t &  msg,
size_t &  offset 
)

Convenience function for checking if the message is an OK.

Parameters
offset
See also
UnpackStatusFromReply

◆ SetActiveCamera()

bool open3d::io::rpc::SetActiveCamera ( const std::string &  path,
std::shared_ptr< ConnectionBase connection = std::shared_ptr< ConnectionBase >() 
)

Sets the object with the specified path as the active camera.

Parameters
pathPath descriptor defining a location in the scene tree. E.g., 'mygroup/mycam'.
connectionThe connection object used for sending the data. If nullptr a default connection object will be used.

◆ SetLegacyCamera()

bool open3d::io::rpc::SetLegacyCamera ( const camera::PinholeCameraParameters camera,
const std::string &  path = "",
int  time = 0,
const std::string &  layer = "",
std::shared_ptr< ConnectionBase connection = std::shared_ptr< ConnectionBase >() 
)

Function for sending Camera data.

Parameters
cameraThe PinholeCameraParameters object.
pathPath descriptor defining a location in the scene tree. E.g., 'mygroup/mycam'.
timeThe time point associated with the object.
layerThe layer for this object.
connectionThe connection object used for sending the data. If nullptr a default connection object will be used.

◆ SetMeshData()

bool open3d::io::rpc::SetMeshData ( const std::string &  path = "",
int  time = 0,
const std::string &  layer = "",
const core::Tensor vertices = core::Tensor({0}, core::Float32),
const std::map< std::string, core::Tensor > &  vertex_attributes = std::map< std::string, core::Tensor >(),
const core::Tensor faces = core::Tensor({0}, core::Int32),
const std::map< std::string, core::Tensor > &  face_attributes = std::map< std::string, core::Tensor >(),
const core::Tensor lines = core::Tensor({0}, core::Int32),
const std::map< std::string, core::Tensor > &  line_attributes = std::map< std::string, core::Tensor >(),
const std::string &  material = "",
const std::map< std::string, float > &  material_scalar_attributes = std::map< std::string, float >(),
const std::map< std::string, std::array< float, 4 >> &  material_vector_attributes = std::map< std::string, std::array< float, 4 >>(),
const std::map< std::string, t::geometry::Image > &  texture_maps = std::map< std::string, t::geometry::Image >(),
const std::string &  o3d_type = "",
std::shared_ptr< ConnectionBase connection = std::shared_ptr< ConnectionBase >() 
)

Function for sending general mesh data.

Parameters
pathPath descriptor defining a location in the scene tree. E.g., 'mygroup/mypoints'.
timeThe time point associated with the object.
layerThe layer for this object.
verticesTensor with vertices of shape [N,3]
vertex_attributesMap with Tensors storing vertex attributes. The first dim of each attribute must match the number of vertices.
facesTensor with vertex indices defining the faces. The Tensor is of rank 1 or 2. A rank 2 Tensor with shape [num_faces,n] defines num_faces n-gons. If the rank is 1 then polys of different lengths are stored sequentially. Each polygon is stored as a sequence 'n i1 i2 ... in' with n>=3. The type of the array must be int32_t or int64_t
face_attributesMap with Tensors storing face attributes. The first dim of each attribute must match the number of faces.
linesTensor with vertex indices defining the lines. The Tensor is of rank 1 or 2. A rank 2 Tensor with shape [num_lines,n] defines num_lines linestrips. If the rank is 1 then linestrips of different lengths are stored sequentially. Each linestrips is stored as a sequence 'n i1 i2 ... in' with n>=2. The type of the array must be int32_t or int64_t
line_attributesMap with Tensors storing line attributes. The first dim of each attribute must match the number of lines.
materialBasic material model for rendering a DrawableGeometry (e.g. defaultLit or defaultUnlit). Must be non-empty if any material attributes or texture maps are provided.
material_scalar_attributesMap of material scalar attributes for a DrawableGeometry Material (e.g. "point_size", "line_width" or "base_reflectance")
material_vector_attributesMap of material 4-vector attributes for a DrawableGeometry Material (e.g. "base_color" or "absorption_color")
texture_mapsMap of t::geometry::Image for storing textures.
o3d_typeThe type of the geometry. This is one of "PointCloud", "LineSet", "TriangleMesh". This argument should be specified for partial data that has no primary key data, e.g., a triangle mesh without vertices but with other attribute tensors.
connectionThe connection object used for sending the data. If nullptr a default connection object will be used.

◆ SetPointCloud()

bool open3d::io::rpc::SetPointCloud ( const geometry::PointCloud pcd,
const std::string &  path = "",
int  time = 0,
const std::string &  layer = "",
std::shared_ptr< ConnectionBase connection = std::shared_ptr< ConnectionBase >() 
)

Function for sending a PointCloud.

Parameters
pcdThe PointCloud object.
pathPath descriptor defining a location in the scene tree. E.g., 'mygroup/mypoints'.
timeThe time point associated with the object.
layerThe layer for this object.
connectionThe connection object used for sending the data. If nullptr a default connection object will be used.

◆ SetTime()

bool open3d::io::rpc::SetTime ( int  time,
std::shared_ptr< ConnectionBase connection = std::shared_ptr< ConnectionBase >() 
)

Sets the time in the external visualizer.

Parameters
timeThe time value
connectionThe connection object used for sending the data. If nullptr a default connection object will be used.

◆ SetTriangleMesh() [1/2]

bool open3d::io::rpc::SetTriangleMesh ( const geometry::TriangleMesh mesh,
const std::string &  path = "",
int  time = 0,
const std::string &  layer = "",
std::shared_ptr< ConnectionBase connection = std::shared_ptr< ConnectionBase >() 
)

Function for sending a TriangleMesh.

Parameters
meshThe TriangleMesh object.
pathPath descriptor defining a location in the scene tree. E.g., 'mygroup/mypoints'.
timeThe time point associated with the object.
layerThe layer for this object.
connectionThe connection object used for sending the data. If nullptr a default connection object will be used.

◆ SetTriangleMesh() [2/2]

bool open3d::io::rpc::SetTriangleMesh ( const t::geometry::TriangleMesh mesh,
const std::string &  path = "",
int  time = 0,
const std::string &  layer = "",
std::shared_ptr< ConnectionBase connection = std::shared_ptr< ConnectionBase >() 
)

Function for sending a TriangleMesh.

Parameters
meshThe TriangleMesh object.
pathPath descriptor defining a location in the scene tree. E.g., 'mygroup/mypoints'.
timeThe time point associated with the object.
layerThe layer for this object.
connectionThe connection object used for sending the data. If nullptr a default connection object will be used.

◆ UnpackStatusFromReply()

std::shared_ptr< messages::Status > open3d::io::rpc::UnpackStatusFromReply ( const zmq::message_t &  msg,
size_t &  offset,
bool &  ok 
)

Helper function for unpacking the Status message from a reply.

Parameters
msgThe message that contains the Reply and the Status messages.
offsetByte offset into the message. Defines where to start parsing the message. The offset will be updated and will point to the first byte after the parse messages. If unpacking fails offset will be set to the end of the message.
okOutput variable which will be set to true if the unpacking was successful.
Returns
The extracted Status message object. Check ok to see if the returned object is valid.