private void AddVisualizer(AugmentedImage image) { var anchor = image.CreateAnchor(image.CenterPose); var visualizer = Instantiate(_augmentedImageVisualizer, anchor.transform); _visualizers.Add(image.DatabaseIndex, visualizer); }
private static void IAnchorUpdate(AugmentedImage anchor) { if (!anchors.Contains(anchor.DatabaseIndex.ToString())) { IAnchorAdd(anchor); return; } Logger.log(Logger.Type.Info, "IAnchorUpdate"); if (!tracking) { Logger.log(Logger.Type.Info, "tracking paused. Ignore."); return; } if (IAnchorUpdated == null) { Logger.log(Logger.Type.Info, "no delegates for this event."); return; } Logger.log(Logger.Type.Info, "dispatch event."); bool isTracking = anchor.TrackingState == TrackingState.Tracking; IAnchor a = new IAnchor(anchor.DatabaseIndex.ToString(), anchor.CenterPose, isTracking, anchor.Name); IAnchorUpdated(a); }
private AugmentedImageVisualizer GetVisualizer(AugmentedImage image) { AugmentedImageVisualizer visualizer; _visualizers.TryGetValue(image.DatabaseIndex, out visualizer); return(visualizer); }
private void RemoveVisualizer(AugmentedImage image, AugmentedImageVisualizer visualizer) { visualizers.Remove(image.DatabaseIndex); Destroy(visualizer.gameObject); bing.color = Color.red; }
/// <summary> /// Factory method for creating and reusing Trackable references from native handles. /// </summary> /// <param name="nativeHandle">A native handle to a plane that has been acquired. RELEASE /// WILL BE HANDLED BY THIS METHOD.</param> /// <returns>A reference to the Trackable. May return <c>null</c> on error or if Trackable /// is not handled.</returns> public Trackable TrackableFactory(IntPtr nativeHandle) { if (nativeHandle == IntPtr.Zero) { return(null); } Trackable result; if (_trackableDict.TryGetValue(nativeHandle, out result)) { // Release aquired handle and return cached result. _nativeSession.TrackableApi.Release(nativeHandle); return(result); } // This block needs to construct classes marked Obsolete since those versions are always // the most derived type. #pragma warning disable 618 // Obsolete warning ApiTrackableType trackableType = _nativeSession.TrackableApi.GetType(nativeHandle); if (trackableType == ApiTrackableType.Plane) { result = new TrackedPlane(nativeHandle, _nativeSession); } else if (trackableType == ApiTrackableType.Point) { result = new TrackedPoint(nativeHandle, _nativeSession); } else if (trackableType == ApiTrackableType.InstantPlacementPoint) { result = new InstantPlacementPoint(nativeHandle, _nativeSession); } else if (trackableType == ApiTrackableType.AugmentedImage) { result = new AugmentedImage(nativeHandle, _nativeSession); } else if (trackableType == ApiTrackableType.AugmentedFace) { result = new AugmentedFace(nativeHandle, _nativeSession); } else if (ExperimentManager.Instance.IsManagingTrackableType((int)trackableType)) { result = ExperimentManager.Instance.TrackableFactory((int)trackableType, nativeHandle); } else { Debug.LogWarning( "TrackableFactory::No constructor for requested trackable type."); } #pragma warning restore 618 if (result != null) { _trackableDict.Add(nativeHandle, result); } return(result); }
private void DisableAugmentedImageObject(AugmentedImage image, AugmentedAnimal visualizer) { m_Visualizers.Remove(image.DatabaseIndex); //visualizer.transform.parent.Find("Selection Visualization").GetComponent<MeshRenderer>().enabled = false; //Destroy(visualizer.gameObject); Destroy(visualizer.anchor.gameObject); }
public void setAugmentedImage(AugmentedImage image, AugmentedImageVisualizer visualizer, AugmentedImageVisualizer prefab) { Anchor anchor = image.CreateAnchor(image.CenterPose); visualizer = (AugmentedImageVisualizer)Instantiate(prefab, anchor.transform); visualizer.Image = image; m_Visualizers.Add(image.DatabaseIndex, visualizer); }
private void AddVisualizer(AugmentedImage image) { _ShowAndroidToastMessage("Adding visualizer"); var anchor = image.CreateAnchor(image.CenterPose); var visualizer = Instantiate(augmentedImageVisualizer, anchor.transform); visualizer.image = image; visualizers.Add(image.DatabaseIndex, visualizer); }
private void ReinstantiateRoute(AugmentedImage AI) { _ShowAndroidToastMessage("Detected picture, showing route!"); //Make sure image is tracking first if (AI.TrackingState == TrackingState.Tracking) { existingAnchor = m_AllPlanes[0].CreateAnchor(AI.CenterPose); Instantiate(ToSpawnPrefabs[AI.DatabaseIndex], AI.CenterPose.position, AI.CenterPose.rotation, existingAnchor.transform); currTrackingIdx = AI.DatabaseIndex; } }
public void UserResponse(bool yo) { if (yo) { Destroy(existingAnchor.gameObject); ReinstantiateRoute(nextAI); nextAI = null; } // TODO: Close Pop up UserResponded = true; }
private AugmentedImageVisualizer AddVisualizer(AugmentedImage image, AugmentedImageVisualizer visualizer) { Anchor anchor = image.CreateAnchor(image.CenterPose); visualizer = (AugmentedImageVisualizer)Instantiate(augmentedImageVisualizerPrefab, anchor.transform); visualizer.Image = image; _visualizers.Add(image.DatabaseIndex, visualizer); //ARCore will keep understanding the world and update the anchors accordingly hence we need to attach our portal to the anchor visualizer.transform.parent = anchor.transform; return(visualizer); }
private void _TrackingMarker(AugmentedImage image) { AnchorPosition pos = _PosForName(image.Name); Anchor anchor; if (!anchors.TryGetValue(pos, out anchor)) { anchor = image.CreateAnchor(image.CenterPose); anchors.Add(pos, anchor); _AdaptModel(pos, anchor); } }
/// <summary> /// Add Visualiser and anchors for updated augmented images that are tracking and do not previously have a visualizer /// </summary> public void AddVisualiser(AugmentedImage _imageToAddTo) { // Create an anchor at centre of image to ensure that transformation is relative to real world Anchor anchor = _imageToAddTo.CreateAnchor(_imageToAddTo.CenterPose); // Create new visualiser and set as anchor's child ( so to keep the visualiser in that place ) ARImageVisualiser visualizer = Instantiate(AugmentedImageVisualizerPrefab, anchor.transform) as ARImageVisualiser; // Set image of visualiser to be image that is tracked visualizer.m_image = _imageToAddTo; //m_prevIndex = _imageToAddTo.DatabaseIndex; // Add to Dictionary m_Visualizers.Add(_imageToAddTo.DatabaseIndex, visualizer); }
/// <summary> /// Creates a single ARImageVisualiser and adds it to a reference list. /// </summary> void CreateVisualizerObjects_OLD(AugmentedImage _imageToVisualize) { ////Create an anchor at centre of image to ensure that transformation is relative to real world //Anchor anchor = _imageToVisualize.CreateAnchor(_imageToVisualize.CenterPose); ////Create new visualiser and set as anchor's child ( so to keep the visualiser in that place ) //ARImageVisualiser visualizer = Instantiate(m_arVisualizerPrefab, anchor.transform) as ARImageVisualiser; //visualizer.gameObject.SetActive(true); ////Set image of visualiser to be a copy of the image that is tracked //visualizer.m_image = _imageToVisualize; ////Add visualizer to list //m_listOfVisualizedObjects.Add(visualizer); }
private void _StoppedMarker(AugmentedImage image) { if (model != null) { AnchorPosition pos = _PosForName(image.Name); Anchor anchor; if (anchors.TryGetValue(pos, out anchor)) { anchors.Remove(pos); if (anchors.Count == 0) { GameObject.Destroy(model); } } } }
public void OnMarkerDiscovered(AugmentedImage image) { Debug.Log("OnMarkerDiscovered. image = " + image.Name); if (currentVideoData != null) { return; } Anchor anchor = image.CreateAnchor(image.CenterPose); MarkerData markerData = new MarkerData() { name = image.Name, imageIndex = image.DatabaseIndex, anchorTransform = anchor.transform }; OnMarkerDiscovered(markerData); }
private void _UpdateFromMarker(AugmentedImage image) { switch (image.TrackingState) { case TrackingState.Tracking: _TrackingMarker(image); break; case TrackingState.Stopped: _StoppedMarker(image); break; default: break; } }
private void switchDemos(AugmentedImage image) { if (Demo2 && image.Name.Equals("demo1")) { //remove the object _visualizers.Remove(image.DatabaseIndex); GameObject.Destroy(visualizer.gameObject); //interupt a quiz mode QuizMode = false; } else if (!Demo2 && image.Name.Equals("demo2")) { manipulator.disableObjects(); //interrupt a game mode manipulator.GameMode = false; } }
private void AddVisluazier(AugmentedImage image) { // anchor is world position of our AR image so it can stay put in real world space when moving about var anchor = image.CreateAnchor(image.CenterPose); // create our visualized object var visualizer = Instantiate(augmentedImageVisualizer, anchor.transform); // set the image of the visualizer to the image we have tracked visualizer.Image = image; // add our visualizer to our list of visualizers visualizers.Add(image.DatabaseIndex, visualizer); bing.color = Color.green; }
public static void setIMG(AugmentedImage Image) { if (Image.Name.Equals("Dondurma")) { textmesh.text = "Dondurma"; } else if (Image.Name.Equals("Cay")) { textmesh.text = "Çay"; } else if (Image.Name.Equals("Corba")) { textmesh.text = "Çorba"; } else if (Image.Name.Equals("Peynir")) { textmesh.text = "Süzme Peynir"; } }
public static void setIMG(AugmentedImage Image) { if (Image.Name.Equals("Dondurma")) { textmesh.text = "-TETT: 14.04.2022"; } else if (Image.Name.Equals("Cay")) { textmesh.text = "-TETT: 03.05.2021"; } else if (Image.Name.Equals("Corba")) { textmesh.text = "-TETT: 03.05.2021"; } else if (Image.Name.Equals("Peynir")) { textmesh.text = "-TETT: 01.06.2020"; } }
public static void setIMG(AugmentedImage Image) { if (Image.Name.Equals("Dondurma")) { textmesh.text = "4.99 TL"; } else if (Image.Name.Equals("Cay")) { textmesh.text = "3.49 TL"; } else if (Image.Name.Equals("Corba")) { textmesh.text = "2.99 TL"; } else if (Image.Name.Equals("Peynir")) { textmesh.text = "11.25 TL"; } }
public static void setIMG(AugmentedImage Image) { if (Image.Name.Equals("Dondurma")) { textmesh.text = "-Carte d'Or Yoğun Çikolatalı"; } else if (Image.Name.Equals("Cay")) { textmesh.text = "-Doğuş Karadeniz Çayı"; } else if (Image.Name.Equals("Corba")) { textmesh.text = "-Knorr Ezogelin Çorbası"; } else if (Image.Name.Equals("Peynir")) { textmesh.text = "-Pınar Süzme Peynir"; } }
public static void setIMG(AugmentedImage Image) { if (Image.Name.Equals("Dondurma")) { textmesh.text = "-Fransa"; } else if (Image.Name.Equals("Cay")) { textmesh.text = "-Türkiye"; } else if (Image.Name.Equals("Corba")) { textmesh.text = "-Almanya"; } else if (Image.Name.Equals("Peynir")) { textmesh.text = "-Türkiye"; } }
private void SetMainWindow(AugmentedImage image) { var pose = image.CenterPose; var model = CollectionManager.Instance.activeProduct.gameObject; model.AddComponent <MarkerVisualizer>(); m_Visualizer = (MarkerVisualizer)Instantiate(model.GetComponent <MarkerVisualizer>(), pose.position, pose.rotation); m_Visualizer.Image = image; var manipulator = Instantiate(manipulatorMarkerWindow, pose.position, pose.rotation); m_Visualizer.transform.parent = manipulator.transform; var anchor = image.CreateAnchor(pose); manipulator.transform.parent = anchor.transform; manipulator.GetComponent <Manipulator>().Select(); }
public void Inititialize(AugmentedImage augmentedImage_, MatchingImage matchingImage_) { this.augmentedImage_ = augmentedImage_; this.matchingImage_ = matchingImage_; IsInitialized_ = true; mesh_ = new Mesh(); ComputeVertices(); ComputeTriangles(); ComputeNormals(); ComputeUVs(); mesh_.RecalculateTangents(); mesh_.MarkDynamic(); GetComponent <MeshFilter>().mesh = mesh_; GetComponent <MeshRenderer>().material = matchingImage_.material_; GetComponent <MeshCollider>().sharedMesh = mesh_; }
/// <summary> /// Function called when the manipulation is ended. /// </summary> /// <param name="gesture">The current gesture.</param> protected override void OnEndManipulation(TapGesture gesture) { if (gesture.WasCancelled) { return; } // If gesture is targeting an existing object we are done. if (gesture.TargetObject != null) { return; } if (clickCount < 1) { clickCount = clickCount + 1; //find an image to place an anchor int index = controller._tempAugmentedImages.FindIndex(x => x.Name == "demo2"); image = controller._tempAugmentedImages[index]; pose = image.CenterPose; //instatntiate game objects gameObject0 = Instantiate(PawnPrefab[0], new Vector3(pose.position.x - 0.055f, pose.position.y, pose.position.z - 0.03f), new Quaternion(-0.707f, 0f, 0f, 0.707f)); gameObject1 = Instantiate(PawnPrefab[1], new Vector3(pose.position.x, pose.position.y, pose.position.z - 0.03f), new Quaternion(0f, 1f, 0f, 0f)); // Instantiate manipulators manipulator0 = Instantiate(ManipulatorPrefab, new Vector3(pose.position.x - 0.055f, pose.position.y, pose.position.z - 0.03f), pose.rotation); manipulator1 = Instantiate(ManipulatorPrefab, new Vector3(pose.position.x, pose.position.y, pose.position.z - 0.03f), pose.rotation); // Make game object a child of the manipulator. gameObject0.transform.parent = manipulator0.transform; gameObject1.transform.parent = manipulator1.transform; // Create an anchor to allow ARCore to track the image anchor0 = image.CreateAnchor(new Pose(new Vector3(pose.position.x - 0.055f, pose.position.y, pose.position.z - 0.03f), pose.rotation)); anchor1 = image.CreateAnchor(new Pose(new Vector3(pose.position.x, pose.position.y, pose.position.z - 0.03f), pose.rotation)); // Make manipulator a child of the anchor. manipulator0.transform.parent = anchor0.transform; manipulator1.transform.parent = anchor1.transform; // Select the placed object. manipulator0.GetComponent <Manipulator>().Select(); manipulator1.GetComponent <Manipulator>().Select(); } }
// Update is called once per frame void Update() { // Check that motion tracking is tracking. if (Session.Status != SessionStatus.Tracking) { image = null; return; } if (image == null) { Session.GetTrackables(augmentedImagesSeen, TrackableQueryFilter.Updated); foreach (AugmentedImage thisImage in augmentedImagesSeen) { if (thisImage.DatabaseIndex == targetImage) { image = thisImage; scanReminderUI.SetActive(false); } } } if (image.TrackingState == TrackingState.Stopped) { image = null; Destroy(prefabInstance); scanReminderUI.SetActive(true); prefabInstance = null; } else { if (prefabInstance == null) { prefabInstance = Instantiate(prefabToPlace); } prefabInstance.transform.position = image.CenterPose.position; prefabInstance.transform.rotation = image.CenterPose.rotation; } }
// Update is called once per frame void Update() { cameraPositionText.text = "Camera Position : " + Camera.main.transform.position.ToString() + "\n"; cameraPositionText.text += "Camera Rotation : " + Camera.main.transform.eulerAngles.ToString(); bsenPositionText.text = "B-sen Position : " + whichObject.transform.localPosition.ToString() + "\n"; bsenPositionText.text += "B-sen Rotation : " + whichObject.transform.eulerAngles.ToString(); Session.GetTrackables <AugmentedImage>(m_AugmentedImages, TrackableQueryFilter.Updated); if (!detected_marker) { foreach (var image in m_AugmentedImages) { if (image.TrackingState == TrackingState.Tracking) { detected_marker = true; marker = image; } } } }
void Update() { if (Session.Status != SessionStatus.Tracking) { return; } Session.GetTrackables <AugmentedImage>(_tempAugmentedImages, TrackableQueryFilter.Updated); foreach (AugmentedImage image in _tempAugmentedImages) { if (image.TrackingState == TrackingState.Tracking && currentAugmentedImage == null) { Anchor anchor = image.CreateAnchor(image.CenterPose); currentWorldObject = Instantiate(worldPrefab, anchor.transform); currentWorldObject.transform.localEulerAngles = new Vector3(90, 0, 0); currentAugmentedImage = image; } else if (image.TrackingState == TrackingState.Stopped && currentAugmentedImage != null) { currentAugmentedImage = null; Destroy(currentWorldObject); } } if (currentAugmentedImage == null && !fitToScanOverlay.activeSelf) { fitToScanOverlay.SetActive(true); } if (currentAugmentedImage != null && fitToScanOverlay.activeSelf) { fitToScanOverlay.SetActive(false); } }