Master Avatar Container – step 0030 – December 2009

1 Purpose of SrrMasterAvatarContainer

SrrMasterAvatarContainer is the master of all avatar containers. It provides the features

- adding and removing of avatars

- reporting of own position and orientation

The SrrMasterAvatarContainer has to be instantiated exactly once (probably in the main file), if at least one module/model uses the SrrAvatarContainer.

See a more detailed description at SrrAvatarContainer.x3d.

2 User Interface of SrrMasterAvatarContainer (uiAva)

SrrMasterAvatarContainer is an external prototype that is available at the directory srr/.

<ProtoDeclare name='SrrMasterAvatarContainer'>

<ProtoInterface>

<field accessType='inputOutput' name='objType' type='SFString' value='SrrMasterAvatarContainer'/>

<field accessType='inputOutput' name='version' type='SFFloat' value='0.0022'/>

<field accessType='inputOutput' name='commParam' type='SFNode'/>

<field accessType='inputOnly' name='addAvatar' type='SFNode'/>

<field accessType='inputOnly' name='removeAvatar' type='SFNode'/>

<field accessType='outputOnly' name='reportOwnPosition' type='SFVec3f'/>

<field accessType='outputOnly' name='reportOwnRotation' type='SFRotation'/>

</ProtoInterface>

The master avatar container is already functional (addAvatar, removeAvatar, reportOwnPosition, reportOwnRotation), BEFORE it has been initialized. However the interworking with the other avatar containers will only work, AFTER the SRR Framework has been initialized and the user forwarded the commParam pointer to the SrrMasterAvatarContainer.

In the current BSContact/BSCollaborate related implementation, the avatars are represented by <ProtoInstance>s of the AvatarInfo prototype. Those proto instances can be added and removed by addAvatar and removeAvatar, when a remote scene instance has been created/deleted.

The fields reportOwnPosition and reportOwnRotation can be directly <ROUTE>d to the <BSCollaborate> node.