Transform Authority API

instant3Dhub: Transform Authority API
instant3Dhub

Detailed Description

API to locally transform Nodes in Unreal, hiding visual latency of movement while keeping the instant3Dhub synced.

Classes

class  FI3DHTransformAuthorityAPI
 

Functions

bool AI3DHConnector::GetWorldTransformWithAuthority (const FI3DHTransformAuthorityHandle TransformAuthorityHandle, int NodeId, FMatrix &OutWorldTransform)
 
void AI3DHConnector::SetWorldTransformWithAuthority (const FI3DHTransformAuthorityHandle TransformAuthorityHandle, int NodeId, const FMatrix &WorldTransform)
 
void AI3DHConnector::ReleaseTransformAuthority (const FI3DHTransformAuthorityHandle TransformAuthorityHandle)
 
bool AI3DHConnector::IsTransformAuthorityActive (const FI3DHTransformAuthorityHandle TransformAuthorityHandle) const
 
virtual void FI3DHTransformAuthorityAPI::AcquireTransformAuthority (const TArray< int > &NodeIds, TUniqueFunction< void(FI3DHTransformAuthorityHandle TransformAuthorityHandle, EI3DHErrorCode ErrorCode)> OnComplete)=0
 
virtual bool FI3DHTransformAuthorityAPI::GetWorldTransformWithAuthority (const FI3DHTransformAuthorityHandle TransformAuthorityHandle, int NodeId, FMatrix &OutWorldTransform)=0
 
virtual void FI3DHTransformAuthorityAPI::SetWorldTransformWithAuthority (const FI3DHTransformAuthorityHandle TransformAuthorityHandle, int NodeId, const FMatrix &WorldTransform)=0
 
virtual void FI3DHTransformAuthorityAPI::ReleaseTransformAuthority (const FI3DHTransformAuthorityHandle TransformAuthorityHandle)=0
 
virtual bool FI3DHTransformAuthorityAPI::IsTransformAuthorityActive (const FI3DHTransformAuthorityHandle TransformAuthorityHandle) const =0
 

Function Documentation

◆ AcquireTransformAuthority()

virtual void FI3DHTransformAuthorityAPI::AcquireTransformAuthority ( const TArray< int > & NodeIds,
TUniqueFunction< void(FI3DHTransformAuthorityHandle TransformAuthorityHandle, EI3DHErrorCode ErrorCode)> OnComplete )
pure virtual

Acquires authority to transform specified Nodes (and their child Nodes) locally in Unreal.

Experimental
Introduced in v0.0.23. "TransformAuthorityAPI is a temporary solution subject to changes or replacement."
This API is experimental. As such, there is no guarantee that it won't change or be removed in future releases. Please use at your own risk.
  • Useful to smoothly transform nodes by hiding latency of hub synchronization. Use SetWorldTransformWithAuthority to transform Nodes.
  • Authority means that any changes to the transforms of affected Nodes from other sources (including FI3DHInstanceGraphAPI::SetPropertyRelativeTransform) will be overwritten.
    Parameters
    NodeIdsList of IDs identifying the Nodes to obtain authority for.
    OnCompleteCompletion callback. Returns a handle that is required for further requests and to release authority (see ReleaseTransformAuthority).
    Note
    Acquiring TransformAuthority for a Node multiple times can lead to race conditions when applying the WorldTransform. This also applies to child nodes of any specified Node.

◆ GetWorldTransformWithAuthority() [1/2]

bool AI3DHConnector::GetWorldTransformWithAuthority ( const FI3DHTransformAuthorityHandle TransformAuthorityHandle,
int NodeId,
FMatrix & OutWorldTransform )

Returns the World Transform as currently managed by the Transform Authority.

Experimental
Introduced in v0.0.23. "TransformAuthorityAPI is a temporary solution suspect to changes or replacement."
This API is experimental. As such, there is no guarantee that it won't change or be removed in future releases. Please use at your own risk.
Parameters
TransformAuthorityHandleThe Handle obtained with FI3DHTransformAuthorityAPI::AcquireTransformAuthority
NodeIdThe id of the Node whose WorldTransform has to be set. Must have been included in the Node IDs passed during authority acquisition.
OutWorldTransformOutput parameter receiving the World Transform on success.
Returns
Success/Failure code. Failure might be caused by invalid TransformAuthorityHandle, invalid NodeId (or not part of transform authority), etc.

◆ GetWorldTransformWithAuthority() [2/2]

virtual bool FI3DHTransformAuthorityAPI::GetWorldTransformWithAuthority ( const FI3DHTransformAuthorityHandle TransformAuthorityHandle,
int NodeId,
FMatrix & OutWorldTransform )
pure virtual

Returns the World Transform as currently managed by the Transform Authority.

Experimental
Introduced in v0.0.23. "TransformAuthorityAPI is a temporary solution subject to changes or replacement."
This API is experimental. As such, there is no guarantee that it won't change or be removed in future releases. Please use at your own risk.
Parameters
TransformAuthorityHandleThe Handle obtained with AcquireTransformAuthority
NodeIdThe id of the Node whose WorldTransform has to be set. Must have been included in the Node IDs passed during authority acquisition.
OutWorldTransformOutput parameter receiving the World Transform on success.
Returns
Success/Failure code. Failure might be caused by invalid TransformAuthorityHandle, invalid NodeId (or not part of transform authority), etc.

◆ IsTransformAuthorityActive() [1/2]

bool AI3DHConnector::IsTransformAuthorityActive ( const FI3DHTransformAuthorityHandle TransformAuthorityHandle) const

Returns whether a TransformAuthority is still active.

Experimental
Introduced in v0.0.23. "TransformAuthorityAPI is a temporary solution suspect to changes or replacement."
This API is experimental. As such, there is no guarantee that it won't change or be removed in future releases. Please use at your own risk.
Returns
True if active, false otherwise.

◆ IsTransformAuthorityActive() [2/2]

virtual bool FI3DHTransformAuthorityAPI::IsTransformAuthorityActive ( const FI3DHTransformAuthorityHandle TransformAuthorityHandle) const
pure virtual

Returns whether a TransformAuthority is still active.

Experimental
Introduced in v0.0.23. "TransformAuthorityAPI is a temporary solution subject to changes or replacement."
This API is experimental. As such, there is no guarantee that it won't change or be removed in future releases. Please use at your own risk.
Returns
True if active, false otherwise.

◆ ReleaseTransformAuthority() [1/2]

void AI3DHConnector::ReleaseTransformAuthority ( const FI3DHTransformAuthorityHandle TransformAuthorityHandle)

Releases the Transform Authority of the Unreal Client.

Experimental
Introduced in v0.0.23. "TransformAuthorityAPI is a temporary solution suspect to changes or replacement."
This API is experimental. As such, there is no guarantee that it won't change or be removed in future releases. Please use at your own risk.
Note
Authority remains active internally for Nodes until scheduled Transform updates are synced with the instant3Dhub.
Parameters
TransformAuthorityHandleThe Handle that was obtained with FI3DHTransformAuthorityAPI::AcquireTransformAuthority

◆ ReleaseTransformAuthority() [2/2]

virtual void FI3DHTransformAuthorityAPI::ReleaseTransformAuthority ( const FI3DHTransformAuthorityHandle TransformAuthorityHandle)
pure virtual

Releases the Transform Authority of the Unreal Client.

Experimental
Introduced in v0.0.23. "TransformAuthorityAPI is a temporary solution subject to changes or replacement."
This API is experimental. As such, there is no guarantee that it won't change or be removed in future releases. Please use at your own risk.
Note
Authority remains active internally for Nodes until scheduled Transform updates are synced with the instant3Dhub.
Parameters
TransformAuthorityHandleThe Handle that was obtained with AcquireTransformAuthority

◆ SetWorldTransformWithAuthority() [1/2]

void AI3DHConnector::SetWorldTransformWithAuthority ( const FI3DHTransformAuthorityHandle TransformAuthorityHandle,
int NodeId,
const FMatrix & WorldTransform )

Immediately sets the World Transform of Actors representing the NodeId (and its child nodes) Unreal client-side only.

Experimental
Introduced in v0.0.23. "TransformAuthorityAPI is a temporary solution suspect to changes or replacement."
This API is experimental. As such, there is no guarantee that it won't change or be removed in future releases. Please use at your own risk.

The instant3Dhub is updated at regular intervals.

Parameters
TransformAuthorityHandleThe Handle obtained with FI3DHTransformAuthorityAPI::AcquireTransformAuthority
NodeIdThe id of the Node whose WorldTransform has to be set. Must have been included in the Node IDs passed during authority acquisition.
WorldTransformThe WorldTransform where the Node should be positioned.

◆ SetWorldTransformWithAuthority() [2/2]

virtual void FI3DHTransformAuthorityAPI::SetWorldTransformWithAuthority ( const FI3DHTransformAuthorityHandle TransformAuthorityHandle,
int NodeId,
const FMatrix & WorldTransform )
pure virtual

Immediately sets the World Transform of Actors representing the NodeId (and its child nodes) Unreal client-side only.

Experimental
Introduced in v0.0.23. "TransformAuthorityAPI is a temporary solution subject to changes or replacement."
This API is experimental. As such, there is no guarantee that it won't change or be removed in future releases. Please use at your own risk.

The instant3Dhub is updated at regular intervals.

Parameters
TransformAuthorityHandleThe Handle obtained with AcquireTransformAuthority
NodeIdThe id of the Node whose WorldTransform has to be set. Must have been included in the Node IDs passed during authority acquisition.
WorldTransformThe WorldTransform where the Node should be positioned.