# DistributedSmoothNode

from direct.distributed.DistributedSmoothNode import DistributedSmoothNode

This specializes DistributedNode to add functionality to smooth motion over time, via the SmoothMover C++ object defined in DIRECT.

## Inheritance:

DistributedSmoothNode:

## Methods of DistributedSmoothNode:

__init__
_checkResume
activateSmoothing
clearSmoothing
d_returnResync
d_setParent
d_suggestResync
delete
disable
doSmoothTask
forceToTruePosition
generate
getSmoothWrtReparents
peerToPeerResync
reloadPosition
returnResync
setComponentH
setComponentL
setComponentP
setComponentR
setComponentT
setComponentTLive
setComponentX
setComponentY
setComponentZ
setSmH
setSmHpr
setSmoothWrtReparents
setSmPos
setSmPosHpr
setSmPosHprL
setSmStop
setSmXY
setSmXYH
setSmXYZH
setSmXZ
setSmZ
smoothPosition
startSmooth
stopSmooth
suggestResync
wantsSmoothing
wrtReparentTo

__init__ def __init__(self, cr) Undocumented function.

_checkResume def _checkResume(self, timestamp) Determine if we were previously stopped and now need to resume movement by making sure any old stored positions reflect the node's current position

activateSmoothing def activateSmoothing(self, smoothing, prediction) Enables or disables the smoothing of other avatars' motion. This used to be a global flag, but now it is specific to each avatar instance. However, see globalActivateSmoothing() in this module. If smoothing is off, no kind of smoothing will be performed, regardless of the setting of prediction. This is not necessarily predictive smoothing; if predictive smoothing is off, avatars will be lagged by a certain factor to achieve smooth motion. Otherwise, if predictive smoothing is on, avatars will be drawn as nearly as possible in their current position, by extrapolating from old position reports. This assumes you have a client repository that knows its localAvatarDoId -- stored in self.cr.localAvatarDoId

clearSmoothing def clearSmoothing(self, bogus=None) Undocumented function.

d_returnResync def d_returnResync(self, avId, timestampB, serverTime, uncertainty) Undocumented function.

d_setParent def d_setParent(self, parentToken) Undocumented function.

d_suggestResync def d_suggestResync(self, avId, timestampA, timestampB, serverTime, uncertainty) Undocumented function.

delete def delete(self) Undocumented function.

disable def disable(self) Undocumented function.

doSmoothTask def doSmoothTask(self, task) Undocumented function.

forceToTruePosition def forceToTruePosition(self) This forces the node to reposition itself to its latest known position. This may result in a pop as the node skips the last of its lerp points.

generate def generate(self) Undocumented function.

getSmoothWrtReparents def getSmoothWrtReparents(self) Undocumented function.

peerToPeerResync def peerToPeerResync(self, avId, timestamp, serverTime, uncertainty) Undocumented function.

reloadPosition def reloadPosition(self) This function re-reads the position from the node itself and clears any old position reports for the node. This should be used whenever show code bangs on the node position and expects it to stick.

returnResync def returnResync(self, avId, timestampB, serverTimeSec, serverTimeUSec, uncertainty) A reply sent by a client whom we recently sent suggestResync to, this reports the client's new delta information so we can adjust our clock as well.

setComponentH def setComponentH(self, h) Undocumented function.

setComponentL def setComponentL(self, l) Undocumented function.

setComponentP def setComponentP(self, p) Undocumented function.

setComponentR def setComponentR(self, r) Undocumented function.

setComponentT def setComponentT(self, timestamp) Undocumented function.

setComponentTLive def setComponentTLive(self, timestamp) Undocumented function.

setComponentX def setComponentX(self, x) Undocumented function.

setComponentY def setComponentY(self, y) Undocumented function.

setComponentZ def setComponentZ(self, z) Undocumented function.

setSmH def setSmH(self, h, timestamp=None) Undocumented function.

setSmHpr def setSmHpr(self, h, p, r, timestamp=None) Undocumented function.

setSmoothWrtReparents def setSmoothWrtReparents(self, flag) Undocumented function.

setSmPos def setSmPos(self, x, y, z, timestamp=None) Undocumented function.

setSmPosHpr def setSmPosHpr(self, x, y, z, h, p, r, timestamp=None) Undocumented function.

setSmPosHprL def setSmPosHprL(self, l, x, y, z, h, p, r, timestamp=None) Undocumented function.

setSmStop def setSmStop(self, timestamp=None) Undocumented function.

setSmXY def setSmXY(self, x, y, timestamp=None) Undocumented function.

setSmXYH def setSmXYH(self, x, y, h, timestamp) Undocumented function.

setSmXYZH def setSmXYZH(self, x, y, z, h, timestamp=None) Undocumented function.

setSmXZ def setSmXZ(self, x, z, timestamp=None) Undocumented function.

setSmZ def setSmZ(self, z, timestamp=None) Undocumented function.

smoothPosition def smoothPosition(self) This function updates the position of the node to its computed smoothed position. This may be overridden by a derived class to specialize the behavior.

startSmooth def startSmooth(self) This function starts the task that ensures the node is positioned correctly every frame. However, while the task is running, you won't be able to lerp the node or directly position it.

stopSmooth def stopSmooth(self) This function stops the task spawned by startSmooth(), and allows show code to move the node around directly.

suggestResync def suggestResync(self, avId, timestampA, timestampB, serverTimeSec, serverTimeUSec, uncertainty) This message is sent from one client to another when the other client receives a timestamp from this client that is so far out of date as to suggest that one or both clients needs to resynchronize their clock information.

wantsSmoothing def wantsSmoothing(self) Undocumented function.

wrtReparentTo def wrtReparentTo(self, parent) Undocumented function.