MCPcopy Create free account
hub / github.com/TorqueGameEngines/Torque3D / packUpdate

Method packUpdate

Engine/source/T3D/camera.cpp:1159–1231  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1157//----------------------------------------------------------------------------
1158
1159U32 Camera::packUpdate(NetConnection *con, U32 mask, BitStream *bstream)
1160{
1161 Parent::packUpdate(con, mask, bstream);
1162
1163 if (bstream->writeFlag(mask & UpdateMask))
1164 {
1165 bstream->writeFlag(mLocked);
1166 mathWrite(*bstream, mOffset);
1167 }
1168
1169 if(bstream->writeFlag(mask & NewtonCameraMask))
1170 {
1171 bstream->write(mAngularForce);
1172 bstream->write(mAngularDrag);
1173 bstream->write(mMass);
1174 bstream->write(mDrag);
1175 bstream->write(mFlyForce);
1176 bstream->write(mSpeedMultiplier);
1177 bstream->write(mBrakeMultiplier);
1178 }
1179
1180 if(bstream->writeFlag(mask & EditOrbitMask))
1181 {
1182 bstream->write(mEditOrbitPoint.x);
1183 bstream->write(mEditOrbitPoint.y);
1184 bstream->write(mEditOrbitPoint.z);
1185 bstream->write(mCurrentEditOrbitDist);
1186 }
1187
1188 // The rest of the data is part of the control object packet update.
1189 // If we're controlled by this client, we don't need to send it.
1190 if(bstream->writeFlag(getControllingClient() == con && !(mask & InitialUpdateMask)))
1191 return 0;
1192
1193 if (bstream->writeFlag(mask & MoveMask))
1194 {
1195 Point3F pos;
1196 mObjToWorld.getColumn(3,&pos);
1197 bstream->write(pos.x);
1198 bstream->write(pos.y);
1199 bstream->write(pos.z);
1200 bstream->write(mRot.x);
1201 bstream->write(mRot.z);
1202
1203 // Only required if in NewtonFlyMode
1204 F32 len = mVelocity.len();
1205 if(bstream->writeFlag(mNewtonMode && len > 0.02f))
1206 {
1207 Point3F outVel = mVelocity;
1208 outVel *= 1.0f/len;
1209 bstream->writeNormalVector(outVel, 10);
1210 len *= 32.0f; // 5 bits of fraction
1211 if(len > 8191)
1212 len = 8191;
1213 bstream->writeInt((S32)len, 13);
1214 }
1215
1216 // Rotation

Callers

nothing calls this directly

Calls 7

mathWriteFunction · 0.85
getColumnMethod · 0.80
writeNormalVectorMethod · 0.80
writeIntMethod · 0.80
writeFlagMethod · 0.45
writeMethod · 0.45
lenMethod · 0.45

Tested by

no test coverage detected