/// <summary> /// Should be called after init process has finished /// </summary> /// <param name="posed"></param> public void AddGeoPositioned(GeoPositioned posed) { positionedObjects.Add(posed); posed.transform.parent = originTransform; DebugUI.ArTransform = posed.transform; UpdatePositioned(); }
private void UpdatePositioned(GeoPositioned posed, GeoArithmetic.GeoCoordinates currentOrigin) { double latOff = posed.GeoCoordinates.latitude - currentOrigin.latitude; double lonOff = posed.GeoCoordinates.longitude - currentOrigin.longitude; Vector3 transformPosition = posed.transform.position; if (Debug) { transformPosition.z = arCoreCam.transform.position.z; transformPosition.x = arCoreCam.transform.position.x; } else { transformPosition.z = (float)(latOff * Scale); transformPosition.x = (float)(lonOff * Scale); } posed.transform.position = transformPosition; var infoMsg = string.Format("Updated GeoPos {0},{1}) @ {2},{3}, with O={4},{5} @ {6},{7}", posed.GeoCoordinates.latitude, posed.GeoCoordinates.longitude, transformPosition.z, transformPosition.x, currentOrigin.latitude, currentOrigin.longitude, arCoreCam.transform.position.z, arCoreCam.transform.position.x); logger.Debug(infoMsg); UIManager.ShowAndroidToastMessage(infoMsg); if (posed.IsBearingSet()) { if (Debug) { posed.transform.Rotate(Vector3.up, 180, Space.Self); } else { posed.transform.Rotate(Vector3.up, posed.Bearing, Space.Self); } logger.Debug("Bearing was: {0}, actual euler angles: {1},{2},{3}", posed.Bearing, posed.transform.eulerAngles.x, posed.transform.eulerAngles.y, posed.transform.eulerAngles.z); } DebugUI.PlacementInfo.SetPlacementInfo(posed.transform.position.x, posed.transform.position.z, posed.transform.rotation.eulerAngles.y); //DisplayText(string.Format("x={0},z={1}", posed.transform.position.x, posed.transform.position.z)); }
public void RemoveGeoPositioned(GeoPositioned posed) { positionedObjects.Remove(posed); }