public void Update(PrimUpdate primUpdate) { Prim.Position = primUpdate.Position; Prim.Rotation = primUpdate.Rotation; Acceleration = new Vector3(primUpdate.Acceleration.X, primUpdate.Acceleration.Y, primUpdate.Acceleration.Z); Velocity = new Vector3(primUpdate.Velocity.X, primUpdate.Velocity.Y, primUpdate.Velocity.Z); RotationVelocity = new Vector3(primUpdate.RotationVelocity.X, primUpdate.RotationVelocity.Y, primUpdate.RotationVelocity.Z); BuildMatrix(); }
private void Objects_OnPrimMoved(Simulator simulator, PrimUpdate prim, ulong regionHandle, ushort timeDilation) { lock (SimPrims) { if (SimPrims.ContainsKey(simulator) && SimPrims[simulator].ContainsKey(prim.LocalID)) { SimPrims[simulator][prim.LocalID].Position = prim.Position; SimPrims[simulator][prim.LocalID].Rotation = prim.Rotation; } } }
/// <summary> /// /// </summary> /// <param name="simulator"></param> /// <param name="primUpdate"></param> /// <param name="regionHandle"></param> /// <param name="timeDilation"></param> void OnPrimMoved(Simulator simulator, PrimUpdate primUpdate, ulong regionHandle, ushort timeDilation) { if (Prims.ContainsKey(primUpdate.LocalID)) { Prims[primUpdate.LocalID].Update(primUpdate); } else { Client.Objects.RequestObject(simulator, primUpdate.LocalID); } }