SoRemoteVizClient Class Reference
[RemoteViz]

RemoteViz Client node enables to integrate RemoteViz into Open Inventor applications. More...

#include <RemoteViz/Clients/nodes/SoRemoteVizClient.h>

Inheritance diagram for SoRemoteVizClient:
SoNode SoFieldContainer SoBase SoRefCounter SoTypedObject

List of all members.

Classes

struct  BinaryMessageEventArg
 Structure given when a received binary message event is raised. More...
struct  FrameEventArg
 Structure given when a received and decoded frame event is raised. More...
struct  KeyboardEventArg
 Structure given when a keyboard event is raised. More...
struct  MessageEventArg
 Structure given when a received text message event is raised. More...
struct  MouseButtonEventArg
 Structure given when a mouse button event is raised. More...
struct  MouseLocationEventArg
 Structure given when a mouse location event is raised. More...
struct  MouseWheelEventArg
 Structure given when a mouse wheel event is raised. More...
struct  RenderAreaSizeEventArg
 Structure given when a renderArea resize event is raised. More...
struct  ServiceMessageEventArg
 Structure given when a ServiceMessage event is raised. More...
struct  TouchEventArg
 Structure given when a touch event is raised. More...

Public Types

enum  DisplayMode {
  STRETCH,
  CROP,
  FIT
}
enum  VideoDecoder {
  NONE,
  OPENH264,
  INTEL_QUICKSYNC,
  NVDECODE,
  VPX
}
enum  StreamingMode {
  UNKNOWN,
  IMAGE,
  VIDEO
}
enum  SecurityProtocols {
  SSLv2 = 0x1,
  SSLv3 = 0x2,
  TLSv1 = 0x4,
  TLSv1_1 = 0x8,
  TLSv1_2 = 0x10,
  TLSv1_3 = 0x20
}

Public Member Functions

virtual SoType getTypeId () const
 SoRemoteVizClient ()
virtual ~SoRemoteVizClient ()
void sendMessage (const SbString &message)
void sendMessage (SoCpuBufferObject *buffer)
void enableSecureConnection (const SbString &publicCertificateFilePath, const SbString &privateKeyFilePath, unsigned int enabledSecurityProtocols=TLSv1_1|TLSv1_2|TLSv1_3, const SbString &privateKeyPassphrase="")
unsigned int getEnabledSecurityProtocols () const
bool isSecureConnection () const
void requestRenderAreaSize (const SbVec2s &size)
SbVec2s getRenderAreaSize () const
SbVec2s getContainerSize () const
bool isImageStreamingSupported () const
bool isVideoStreamingSupported () const
VideoDecoder getVideoDecoder () const
StreamingMode getStreamingMode () const

Static Public Member Functions

static SoType getClassTypeId ()

Public Attributes

SoSFBool connect
SoSFString ipAddress
SoSFUShort port
SoSFString renderAreaName
SoMFEnum videoDecoders
SoMFVec2String connectionParameters
SoSFEnum displayMode
SbEventHandler
< ServiceMessageEventArg & > 
onServiceMessage
SbEventHandler< MessageEventArg & > onReceivedMessage
SbEventHandler
< BinaryMessageEventArg & > 
onReceivedBinaryMessage
SbEventHandler
< RenderAreaSizeEventArg & > 
onRenderAreaResize
SbEventHandler< FrameEventArg & > onReceivedFrame
SbEventHandler< FrameEventArg & > onDecodedFrame
SbEventHandler
< MouseLocationEventArg & > 
onMouseLocationEvent
SbEventHandler
< MouseButtonEventArg & > 
onMouseButtonEvent
SbEventHandler
< MouseWheelEventArg & > 
onMouseWheelEvent
SbEventHandler
< KeyboardEventArg & > 
onKeyboardEvent
SbEventHandler< TouchEventArg & > onTouchEvent

Detailed Description

RemoteViz Client node enables to integrate RemoteViz into Open Inventor applications.

This node is a RemoteViz client enabling software developers to easily integrate remote 3D interaction and visualization into their Open Inventor applications. It enables to establish a connection to a RemoteViz service so that display frames into an Open Inventor viewer.

NOTE: Before using this node, initialize the RemoteVizClient module database by calling RemoteVizClient::init.

SEE ALSO

RemoteVizClient


Member Enumeration Documentation

Display mode value.

Enumerator:
STRETCH 

Stretches the image to fill the container.

The renderArea aspect ratio is not kept.

CROP 

The image is cropped more or less (depending on the container size and the renderArea size) to keep the same scale as the renderArea.

FIT 

This mode resizes the image to fit the container by keeping the same aspect ratio as the renderArea.

Each enumeration represents a security protocol.

Use enableSecureConnection to enable them.

Enumerator:
SSLv2 
SSLv3 
TLSv1 
TLSv1_1 
TLSv1_2 
TLSv1_3 

Streaming mode values.

Enumerator:
UNKNOWN 
IMAGE 
VIDEO 

Video decoder values.

Enumerator:
NONE 

The video decoder is not yet initialized or the streaming mode is not StreamingMode::VIDEO.

OPENH264 

OpenH264 is a H.264 software decoding implementation.


It does not require specific hardware.

INTEL_QUICKSYNC 

Intel QuickSync enables to use an Intel CPU or GPU for H.264 and VP9 hardware accelerated decoding.


It requires compatible hardware and Intel Media SDK. See https://ark.intel.com/ to check the hardware compatibility.
This decoder is not supported on macOS.

NVDECODE 

NVIDIA Video Codec enables to use an NVIDIA GPU for H.264 and VP9 hardware accelerated decoding.


It requires compatible hardware and CUDA toolkit 10.1 or higher. See https://developer.nvidia.com/nvidia-video-codec-sdk to check the hardware compatibility.
This decoder is not supported on macOS.

VPX 

libvpx is a VP9 software decoding implementation.


It does not require specific hardware.


Constructor & Destructor Documentation

SoRemoteVizClient::SoRemoteVizClient (  ) 

Default constructor.

virtual SoRemoteVizClient::~SoRemoteVizClient (  )  [virtual]

Default destructor.


Member Function Documentation

void SoRemoteVizClient::enableSecureConnection ( const SbString publicCertificateFilePath,
const SbString privateKeyFilePath,
unsigned int  enabledSecurityProtocols = TLSv1_1|TLSv1_2|TLSv1_3,
const SbString privateKeyPassphrase = "" 
)

Secures the connection between the client and the server.

Parameters:
publicCertificateFilePath : Path to a file containing the public certificate used to authenticate the server to the clients. The certificate has to be a PEM ("Privacy Enhanced Mail") encoded certificate.
privateKeyFilePath : Path to a file containing the private key used to sign the server key exchange between the client and the server.
enabledSecurityProtocols : Defines the security protocols used to secure the exchange between the client and the server. By default, TLSv1.1, TLSv1.2 and TLSv1.3 protocols are enabled. A bitmask of the security protocols is used. Many security protocols can be enabled by using the logical OR operator.
privateKeyPassphrase : The passphrase that protect the private key. Security warning !! DO NOT hard-code the passphrase !!
Read it from a SECURE location on your system.

static SoType SoRemoteVizClient::getClassTypeId (  )  [static]

Returns the type identifier for this class.

Reimplemented from SoNode.

SbVec2s SoRemoteVizClient::getContainerSize (  )  const

Returns the size of the renderArea container.

Returns:
the renderArea container size
unsigned int SoRemoteVizClient::getEnabledSecurityProtocols (  )  const

Gets the security procotols used in RemoteViz.


Returns:
the bitmask of used security protocols.
SbVec2s SoRemoteVizClient::getRenderAreaSize (  )  const

Returns the size of the renderArea managed by the RemoteViz service.

Returns:
the renderArea size
StreamingMode SoRemoteVizClient::getStreamingMode (  )  const

Returns the type of streaming currently used by the client.


This information is known after receiving the first frame. For instance, you can retrieve this information in the event callback onDecodedFrame.
If this method is called before receiving the first frame, it will return StreamingMode::UNKNOWN.

See also:
StreamingMode
Returns:
streaming mode used by the client.
virtual SoType SoRemoteVizClient::getTypeId (  )  const [virtual]

Returns the type identifier for this specific instance.

Reimplemented from SoNode.

VideoDecoder SoRemoteVizClient::getVideoDecoder (  )  const

Returns the video decoder that has been successfully initialized and currently used by the client to decode video stream.


This information is known after receiving the first frame. For instance, you can retrieve this information in the event callback onDecodedFrame.
If this method is called before receiving the first frame, it will return VideoDecoder::NONE. If the streaming mode is not StreamingMode::VIDEO (

See also:
getStreamingMode), this method will return VideoDecoder::NONE.
VideoDecoder
Returns:
video decoder used by the client.
bool SoRemoteVizClient::isImageStreamingSupported (  )  const

Checks if the client supports image streaming.

Returns:
true if the client supports image streaming
bool SoRemoteVizClient::isSecureConnection (  )  const

Gets the SSL engine activation.

Returns:
true if the secure connection is enabled.
bool SoRemoteVizClient::isVideoStreamingSupported (  )  const

Checks if the client supports video streaming.

Returns:
true if the client supports video streaming
void SoRemoteVizClient::requestRenderAreaSize ( const SbVec2s size  ) 

Sends a request to resize the renderArea associated with the connection.

A server-side onRequestedSize event will be triggered.
If the renderarea size is modified in the server-side onRequestSize callback, the client-side resize event will be triggered.

Parameters:
size : renderArea size
void SoRemoteVizClient::sendMessage ( SoCpuBufferObject buffer  ) 

Sends a binary message to the server.

After being sent, the server-side onReceivedMessage callback will be triggered.

Parameters:
buffer : buffer to be sent
void SoRemoteVizClient::sendMessage ( const SbString message  ) 

Sends a text message to the server.

After being sent, the server-side onReceivedMessage callback will be triggered.

Parameters:
message : message to be sent

Member Data Documentation

Opens/Closes a connection between the client and the RemoteViz service.


After being connected, the server-side onPendingCreateRenderArea callback will be triggered if the renderArea does not exist otherwise the server-side onPendingShareRenderArea callback will be triggered.

Connection parameters that will be sent to the RemoteViz service during the connection establishment.

The container size will be sent to the service as RenderArea requested size. This behavior can be overriden by including the requested height ("requestedHeight") and the requested width ("requestedWidth") in the parameters. If the connection is accepted, a server-side onRequestedSize callback will be triggered.

This setting allows you to specify how to map the renderArea image (server-side) into the container (client-side).


Use enum DisplayMode. Default is FIT.

Specifies the IP address of the RemoteViz Service to which the client will connect.


Triggered when a frame is decoded and displayed.


Triggered when a keyboard event is fired on the client.


Triggered when a mouse button event is fired on the client.


Triggered when a mouse location event is fired on the client.


Triggered when a mouse wheel event is fired on the client.


Triggered when a binary message is received from the RemoteViz service.


Triggered when a frame is received from the RemoteViz service.


Triggered when a text message is received from the RemoteViz service.


Triggered when the renderArea has been resized.


Triggered when a service message is received from the RemoteViz service.


Triggered when a touch event is fired on the client.


Specifies the port of the RemoteViz Service to which the client will connect.


Specifies the renderArea name to which the client will connect.


This setting allows you to specify a preference list of video decoders.


The first decoder (among the decoders of the list) successfully initialized will be used to decode the video stream.
If all decoders of the list fail to be initialized, the decoder VideoDecoder::OPENH264 will be used.
Use enum VideoDecoder. Default is OPENH264.


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

Open Inventor Toolkit reference manual, generated on 15 Mar 2023
Copyright © Thermo Fisher Scientific All rights reserved.
http://www.openinventor.com/