public void JoinRoom(string roomToJoin, string userName) { Debug.Assert(!string.IsNullOrEmpty(userName), "Username cannot be null or empty"); RoomName = roomToJoin; localUserName = userName; if (NeuraCore.Instance.socket == null || !NeuraCore.Instance.socket.isConnected) { print("Not connected, trying to auto connect"); OnConnected += AutoJoinRoom; Connect(); return; } if (inRoom) { print("Cannot join room when already in one"); return; } globalState = new RoomStateGen(); requestedSiteDrive = ""; requestedPoi = new TargetPlacementObject(); requestedAnnotation = new AnnotationObject(); requestedAnnotationDeletions = new List <AnnotationObject>(); NeuraCore.Instance.JoinRoom(roomToJoin, userName); }
public void TestPoi() { TargetPlacementObject poi = new TargetPlacementObject { id = 0, isValid = true, name = "testPoi", position = Vector3.one }; var fbb = new FlatBufferBuilder(1024); var offset = poi.ToBuffer(fbb); fbb.Finish(offset.Value); var bArray = fbb.SizedByteArray(); var bb = new ByteBuffer(bArray); var desPoi = TargetPlacement.GetRootAsTargetPlacement(bb); print("Poi Test : " + (ComparePOI(poi, desPoi) ? "Passed" : "Failed")); }
/// <summary> /// Requests neuralyzer to place or move the poi. /// </summary> /// <param name="position">The proposed position of the POI</param> /// <returns>Returns whether neuralyzer has handled the request </returns> public bool RequestPOIPlacement(UnityEngine.Vector3 position) { if (!inRoom) // not in a room so do not handle this change { return(false); } if (globalState.poiPlacementObject.isValid && globalState.poiPlacementObject.position == position) { return(true); } requestedPoi = new TargetPlacementObject { id = 0, name = "POI", position = position, isValid = true }; return(true); }
public void TestStateUpdate() { var sup = new StateUpdateObject(); var created = new RoomObjectObj { disposable = true, id = 27, isHidden = false, lookDirection = Vector3.forward, owner = "test", position = Vector3.one, prefab = "a test thing" }; var updated = new RoomObjectObj { disposable = false, id = 23, isHidden = true, lookDirection = Vector3.back, owner = "test", position = Vector3.down, prefab = "" }; var deleted = 0; var TestAnnotation = new AnnotationObject { isValid = true, lineId = "testLine", positions = new[] { Vector3.one }, userId = "testUser" }; TargetPlacementObject poi = new TargetPlacementObject { id = 0, isValid = true, name = "testPoi", position = Vector3.one }; var sitedrive = "SomeSiteDrive"; var TestSUP = new StateUpdateObject { poiPlacementObject = poi, annotationObjects = new List <AnnotationObject>() { TestAnnotation }, create = new List <RoomObjectObj>() { created }, update = new List <RoomObjectObj>() { updated }, delete = new List <int>() { deleted }, siteDrive = sitedrive }; var fbb = new FlatBufferBuilder(1024); var offset = TestSUP.ToBuffer(fbb); fbb.Finish(offset.Value); var bArray = fbb.SizedByteArray(); var bb = new ByteBuffer(bArray); var desObj = StateUpdate.GetRootAsStateUpdate(bb); var passed = CompareStateUpdates(desObj, TestSUP); print("State Update : " + (passed ? "Passed" : "Failed")); }
private bool ComparePOI(TargetPlacementObject poi, TargetPlacement desPoi) { return(desPoi.Id == poi.id && desPoi.Name == poi.name && new Vector3(desPoi.Position.Value.X, desPoi.Position.Value.Y, desPoi.Position.Value.Z) == poi.position); }
private bool TestStateUpdateMessage() { var sup = new StateUpdateObject(); var created = new RoomObjectObj { disposable = true, id = 27, isHidden = false, lookDirection = Vector3.forward, owner = "test", position = Vector3.one, prefab = "a test thing" }; var updated = new RoomObjectObj { disposable = false, id = 23, isHidden = true, lookDirection = Vector3.back, owner = "test", position = Vector3.down, prefab = "" }; var deleted = 0; var TestAnnotation = new AnnotationObject { isValid = true, lineId = "testLine", positions = new[] { Vector3.one }, userId = "testUser" }; TargetPlacementObject poi = new TargetPlacementObject { id = 0, isValid = true, name = "testPoi", position = Vector3.one }; var sitedrive = "SomeSiteDrive"; var TestSUP = new StateUpdateObject { poiPlacementObject = poi, annotationObjects = new List <AnnotationObject>() { TestAnnotation }, create = new List <RoomObjectObj>() { created }, update = new List <RoomObjectObj>() { updated }, delete = new List <int>() { deleted }, siteDrive = sitedrive }; var buf = ServerMessageFactory.BuildMessage(TestSUP); var bb = new ByteBuffer(buf); var desMsg = ServerMessage.GetRootAsServerMessage(bb); var passed = true; passed &= desMsg.DataType == msg.StateUpdate; if (passed) { passed &= CompareStateUpdates(desMsg.Data <StateUpdate>().Value, TestSUP); } return(passed); }