Android Open Source - Look Look Data






From Project

Back to project page Look.

License

The source code is released under:

====================== LOOK! LICENSING TERMS ====================== look! is licensed under the BSD 3-Clause (also known as "BSD New" or "BSD Simplified"), as follows: Copyright (c) 2010-2012, Look...

If you think the Android project Look listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

/**
*-----------------------------------------------------------------------------
* Copyright (c) 2012, Look! Development Team
* All rights reserved.//ww  w  .  ja  v  a2s. co m
*
* Distributed under the terms of the BSD Simplified License.
*
* The full license is in the LICENSE file, distributed with this software.
*-----------------------------------------------------------------------------
*/
package es.ucm.look.data;

import java.util.Date;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;

import es.ucm.look.ar.math.geom.Point3;
import es.ucm.look.ar.util.LookARUtil;
import es.ucm.look.data.filesManager.LookFilesManager;
import es.ucm.look.data.interfaces.DataHandler;
import es.ucm.look.data.local.BasicDataHandler;
import es.ucm.look.data.remote.restful.ServiceManager;
import es.ucm.look.location.LocationManager;

/**
 * A class holding all the information required across all activities
 * 
 * 
 */
public class LookData {

  private static LookData instance = null;
  
  /**
   * Entity's container
   */
  private World world;

  /**
   * Location provider
   */
  private LocationManager location;

  /**
   * Data getter
   */
  private DataHandler dataHandler;
  
  /**
   * World entity factory
   */
  private WorldEntityFactory factory = new WorldEntityFactory( );
  
  private Timer timerLocation;
  
  /**
   * Device location
   */
  private Point3 deviceLocation = new Point3( 0, 0, 0 );
  
  /**
   * Date of last update
   */
  private Date lastUpdate = new Date( 1900, 1, 1);
  
  /**
   * Maximum distance for an element to be added into the world
   */
  private float distance = -1;
  
  private LookData() {
    dataHandler = new BasicDataHandler( );
    this.setWorld(new World());
    

    // Create the main directory "look" in the sd for save the files
    //filesManager = new LookFilesManager();
    //File dir = new File(ConfigNet.routeSD);
    //dir.mkdirs();
  }

  public static LookData getInstance() {
    if (instance == null)
      createInstance();
    return instance;
  }
  
  private synchronized static void createInstance() {
    if (instance == null) {
      instance = new LookData();
    }
  }
  
  public void setDataHandler(DataHandler dataHandler) {
    this.dataHandler = dataHandler;
  }
  
  public void setWorldEntityFactory( WorldEntityFactory factory ){
    this.factory = factory;
  }
  
  /**
   * Sets the maximum distance for an element to be added into the world
   * @param distance the distance
   */
  public void setDistance( float distance ){
    this.distance = distance;
  }
  
  /**
   * Updates the data for the world
   */
  public void updateData( ){
     if ( dataHandler != null && factory != null ){
       for ( EntityData data: dataHandler.getElementsUpdated(deviceLocation.x, deviceLocation.y, deviceLocation.z, distance, lastUpdate)){
         WorldEntity w = factory.createWorldEntity(data);
         world.addEntity(w);
       }
     }
     
     // Sets last update to now
     lastUpdate = new Date();
  }

  /**
   * Id to represent our entity
   */
  private int id = -1;

  private ServiceManager servicemanager;

  public int getId() {
    return id;
  }

  public void setId(int id) {
    this.id = id;
  }

  public void setWorld(World w) {
    this.world = w;
    LookARUtil.getApp().setWorld(w);
  }

  /**
   * Starts the location provider
   * 
   * @param time
   *            time between updats
   * @param inertial
   *            if the inertial system must be used
   * @param wifi
   *            if the wifi system must be used
   */
  public void startLocation(int time, boolean inertial, boolean wifi) {
    location = new LocationManager(LookARUtil.getApp(), inertial, wifi);
    location.start();

    timerLocation = new Timer();
    timerLocation.schedule(new TimerTask() {

      @Override
      public void run() {
        if (location != null && world != null) {
          synchronized (world.getLocation()) {
            world.setLocation(location.getPosition());
          }
        }

      }

    }, 0, time);
  }
  
  /**
   * Stops location
   */
  public void stopLocation( ){
    if ( timerLocation != null )
      timerLocation.cancel();
    
    if ( location != null ){
      location.stop();
      location = null;
    }
  }

  /**
   * Returns the current location
   * 
   * @return the current location
   */
  public Point3 getLocation() {
    return world.getLocation();
  }

  public World getWorld() {
    return world;
  }

  public DataHandler getDataHandler() {
    return dataHandler;
  }

//  public RemoteDataHandler getDataSetter() {
//    return servicemanager.restfulService;
//  }

  public void setServiceManager(ServiceManager servicemanager) {
    this.servicemanager = servicemanager;
  }

  public ServiceManager getServiceManager() {
    return servicemanager;
  }

  public LookFilesManager getFilesManager() {
    return filesManager;
  }
  
  private static LookFilesManager filesManager;

  public String getPropertyValue(int id, String propertyName ) {
    return world.getWorldEntity(id).getData().getPropertyValue(propertyName);
  }

  public Map<String, String> getAllProperties(int id) {
    return world.getWorldEntity(id).getData().getProperties();
  }

}




Java Source Code List

es.ucm.look.ar.LookAR.java
es.ucm.look.ar.Preview.java
es.ucm.look.ar.ar2D.AR2D.java
es.ucm.look.ar.ar2D.Drawable2D.java
es.ucm.look.ar.ar2D.HUDElement.java
es.ucm.look.ar.ar2D.drawables.Circle2D.java
es.ucm.look.ar.ar2D.drawables.Image2D.java
es.ucm.look.ar.ar2D.drawables.Text2D.java
es.ucm.look.ar.ar3D.Drawable3D.java
es.ucm.look.ar.ar3D.Renderer3D.java
es.ucm.look.ar.ar3D.core.Color4.java
es.ucm.look.ar.ar3D.core.TextureFactory.java
es.ucm.look.ar.ar3D.core.camera.Camera3D.java
es.ucm.look.ar.ar3D.core.camera.OrientedCamera.java
es.ucm.look.ar.ar3D.core.drawables.DrawablesDataBase.java
es.ucm.look.ar.ar3D.core.drawables.Entity3D.java
es.ucm.look.ar.ar3D.core.drawables.Mesh3D.java
es.ucm.look.ar.ar3D.core.drawables.primitives.CirclePrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.Cube.java
es.ucm.look.ar.ar3D.core.drawables.primitives.Grid.java
es.ucm.look.ar.ar3D.core.drawables.primitives.LinePrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.LinesLoopPrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.ObjMesh3D.java
es.ucm.look.ar.ar3D.core.drawables.primitives.PointPrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.Ring.java
es.ucm.look.ar.ar3D.core.drawables.primitives.SquarePrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.TrianglePrimitive.java
es.ucm.look.ar.ar3D.core.drawables.primitives.extra.ImagePrimitive.java
es.ucm.look.ar.ar3D.parser.MeshObjParser.java
es.ucm.look.ar.hud.ActionListener.java
es.ucm.look.ar.hud.BasicHud.java
es.ucm.look.ar.hud.Button.java
es.ucm.look.ar.hud.HUD.java
es.ucm.look.ar.listeners.CameraListener.java
es.ucm.look.ar.listeners.TouchListener.java
es.ucm.look.ar.math.collision.Armature.java
es.ucm.look.ar.math.collision.SphericalArmature.java
es.ucm.look.ar.math.collision.SquareArmature.java
es.ucm.look.ar.math.collision.debug.DebugArmature.java
es.ucm.look.ar.math.collision.debug.SphericalDebugArmature.java
es.ucm.look.ar.math.collision.debug.SquareDebugArmature.java
es.ucm.look.ar.math.geom.Matrix3.java
es.ucm.look.ar.math.geom.Plane.java
es.ucm.look.ar.math.geom.Point2.java
es.ucm.look.ar.math.geom.Point3.java
es.ucm.look.ar.math.geom.Ray.java
es.ucm.look.ar.math.geom.Triangle.java
es.ucm.look.ar.math.geom.Vector3.java
es.ucm.look.ar.util.CameraParametersHelper.java
es.ucm.look.ar.util.DeviceOrientation.java
es.ucm.look.ar.util.LookARUtil.java
es.ucm.look.ar.util.PositionTimerTask.java
es.ucm.look.data.EntityData.java
es.ucm.look.data.LookData.java
es.ucm.look.data.WorldEntityFactory.java
es.ucm.look.data.WorldEntity.java
es.ucm.look.data.World.java
es.ucm.look.data.filesManager.LookFilesManager.java
es.ucm.look.data.interfaces.DataGetter.java
es.ucm.look.data.interfaces.DataHandler.java
es.ucm.look.data.interfaces.DataSetter.java
es.ucm.look.data.local.BasicDataHandler.java
es.ucm.look.data.local.DBDataHandler.java
es.ucm.look.data.local.contentprovider.LookContentProvider.java
es.ucm.look.data.local.contentprovider.sql.LookSQLContentProvider.java
es.ucm.look.data.local.contentprovider.sql.LookSQLHelper.java
es.ucm.look.data.remote.ConfigNet.java
es.ucm.look.data.remote.LookProperties.java
es.ucm.look.data.remote.RemoteDBHandler.java
es.ucm.look.data.remote.restful.LookService.java
es.ucm.look.data.remote.restful.RestMethod.java
es.ucm.look.data.remote.restful.ServiceManager.java
es.ucm.look.location.LocationManager.java
es.ucm.look.locationProvider.DeviceSensor.java
es.ucm.look.locationProvider.InertialNavigationSystem.java
es.ucm.look.locationProvider.LocationProvider.java
es.ucm.look.locationProvider.Motion.java
es.ucm.look.locationProvider.Positioning.java
es.ucm.look.locationProvider.Util.java
es.ucm.look.locationProviderWifi.Cliente.java
es.ucm.look.locationProviderWifi.WifiLocation.java
es.ucm.look.locationProviderWifi.WifiService.java
es.ucm.look.locationProviderWifi.util.DateUtils.java
es.ucm.look.locationProviderWifi.util.DeviceReader.java
es.ucm.look.locationProviderWifi.util.DeviceWriter.java
es.ucm.look.locationProviderWifi.wifi.Lugar.java
es.ucm.look.locationProviderWifi.wifi.Lugares.java
es.ucm.look.locationProviderWifi.wifi.NodoWifi.java
es.ucm.look.locationProvider.map.Mapa.java
es.ucm.look.locationProvider.test.java