@@ -82,6 +82,7 @@ abstract class ProtobufBridge(@JvmField protected val bridgeName: String) : ISte
8282 target.position = source.position
8383 target.setRotation(source.getRotation())
8484 target.status = source.status
85+ target.setVelocity(source.getVelocity())
8586 target.batteryLevel = source.batteryLevel
8687 target.batteryVoltage = source.batteryVoltage
8788 target.dataTick()
@@ -103,23 +104,38 @@ abstract class ProtobufBridge(@JvmField protected val bridgeName: String) : ISte
103104
104105 @VRServerThread
105106 protected fun writeTrackerUpdate (localTracker : Tracker ? ) {
106- val builder = ProtobufMessages .Position .newBuilder().setTrackerId(
107- localTracker!! .id,
108- )
109- if (localTracker.hasPosition) {
110- val pos = localTracker.position
107+ val tracker = localTracker ? : return
108+
109+ val builder = ProtobufMessages .Position .newBuilder()
110+ .setTrackerId(tracker.id)
111+
112+ if (tracker.hasPosition) {
113+ val pos = tracker.position
111114 builder.setX(pos.x)
112115 builder.setY(pos.y)
113116 builder.setZ(pos.z)
114117 }
115- if (localTracker.hasRotation) {
116- val rot = localTracker.getRotation()
118+
119+ if (tracker.hasRotation) {
120+ val rot = tracker.getRotation()
117121 builder.setQx(rot.x)
118122 builder.setQy(rot.y)
119123 builder.setQz(rot.z)
120124 builder.setQw(rot.w)
121125 }
122- sendMessage(ProtobufMessage .newBuilder().setPosition(builder).build())
126+
127+ if (tracker.allowVelocity) {
128+ val vel = tracker.getVelocity()
129+ builder.setVx(vel.x)
130+ builder.setVy(vel.y)
131+ builder.setVz(vel.z)
132+ }
133+
134+ sendMessage(
135+ ProtobufMessage .newBuilder()
136+ .setPosition(builder)
137+ .build(),
138+ )
123139 }
124140
125141 @VRServerThread
@@ -169,6 +185,16 @@ abstract class ProtobufBridge(@JvmField protected val bridgeName: String) : ISte
169185 ),
170186
171187 )
188+ if (positionMessage.hasVx()) {
189+ tracker
190+ .setVelocity(
191+ Vector3 (
192+ positionMessage.vx,
193+ positionMessage.vy,
194+ positionMessage.vz,
195+ ),
196+ )
197+ }
172198 tracker.dataTick()
173199 }
174200 }
0 commit comments