______ |JAVA| ------ MainActivity ------------ Intro screen for the app; contains buttons to navigate to ViewARActivity and ViewMapActivity. Sets title bar text. ViewARActivity -------------- Initializes AR World. Handles radar click and subsequent redirect to ViewMapActivity. Handles license key. Asks for camera permission. Sets up location services using EasyLocation library. Calls ARWorld.js’s locationChanged via setLocation ViewMapActivity --------------- Google Maps screen. Instantiates LocationProvider class and checks location permissions. Loads POIs from either array sent from ViewARActivity or JSON file on server. LocationProvider ---------------- Class to provide location services; used in ViewMapActivity. Sets title bar text. ____________ |JAVASCRIPT| ------------ ARWorld ------- Contains all logic for AR functionality: Creates Marker “object” inside JSON-reading loop via Marker.js. Fills selects and places radar in Index.html. Creates/shows info popups and detects entrance into camera view and physical geofence. All methods contained in World object. Marker ------ Contains all logic for individual markers: -Creates Wikitude GeoObject, including labels and associated drawables. -Defines animations during selection/deselection. -Defines onClick methods Marker “class” is a function called Marker, using this to assign values to instance. Radar ----- Defines images for radar. Calls listener in ViewARActivity.java in radar click function. POIs.json --------- Defines POIs: 1) infoCategories Defines categories of information that appear in info dropdown onscreen. Order of information directly corresponds with order of contents of info array in each pointsOfInterest object. 2) pointsOfInterest Array of POI objects. 3) POI objects contain: *Latitude and longitude* Can be found in Google Maps online; right-click on marker, click “what’s here?”, and latitude and longitude are given.] *Name* Name of POI that appears on visual marker and in info popup. *Inforange* Defines radius, in metres, of geofence around POI. Geofence defines distance from POI at and within which info will automatically pop up when POI appears in the camera view. *Info* Array of POI-specific information. Content order directly corresponds to that of infoCategories array. WARNING: BE SURE ALL BUT LAST OBJECTS HAVE COMMA DELIMITER AFTER BRACKET/BRACE ____________ |HTML & CSS| ------------ Index.html ---------- Defines layout of AR screen. Includes selects, radar, status buttons, and info popup panels. POI-Radar.css ------------- Positions radar correctly. Common.css ---------- Positions selects correctly.