void UDPKinectSkeleton::_transmitCurrentPose() { if (_udp.valid() && _skeleton.valid()) { ArRef<MemoryBlock> memory = MemoryBlock::NEW(); ArRef<MemoryOStream> stream = MemoryOStream::NEW(memory,0); unsigned int nb = _skeleton->getNbJoints(); stream->writeUInt(nb); SerializationDependencies dependencies; for (unsigned int i(0);i<nb;++i) { ArConstRef<Joint> joint = _skeleton->getJoint(i); joint->serialize(dependencies,stream); } stream->writeInt(_confidences.size()); StlMap<StlString,double>::iterator it(_confidences.begin()); while (it != _confidences.end()) { stream->writeString(it->first); stream->writeDouble(it->second); ++it; } for (unsigned int i(0);i<_addresses.size();++i) { if (!_addresses[i].OSC) { _udp->sendBytes(memory,0,memory->getSize(), _addresses[i].ip,_addresses[i].port); } } } }