Android Open Source - Look Positioning






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./*from   w  w w. j ava  2 s.  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.locationProvider;

/**
 * INS extern API. Mantains INS information and provides access methods.
 * 
 * @author Jorge Creixell Rojo
 * Based on Indoor Navigation System for Handheld Devices
 * by Manh Hung V. Le, Dimitris Saragas, Nathan Webb
 * 
 */



public class Positioning {

  private static InertialNavigationSystem ins;
  private static Object insLock = new Object();
    
  

  public static void initialize() {
    ins = new InertialNavigationSystem();
    displacement[0] = 0;
    displacement[1] = 0;
    position[0] = 0;
    position[1] = 0;
    mapPosition[0] = 0;
    mapPosition[1] = 0;
  }


  /*
   * ------------------------------------------------------------------------
   * 
   * INERTIAL NAVIGATION SYSTEM
   * ------------------------------------------------------------------------
   */
  public static void updateINS() {
    synchronized (insLock) {
      ins.addMotion();
    }
  }

  public static float[] getDisplacement() {
    synchronized (insLock) {
      return ins.displacement();
    }
  }

  public static void resetINS() {
    synchronized (insLock) {
      ins.reset();
    }
  }

  /*
   * ------------------------------------------------------------------------
   * 
   * POSITIONING INTEGRATION
   * ------------------------------------------------------------------------
   */
  public static void process() {
    
    
    displacement = getDisplacement();
    position[0]+= displacement[0];
    position[1]+= displacement[1];
    
    //mapPosition = MapaUCM.toMapCS(position);
    
    isMoving = DeviceSensor.isMoving();
    
    
    resetINS();
  }
  
  
  
  
  /*
   * ------------------------------------------------------------------------
   * 
   * SYNCHRONIZED POSITION
   * ------------------------------------------------------------------------
   */
  private static float[] position = new float[2];
  private static Object positionLock = new Object();

  public static void position(float[] p) {
    synchronized (positionLock) {
      Util.copyArray(position, p);
    }
  }

  public static float[] position() {
    synchronized (positionLock) {
      return Util.copyArray(position);
    }
  }

  private static float[] displacement = new float[2];
  private static Object displacementLock = new Object();

  public static void displacement(float[] p) {
    synchronized (displacementLock) {
      Util.copyArray(displacement, p);
    }
  }

  public static float[] displacement() {
    synchronized (displacementLock) {
      return Util.copyArray(displacement);
    }
  }
  
  
  
  

  /*
   * ------------------------------------------------------------------------
   * 
   * SYNCHRONIZED POSITION
   * ------------------------------------------------------------------------
   */
  private static float[] mapPosition = new float[2];
  private static Object mapPositionLock = new Object();

  public static void mapPosition(float[] p) {
    synchronized (mapPositionLock) {
      Util.copyArray(mapPosition, p);
    }
  }

  public static float[] mapPosition() {
    synchronized (mapPositionLock) {
      return Util.copyArray(mapPosition);
    }
  }
  
  
  
  private static boolean isMoving = false;
  private static Object isMovingLock = new Object();

  public static boolean isMoving() {
    synchronized (isMovingLock) {
      return isMoving;
    }
  }
  
  
  


  /*
   * ------------------------------------------------------------------------
   * 
   * SYNCHRONIZED POSITIONING
   * ------------------------------------------------------------------------
   */
  private static boolean isPositioning;
  private static Object isPositioningLock = new Object();

  public static void startPositioning() {
    synchronized (isPositioningLock) {
      isPositioning = true;
    }
  }

  public static void stopPositioning() {
    synchronized (isPositioningLock) {
      isPositioning = false;
    }
  }

  public static boolean isPositioning() {
    synchronized (isPositioningLock) {
      return isPositioning;
    }
  }
}




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