// Use this for initialization void Start() { Camera.main.transform.parent.transform.position = new Vector3(0f, 0.4f, -4); this.pinPoints = new List <GameObject>(); foreach (Data data in Data.MOUNTAINS) { GameObject pinPoint = Instantiate(pinPointPrefab, new Vector3(data.x, data.y, data.z), Quaternion.identity); PinPoint ppScript = pinPoint.GetComponent <PinPoint>(); ppScript.SetData(data); TextMesh text = pinPoint.GetComponentInChildren <TextMesh>(); text.text = data.name + "\n" + data.shortInfo; // Setup event trigger EventTrigger evtTrigger = pinPoint.GetComponent <EventTrigger>(); evtTrigger.triggers.Clear(); EventTrigger.Entry entry = new EventTrigger.Entry(); entry.eventID = EventTriggerType.PointerClick; entry.callback.AddListener((eventData) => this.PinPointClick(pinPoint)); evtTrigger.triggers.Add(entry); this.pinPoints.Add(pinPoint); } videoStation = Instantiate(videoStationPrefab, Vector3.zero, Quaternion.identity); videoStation.SetActive(false); wikipediaStation = Instantiate(wikipediaStationPrefab, Vector3.zero, Quaternion.identity); wikipediaStation.SetActive(false); isStationRunning = false; }
private PinPoint MoveForward(PinPoint currentPinPoint) { var newPinPoint = new PinPoint { Direction = currentPinPoint.Direction }; switch (currentPinPoint.Direction) { case "N": newPinPoint.X = currentPinPoint.X; newPinPoint.Y = currentPinPoint.Y + 1; break; case "E": newPinPoint.X = currentPinPoint.X + 1; newPinPoint.Y = currentPinPoint.Y; break; case "S": newPinPoint.X = currentPinPoint.X; newPinPoint.Y = currentPinPoint.Y - 1; break; case "W": newPinPoint.X = currentPinPoint.X - 1; newPinPoint.Y = currentPinPoint.Y; break; default: break; } return(newPinPoint); }
/// <summary> /// Returns a pin-point /// </summary> /// <param name="id"></param> /// <returns></returns> public PinPointDTO Get(int id) { var mission = new PinPoint(); using (var unitOfWork = new UnitOfWork()) { mission = unitOfWork.PinPoints.Get(id); } var missionDTO = AutoMapper.Mapper.Map <PinPointDTO>(mission); return(missionDTO); }
public virtual void DbGeographyObject() { using (var ctx = GetContext()) { var pin = new PinPoint { Name = "Foo", Coordinates = DbGeography.FromText("POINT(-122.336106 47.605049)") }; ctx.BulkInsert(new[] { pin }); } }
private void Validate(PinPoint pinPoint) { if (pinPoint.MissionId == 0) { throw new ArgumentNullException(nameof(pinPoint.MissionId)); } if (pinPoint.X == 0) { throw new ArgumentNullException(nameof(pinPoint.X)); } if (pinPoint.Y == 0) { throw new ArgumentNullException(nameof(pinPoint.Y)); } if (pinPoint.Direction.IsEmpty()) { throw new ArgumentNullException(nameof(pinPoint.Direction)); } }
public void PinPointClick(GameObject pinPoint) { videoStation.SetActive(false); wikipediaStation.SetActive(false); if (!isStationRunning) { PinPoint script = pinPoint.GetComponent <PinPoint>(); Data data = script.GetData(); if (data.mediaType == Data.MEDIA_TYPE_WEBPAGE) { WikipediaStation wsScript = wikipediaStation.GetComponent <WikipediaStation>(); Vector3 newPosition = pinPoint.transform.position + (Camera.main.transform.forward * 3.0f); wsScript.LoadAndDisplay( new Vector3(newPosition.x, 3.0f, newPosition.z), data.contentURL ); isStationRunning = true; } else if (data.mediaType == Data.MEDIA_TYPE_VIDEO) { VideoStation vsScript = videoStation.GetComponent <VideoStation>(); vsScript.LoadAndDisplay( new Vector3(pinPoint.transform.position.x, 0.7f, pinPoint.transform.position.z), data.contentURL ); isStationRunning = true; } } else { isStationRunning = false; } }
private List <PinPoint> CreateRoute(ref Mission mission) { var pinPointsRoute = new List <PinPoint>(); var pinPoint = new PinPoint(); if (mission.Id == 0) { // do this only the first time. Next times the initial position will be the previous // final position already pinPoint = new PinPoint { MissionId = mission.Id, X = mission.InitialX, Y = mission.InitialY, Direction = mission.InitialDirection, CreatedDate = DateTime.Now, CreatedByUserId = mission.CreatedByUserId }; pinPointsRoute.Add(pinPoint); // always store the initial pin-point too } else { pinPoint = mission.PinPoints.LastOrDefault(); } int currentIndex; int newIndex; // if we are just moving an existing rover we have to use the "MoveInstructions" var instructions = mission.Id > 0 ? mission.MoveInstructions : mission.Instructions; // loop thru each single instructions foreach (var c in instructions) { switch (c) { case 'L': currentIndex = _directions.IndexOf(pinPoint.Direction); newIndex = currentIndex - 1; if (newIndex < 0) { newIndex = _directions.Length - 1; } if (newIndex > _directions.Length - 1) { newIndex = 0; } pinPoint = new PinPoint { X = pinPoint.X, Y = pinPoint.Y, Direction = _directions[newIndex].ToString() }; break; case 'R': currentIndex = _directions.IndexOf(pinPoint.Direction); newIndex = currentIndex + 1; if (newIndex < 0) { newIndex = _directions.Length - 1; } if (newIndex > _directions.Length - 1) { newIndex = 0; } pinPoint = new PinPoint { X = pinPoint.X, Y = pinPoint.Y, Direction = _directions[newIndex].ToString() }; break; case 'M': pinPoint = MoveForward(pinPoint); break; default: break; } pinPoint.MissionId = mission.Id; pinPoint.CreatedDate = DateTime.Now; pinPoint.CreatedByUserId = mission.CreatedByUserId; pinPointsRoute.Add(pinPoint); } ValidatePinPoints(mission, pinPointsRoute); // set the final output for this mission mission.FinalX = pinPointsRoute.LastOrDefault().X; mission.FinalY = pinPointsRoute.LastOrDefault().Y; mission.FinalDirection = pinPointsRoute.LastOrDefault().Direction; return(pinPointsRoute); }