Class PointCloudData

java.lang.Object
gaiasky.data.util.PointCloudData

public class PointCloudData extends Object
Contains a point cloud dataset, with cartesian XYZ positions in the equatorial system with the origin in the barycenter of the solar system, and optionally times for each of those.
  • Field Details

  • Constructor Details

    • PointCloudData

      public PointCloudData()
    • PointCloudData

      public PointCloudData(int capacity)
  • Method Details

    • clear

      public void clear()
      Clears all data
    • isEmpty

      public boolean isEmpty()
    • addPoints

      public void addPoints(double[] points)
      Adds the given vector to the current points. The vector is of the form [x0, y0, z0, x1, y1, z1, ..., xn, yn, zn]. If the size of the vector is not a multiple of 3, no points are added
      Parameters:
      points - The points to add to this point cloud
    • addPoints

      public void addPoints(ArrayList points)
      Same as addPoints(double[]) but with an array list
      Parameters:
      points - The points to add to this point cloud
    • addPoint

      public void addPoint(Vector3d point)
      Adds a single point o this point cloud
      Parameters:
      point - The point
    • addPoint

      public void addPoint(double x, double y, double z)
      Adds a single point to the cloud
      Parameters:
      x - The x component
      y - The y component
      z - The z component
    • loadPoint

      public void loadPoint(Vector3d v, int index)
      Loads the data point at the index in the vector in the Orbit reference system.
      Parameters:
      v - The vector to load the data into.
      index - The data index.
    • loadPoint

      public void loadPoint(Vector3b v, int index)
    • loadTime

      public Instant loadTime(int index)
    • getNumPoints

      public int getNumPoints()
    • getX

      public double getX(int index)
    • setX

      public void setX(int index, double value)
    • getY

      public double getY(int index)
    • setY

      public void setY(int index, double value)
    • getZ

      public double getZ(int index)
    • setZ

      public void setZ(int index, double value)
    • getDate

      public Instant getDate(int index)
    • getStart

      public Instant getStart()
    • getStartMs

      public long getStartMs()
    • getEnd

      public Instant getEnd()
    • getEndMs

      public long getEndMs()
    • loadPointF

      public void loadPointF(com.badlogic.gdx.math.Vector3 v, int index)
      Loads the data point at the index in the vector in the world reference system.
      Parameters:
      v - The vector to store the result.
      index - The index of the point to load.
    • loadPoint

      public boolean loadPoint(Vector3d v, Instant instant)
      Returns a vector with the data point at the given time. It uses linear interpolation. The time instant must be within the bounds of this point cloud's times
      Parameters:
      v - The vector to store the result.
      instant - The time as an instant.
      Returns:
      Whether the operation completes successfully
    • loadPoint

      public boolean loadPoint(Vector3b v, Instant instant)
    • loadPoint

      public boolean loadPoint(Vector3d v, long timeMs)
      Returns a vector with the data point at the given time. It uses linear interpolation. The time instant must be within the bounds of this point cloud's times
      Parameters:
      v - The vector
      timeMs - The time in milliseconds
      Returns:
      Whether the operation completes successfully
    • loadPoint

      public boolean loadPoint(Vector3b v, long timeMs)
    • getWrapTime

      public Instant getWrapTime(Instant instant)
    • getWrapTimeMs

      public long getWrapTimeMs(Instant instant)
    • getIndex

      public int getIndex(Instant instant)
      Gets the bounding indices for the given date. If the date is out of range, it wraps.
      Parameters:
      instant - The date
      Returns:
      The two indices
    • getIndex

      public int getIndex(long wrappedTimeMs)