private bool CompareStateUpdates(StateUpdate desObj, StateUpdateObject sup) { var passed = true; passed &= desObj.SiteDrive == sup.siteDrive; passed &= desObj.Delete(0) == sup.delete[0]; passed &= desObj.Poi.Value.Id == sup.poiPlacementObject.id && desObj.Poi.Value.Name == sup.poiPlacementObject.name && new Vector3(desObj.Poi.Value.Position.Value.X, desObj.Poi.Value.Position.Value.Y, desObj.Poi.Value.Position.Value.Z) == sup.poiPlacementObject.position; passed &= desObj.Create(0).Value.Id == sup.create[0].id && desObj.Create(0).Value.Owner == sup.create[0].owner && new Vector3(desObj.Create(0).Value.Position.Value.X, desObj.Create(0).Value.Position.Value.Y, desObj.Create(0).Value.Position.Value.Z) == sup.create[0].position && new Vector3(desObj.Create(0).Value.LookDirection.Value.X, desObj.Create(0).Value.LookDirection.Value.Y, desObj.Create(0).Value.LookDirection.Value.Z) == sup.create[0].lookDirection; passed &= desObj.Update(0).Value.Id == sup.update[0].id && desObj.Update(0).Value.Owner == sup.update[0].owner && new Vector3(desObj.Update(0).Value.Position.Value.X, desObj.Update(0).Value.Position.Value.Y, desObj.Update(0).Value.Position.Value.Z) == sup.update[0].position && new Vector3(desObj.Update(0).Value.LookDirection.Value.X, desObj.Update(0).Value.LookDirection.Value.Y, desObj.Update(0).Value.LookDirection.Value.Z) == sup.update[0].lookDirection; passed &= desObj.Annotations(0).Value.LineId == sup.annotationObjects[0].lineId && desObj.Annotations(0).Value.UserId == sup.annotationObjects[0].userId && new Vector3(desObj.Annotations(0).Value.Positions(0).Value.X, desObj.Annotations(0).Value.Positions(0).Value.Y, desObj.Annotations(0).Value.Positions(0).Value.Z) == sup.annotationObjects[0].positions[0]; return(passed); }