public void Present(MultimediaObject mmo) { DisplayInfo(mmo); imagePresenter.LoadImage(CineastUtils.GetThumbnailUrl(mmo)); active = mmo; titleLabel.text = "Result " + mmo.resultIndex; }
/** * Takes an Int and returns an Exhibit[] with filled with the specific number of Exhibits */ private static Exhibit[] getExhibits(int number, List <String> ids) { Exhibit[] re = new Exhibit[number]; List <String> id = ids; Exhibit add; float pos = 1; int name = 1; for (int i = 0; i < number; i++) { var exhibitToAdd = new Exhibit { path = CineastUtils.GetImageUrlbyID(id[i]), name = name.ToString(), position = new Vector3(pos, 1.5f, 1), size = new Vector3(1, 1, 1), id = "" + i, type = "IMAGE", light = false, description = "" }; pos += 1.5f; name++; re[i] = exhibitToAdd; } return(re); }
public void Present(MultimediaObject mmo, bool loadInRange = true) { Debug.Log("Presenting " + mmo.id); //panelSwitcher.SwitchToDisplay(); panelManager.ShowPanel("display"); presenter.LoadImage(CineastUtils.GetImageUrl(mmo)); logger.Debug("URL: " + CineastUtils.GetImageUrl(mmo)); alphaController.SetAlpha(0.5f); if (controller.GetHeading(mmo) != -1) { headingDisplay.targetHeading = controller.GetHeading(mmo); } infoText.text = string.Format("Index: {0}\nDate: {1}", mmo.resultIndex, FormatDate(mmo)); activeMmo = mmo; if (loadInRange) { Debug.Log("LOAD IN RANGE"); List <MultimediaObject> inRangeList = controller.GetInRange(activeMmo); temporalSlider.Setup(inRangeList, activeMmo); // ArgumentNull in DatetimeParser, parameter name s } controller.StopLocationServices(); // TODO Remove activeMMO and restart location service }
public void GoMultiTermQuery(SimilarQuery query) { logger.Debug("GoMultiQuery"); ChangeState(State.CINEAST_REQUEST); Clean(); ResetSession(); uiManager.panelManager.ShowPanel("waiting"); CategoryRatio cr = CineastUtils.CreateUniformRatio(query); logger.Debug("Ratios: " + cr.ToString()); cineast.RequestWeightedSimilarAndThen(query, cr, HandleCineastResult); }
private void Display3D(MultimediaObject mmo) { logger.Debug("Displaying AR style! " + mmo.id); var scrn = Instantiate(ScreenPrefab); var mmoContainer = scrn.AddComponent <MMOContainer>(); var textured = scrn.GetComponentInChildren <WebTextured>(); if (textured == null) { textured = scrn.AddComponent <WebTextured>(); } textured.url = CineastUtils.GetImageUrl(mmo); // Too high res? //textured.url = CineastUtils.GetThumbnailUrl(mmo); textured.LoadImageFromWeb(); mmoContainer.MultimediaObject = mmo; var geoposed = scrn.AddComponent <GeoPositioned>(); geoposed.GeoCoordinates = new GeoArithmetic.GeoCoordinates(mmo.latitude, mmo.longitude); geoposed.Bearing = (float)mmo.bearing; arMapper.AddGeoPositioned(geoposed); ActiveScreens.Add(scrn); }
private void AddObjectToScroll(MultimediaObject mmo) { Debug.Log(":AddObjectToScroll " + (mmo != null ? JsonUtility.ToJson(mmo) : "null")); GameObject panel = Instantiate(prefab); Debug.Log("panel: " + (panel == null ? "null" : "found")); panel.transform.SetParent(scrollContent, false); var ctrl = panel.GetComponent <DisplayController>(); Debug.Log("ctrl " + (ctrl == null ? "Null" : "received")); ctrl.SetTitle(string.Format("Result: {0}", mmo.resultIndex)); Debug.Log("initalGeoLoc: " + (initialGeoLocation == null ? "null" : "present")); double dist = Utilities.HaversineDistance(mmo.latitude, mmo.longitude, initialGeoLocation.latitude, initialGeoLocation.longitude); string footerText = string.Format("Distance: {0}m\nDate: {1}", Round(dist), FormatDate(mmo)); ctrl.SetFooter(footerText); ctrl.LoadImageFromWeb(CineastUtils.GetThumbnailUrl(mmo)); ctrl.Mmo = mmo; ctrl.UiManager = this; ctrl.Controller = controller; }
private IEnumerator ExecuteMultiQuery(SimilarQuery query, CategoryRatio ratio, string guid = null) { // === SIMILAR === // Initial SimilarQuery yield return(similarRequest = CineastUtils.BuildSimilarRequest(CineastUtils.Configuration.FindSimilarSegmentsUrl(), query)); // Parse response earlyBreak = !Parse(similarRequest.text, out similarResult); yield return(similarResult); if (earlyBreak) { yield break; } // Check if empty if (similarResult.IsEmpty()) { earlyBreak = true; yield break; // Stop and } ContentObject[] tempResult = CineastUtils.ExtractContentObjects(similarResult); if (ratio != null && similarResult.results.Length > 1) { ResultMerger merger = new ResultMerger(); tempResult = merger.Merge(similarResult.results, ratio) .ToArray(); } // === SEGMENTS === // segments yield return(segmentRequest = CineastUtils.BuildSegmentRequest(CineastUtils.Configuration.FindSegmentsByIdUrl(), CineastUtils.ExtractIdArray(tempResult))); // parse response earlyBreak = !Parse(segmentRequest.text, out segmentResult); yield return(segmentResult); if (earlyBreak) { yield break; } // === METAS === yield return(metaRequest = CineastUtils.BuildMetadataRequest(CineastUtils.Configuration.FindMetadataUrl(), CineastUtils.ExtractIdArray(segmentResult.content))); earlyBreak = !Parse(metaRequest.text, out metaResult); yield return(metaResult); if (earlyBreak) { yield break; } // meta->mmo objectList = CineastUtils.Convert(metaResult.content); // === OBJECTS === yield return(objectRequest = CineastUtils.BuildObjectsRequest(CineastUtils.Configuration.FindObjectsUrl(), CineastUtils.ExtractIdArray(objectList.ToArray()))); yield return(objectsResult = JsonUtility.FromJson <ObjectsResult>(objectRequest.text)); // merge results List <MultimediaObject> objects = CineastUtils.Convert(objectsResult.content); foreach (MultimediaObject mmo in objects) { if (objectList.Contains(mmo)) { objectList.Find(o => o.Equals(mmo)).Merge(mmo); } } results = new List <MultimediaObject>(objectList); // === WRAPUP === foreach (MultimediaObject mmo in objectList) { mmo.resultIndex = CineastUtils.GetIndexOf(mmo, similarResult) + 1; } // === SORT LIST === objectList.Sort(Comparison); List <MultimediaObject> transferList; if (filterEngine != null) { // logger.Debug("FilterEngine installed with " + filterEngine.GetFilterCount() + " filters."); transferList = filterEngine.ApplyFilters(objectList); } else { // logger.Debug("No FilterEngine installed - no filtering"); transferList = objectList; } // cleanup finished = true; if (guid == null) { // LEGACY if (queryFinishedCallback != null) { // logger.Info("Query completed, passing resulting MultimediaObject list to callback"); queryFinishedCallback.Invoke(transferList); } } else { CineastResponseHandler <List <MultimediaObject> > handler = _guidHandlerMap[guid]; if (handler != null) { handler.onSuccess(transferList); } } yield return(true); }
private IEnumerator ExecuteQuery(SimilarQuery query, string guid = null) { // === SIMILAR === // Initial SimilarQuery // logger.Debug("Starting initial similar request.\n" + JsonUtility.ToJson(query)); yield return(similarRequest = CineastUtils.BuildSimilarRequest(CineastUtils.Configuration.FindSimilarSegmentsUrl(), query)); // logger.Debug("Received similar response: " + similarRequest.text); // Parse response earlyBreak = !Parse(similarRequest.text, out similarResult); yield return(similarResult); if (earlyBreak) { // logger.Error("HTTP error upon similar response"); yield break; } // logger.Info("Successfully parsed similar response"); // Check if empty if (similarResult.IsEmpty()) { earlyBreak = true; // logger.Error("Empty similar result"); yield break; // Stop and } // === SEGMENTS === // segments // logger.Debug("Starting segments query"); yield return(segmentRequest = CineastUtils.BuildSegmentRequest(CineastUtils.Configuration.FindSegmentsByIdUrl(), CineastUtils.ExtractIdArray(CineastUtils.ExtractContentObjects(similarResult)))); // logger.Debug("Received segments response:\n" + segmentRequest.text); // parse response earlyBreak = !Parse(segmentRequest.text, out segmentResult); yield return(segmentResult); if (earlyBreak) { // logger.Error("HTTP error upon segments response"); yield break; } // logger.Info("Successfully parsed segments response"); // === METAS === // logger.Debug("Starting metadata request"); yield return(metaRequest = CineastUtils.BuildMetadataRequest(CineastUtils.Configuration.FindMetadataUrl(), CineastUtils.ExtractIdArray(segmentResult.content))); // logger.Debug("Received metadata response:\n" + metaRequest.text); earlyBreak = !Parse(metaRequest.text, out metaResult); yield return(metaResult); if (earlyBreak) { // logger.Error("HTTP error upon metadata response"); yield break; } // logger.Info("Successfully parsed metadata response"); // meta->mmo objectList = CineastUtils.Convert(metaResult.content); // logger.Info("Successfully converted metadata result to MultimediaObjects"); // === OBJECTS === // logger.Debug("Starting object query"); yield return(objectRequest = CineastUtils.BuildObjectsRequest(CineastUtils.Configuration.FindObjectsUrl(), CineastUtils.ExtractIdArray(objectList.ToArray()))); // logger.Debug("Received objects response:\n" + objectRequest.text); yield return(objectsResult = JsonUtility.FromJson <ObjectsResult>(objectRequest.text)); // logger.Info("Successfully parsed objects response"); // merge results List <MultimediaObject> objects = CineastUtils.Convert(objectsResult.content); // logger.Debug("Successfully converted object result to MultimediaObjects"); foreach (MultimediaObject mmo in objects) { if (objectList.Contains(mmo)) { objectList.Find(o => o.Equals(mmo)).Merge(mmo); } } // logger.Info("Finished merging different MultimediaObject lists"); results = new List <MultimediaObject>(objectList); // === WRAPUP === // logger.Debug("Applying result index to MultimediaObject list"); foreach (MultimediaObject mmo in objectList) { mmo.resultIndex = CineastUtils.GetIndexOf(mmo, similarResult) + 1; } // logger.Info("Result contains " + objectList.Count + " entities"); // logger.Debug("Full result list:\n" + DumpMMOList(objectList)); // === SORT LIST === // logger.Debug("Sorting list"); objectList.Sort( Comparison); // logger.Debug("Sorted list: \n" + DumpMMOList(objectList)); List <MultimediaObject> transferList; if (filterEngine != null) { // logger.Debug("FilterEngine installed with " + filterEngine.GetFilterCount() + " filters."); transferList = filterEngine.ApplyFilters(objectList); } else { // logger.Debug("No FilterEngine installed - no filtering"); transferList = objectList; } // cleanup finished = true; if (guid == null) { // LEGACY if (queryFinishedCallback != null) { // logger.Info("Query completed, passing resulting MultimediaObject list to callback"); queryFinishedCallback.Invoke(transferList); } } else { CineastResponseHandler <List <MultimediaObject> > handler = _guidHandlerMap[guid]; if (handler != null) { handler.onSuccess(transferList); } } yield return(true); }
private void SetTimeTerm(int lower, int upper) { timeTerm = QueryFactory.BuildTimeTerm(CineastUtils.ConvertYearToISO8601((lower + upper) / 2)); }