Unigine::Plugins::Syncker::Slave Class
The functionality described in this article is not available in the Community SDK edition.
You should upgrade to- Sim
SDK edition to use it.
You should upgrade to
Header: | #include <plugins/Unigine/Syncker/UnigineSyncker.h> |
Inherits from: | Syncker |
This class represents the slave interface of the Syncker.
Syncker plugin must be loaded.
Slave Class
Enums
CALLBACK_INDEX#
SKIP_FLAGS#
Flags defining data from the Master to be ignored by the Slave.Name | Description |
---|---|
WORLD_LOAD = 1 | Loading worlds. |
GAME = 1 << 1 | Game class (time and speed), for particles — ifps and seed. |
PLAYER = 1 << 2 | Current Master camera synchronization (every frame). |
RENDER = 1 << 3 | Render and post-effects settings. |
NODES = 1 << 4 | Nodes. |
MATERIALS = 1 << 5 | Materials. |
SET_PLAYER = 1 << 6 | Ignoring setSlavePlayer() calls by the Master. |
VIEW_OFFSET = 1 << 7 | Changing view offset parameters. |
USER_DATA = 1 << 8 | Processing user packets sent via sendMessage(). |
NODE_LOAD = 1 << 9 | Loading nodes from *.node files. |
NODEREF_LOAD = 1 << 10 | Loading node references from *.node files. |
NODE_CREATE = 1 << 11 | Node creation. |
NODE_ID_REGISTER = 1 << 12 | Links between dynamic nodes of the Master and Slaves (via ID) created via loadNode(), createNode(), etc. |
NODE_DELETE = 1 << 13 | Node removal. |
RUN_CONSOLE = 1 << 14 | Running console commands. |
PROJECTIONS = 1 << 15 | Projections configuration. Can be disabled for Slaves having their projections configured manually via API. |
Members
int getMasterNodeID ( int slave_node_id ) #
Returns the ID of a dynamic node on the Master by its local ID on the Slave. A Slave does not create an exact copy of a node created on the Master, their IDs do not match. So, knowing an ID of a local copy of a node created on the Master, you can easily find its original on the Master. This can be used in user messages, when you need to apply some specific modifications to source node on the Master.Arguments
- int slave_node_id - Node's ID on the Slave.
Return value
ID of the node on the Master.int getSlaveNodeID ( int master_node_id ) #
Returns the local ID of a dynamic node on the Slave by its ID on the Master. A Slave does not create an exact copy of a node created on the Master, their IDs do not match. So, if you created a node on the Master and then called the Syncker::Master::createNode() method, you can easily find its copy on the current Slave. This can be used in user messages, when you need to apply some specific modifications to a Slave's copy of a node, that was created on the Master.Arguments
- int master_node_id - Node's ID on the Master.
Return value
ID of the node on the Slave.void addSyncNode ( const Ptr<Node> & node, int master_node_id ) #
Enables synchronization of parameters of the given node via the UDP protocol.Scene nodes are not synchronized by default, this method is used to add a particular node to the synchronization queue.
Arguments
void addSyncNodeID ( int slave_node_id, int master_node_id ) #
Enables synchronization of parameters of the given node via the UDP protocol.Scene nodes are not synchronized by default, this method is used to add a particular node (by its id) to the synchronization queue.
Arguments
- int slave_node_id - ID of the node on the Slave.
- int master_node_id - ID of the node on the Master.
bool removeSyncNode ( const Ptr<Node> & node ) #
Removes the specified node from the synchronization queue.Arguments
Return value
true if the node was successfully removed from the synchronization queue; otherwise, false.bool removeSyncNodeID ( int slave_node_id ) #
Removes the node with the given number from the synchronization queue.Arguments
- int slave_node_id - Node number in the synchronization queue.
Return value
true if the node was successfully removed from the synchronization queue; otherwise, false.long long getID ( ) #
Returns the current ID of the Slave.Return value
ID of the slave combined as follows: IP address (32 bits) + port number (16 bits).void setSkipFlags ( int flags ) #
Sets the skip flags enabling you to ignore certain information from the Master.Arguments
- int flags - A combination of skip flags to be used, for example:
slave->setSkipFlags(GAME | WORLD_LOAD | USER_DATA);
int getSkipFlags ( ) #
Returns the current skip flags combination enabling you to ignore certain information from the Master.Return value
A combination of currently used skip flags.void * addCallback ( Slave::CALLBACK_INDEX callback, Unigine::CallbackBase * func ) #
Adds a callback of the specified type. Callback functions can be used to determine actions to be performed when sending or receiving user messages, as well as when changing settings on the Master or a Slave. The signature of the callback function can be one of the following:// for the Syncker::Slave::SESSION_STARTED type
void callback_function_name(void);
// for the Syncker::Slave::SESSION_FINISHED type
void callback_function_name(void);
// for the Syncker::Slave::MASTER_CONNECTED type
void callback_function_name(void);
// for the Syncker::Slave::MASTER_DISCONNECTED type
void callback_function_name(const char *reason);
// for the Syncker::Slave::NODE_LOADED type
void callback_function_name(const NodePtr &node);
Arguments
- Slave::CALLBACK_INDEX callback - Callback type. One of the following values:
- Unigine::CallbackBase * func - Callback pointer.
Return value
Number of the last added callback of the specified type, if the callback was added successfully; otherwise, -1.bool removeCallback ( Slave::CALLBACK_INDEX callback, void * func ) #
Removes a given callback from the list of callbacks of the specified type. Callback functions can be used to determine actions to be performed when sending or receiving user messages, as well as when changing settings on the Master or a Slave.Arguments
- Slave::CALLBACK_INDEX callback - Callback type. One of the following values:
- void * func - Callback pointer.
Return value
true if the position callback with the given ID was removed successfully; otherwise false.void clearCallbacks ( Slave::CALLBACK_INDEX callback ) #
Clears all added callbacks of the specified type. Callback functions can be used to determine actions to be performed when sending or receiving user messages, as well as when changing settings on the Master or a Slave.Arguments
- Slave::CALLBACK_INDEX callback - Callback type. One of the following values:
Last update:
2023-06-23
Help improve this article
Was this article helpful?
(or select a word/phrase and press Ctrl+Enter)