Class ParticleSet

java.lang.Object
gaiasky.scene.component.ParticleSet
All Implemented Interfaces:
com.badlogic.ashley.core.Component, IDisposable
Direct Known Subclasses:
StarSet

public class ParticleSet extends Object implements com.badlogic.ashley.core.Component, IDisposable
  • Field Details

    • idSeq

      public static long idSeq
    • pointData

      public List<IParticleRecord> pointData
      List that contains the point data. It contains only [x y z]
    • isStars

      public boolean isStars
      Flag indicating whether the particle set holds stars or particles.
    • provider

      public String provider
      Fully qualified name of data provider class
    • datafile

      public String datafile
      Path of data file
    • providerParams

      public Map<String,Object> providerParams
    • profileDecay

      public float profileDecay
      Profile decay of the particles in the shader
    • colorNoise

      public float colorNoise
      Noise factor for the color in [0,1]
    • particleSizeLimitsPoint

      public double[] particleSizeLimitsPoint
      Particle size limits. Applies to legacy point render (using GL_POINTS).
    • particleSizeLimits

      public double[] particleSizeLimits
      Particle size limits for the quad renderer (using quads as GL_TRIANGLES). This will be multiplied by the distance to the particle in the shader, so that size = tan(angle) * dist
    • meanPosition

      public Vector3d meanPosition
      Temporary storage for the mean position of this particle set, if it is given externally. If this is set, the mean position is not computed from the positions of all the particles automatically.
    • factor

      public Double factor
      Factor to apply to the data points, usually to normalise distances
    • ccMin

      public float[] ccMin
      Mapping colors
    • ccMax

      public float[] ccMax
      Mapping colors
    • lastSortTime

      public long lastSortTime
      Stores the time when the last sort operation finished, in ms
    • meanDistance

      public double meanDistance
      The mean distance from the origin of all points in this group. Gives a sense of the scale.
    • maxDistance

      public double maxDistance
    • minDistance

      public double minDistance
    • focus

      public IParticleRecord focus
      Reference to the current focus.
    • focusIndex

      public int focusIndex
      Index of the particle acting as focus. Negative if we have no focus here.
    • candidateFocusIndex

      public int candidateFocusIndex
      Candidate to focus.
    • focusPosition

      public Vector3d focusPosition
      Position of the current focus
    • focusPositionSph

      public Vector2d focusPositionSph
      Position in equatorial coordinates of the current focus in radians
    • focusDistToCamera

      public double focusDistToCamera
      FOCUS_MODE attributes
    • focusSolidAngle

      public double focusSolidAngle
      FOCUS_MODE attributes
    • focusSolidAngleApparent

      public double focusSolidAngleApparent
      FOCUS_MODE attributes
    • focusSize

      public double focusSize
      FOCUS_MODE attributes
    • proximity

      public Proximity proximity
      Proximity particles
    • disposed

      public boolean disposed
    • index

      public Map<String,Integer> index
    • metadata

      public double[] metadata
    • indices1

      public Integer[] indices1
    • indices2

      public Integer[] indices2
    • active

      public Integer[] active
    • background

      public Integer[] background
    • visibilityArray

      public byte[] visibilityArray
    • updating

      public volatile boolean updating
    • updaterTask

      public ParticleSetUpdaterTask updaterTask
    • lastSortCameraPos

      public Vector3d lastSortCameraPos
    • cPosD

      public Vector3d cPosD
    • D31

      public final Vector3d D31
  • Constructor Details

    • ParticleSet

      public ParticleSet()
  • Method Details

    • getColorMin

      public float[] getColorMin()
    • getColorMax

      public float[] getColorMax()
    • getMeanDistance

      public double getMeanDistance()
    • getMinDistance

      public double getMinDistance()
    • getMaxDistance

      public double getMaxDistance()
    • data

      public List<IParticleRecord> data()
      Returns the list of particles.
    • setData

      public void setData(List<IParticleRecord> pointData)
    • setData

      public void setData(List<IParticleRecord> pointData, boolean regenerateIndex)
    • regenerateIndex

      public void regenerateIndex()
      Regenerates the name index
    • generateIndex

      public Map<String,Integer> generateIndex(List<IParticleRecord> pointData)
      Generates the index (maps name to array index) and computes the geometric center of this group
      Parameters:
      pointData - The data
      Returns:
      An map{string,int} mapping names to indices
    • setPosition

      public void setPosition(double[] pos)
    • setPosKm

      public void setPosKm(double[] pos)
    • setPositionKm

      public void setPositionKm(double[] pos)
    • setPosPc

      public void setPosPc(double[] pos)
    • setPositionPc

      public void setPositionPc(double[] pos)
    • setPosition

      public void setPosition(int[] pos)
    • setDatafile

      public void setDatafile(String datafile)
    • setProviderparams

      public void setProviderparams(Map<String,Object> params)
    • setFactor

      public void setFactor(Double factor)
    • setProfiledecay

      public void setProfiledecay(Double profiledecay)
    • setProfileDecay

      public void setProfileDecay(Double profileDecay)
    • setColornoise

      public void setColornoise(Double colorNoise)
    • setColorNoise

      public void setColorNoise(Double colorNoise)
    • setColorMin

      public void setColorMin(double[] colorMin)
    • setColorMin

      public void setColorMin(float[] colorMin)
    • setColorMax

      public void setColorMax(double[] colorMax)
    • setColorMax

      public void setColorMax(float[] colorMax)
    • setParticleSizeLimits

      public void setParticleSizeLimits(double[] sizeLimits)
    • setParticlesizelimits

      public void setParticlesizelimits(double[] sizeLimits)
    • get

      public IParticleRecord get(int index)
    • getRandomParticleName

      public String getRandomParticleName()
      Gets the name of a random particle in this group
      Returns:
      The name of a random particle
    • getSize

      public double getSize()
    • getSize

      public double getSize(int i)
      Returns the size of the particle at index i
      Parameters:
      i - The index
      Returns:
      The size
    • getFocusSize

      public double getFocusSize()
      Default size if not in data, 1e5 km
      Returns:
      The size
    • setFocusIndex

      public void setFocusIndex(String name)
    • getCandidateBean

      public IParticleRecord getCandidateBean()
    • getRadius

      public double getRadius()
    • getRadius

      public double getRadius(int i)
    • updateFocus

      public void updateFocus(ICamera camera)
      Updates the parameters of the focus, if the focus is active in this group
      Parameters:
      camera - The current camera
    • updateFocusDataPos

      public void updateFocusDataPos()
    • setFocusIndex

      public void setFocusIndex(int index)
    • makeFocus

      public void makeFocus()
    • isVisible

      public boolean isVisible(int index)
      Checks whether the particle with the given index is visible
      Parameters:
      index - The index of the particle
      Returns:
      The visibility of the particle
    • setVisible

      public void setVisible(boolean visible, String name, Render render)
    • setVisible

      public void setVisible(int index, boolean visible, Render render)
      Sets the visibility of the particle with the given index. If the visibility has changed, it marks the particle group for update.
      Parameters:
      index - The index of the particle
      visible - Visibility flag
    • markForUpdate

      public void markForUpdate(Render render)
    • getAbsolutePosition

      public Vector3b getAbsolutePosition(Vector3b out)
      Returns the current focus position, if any, in the out vector.
    • getAbsolutePosition

      public Vector3b getAbsolutePosition(String name, Vector3b out)
      Returns the position of the particle with the given name, if any, in the out vector.
    • fetchPosition

      public Vector3d fetchPosition(IParticleRecord pb, Vector3d campos, Vector3d destination, double deltaYears)
      Fetches the real position of the particle. It will apply the necessary integrations (i.e. proper motion).
      Parameters:
      pb - The particle bean
      campos - The position of the camera. If null, the camera position is not subtracted so that the coordinates are given in the global reference system instead of the camera reference system.
      destination - The destination factor
      deltaYears - The delta years
      Returns:
      The vector for chaining
    • getDeltaYears

      public double getDeltaYears()
      Returns the delta years to integrate the proper motion.
      Returns:
      The current delta years.
    • getId

      public long getId()
    • getCandidateName

      public String getCandidateName()
    • getName

      public String getName()
    • getNames

      public String[] getNames()
    • getLocalizedName

      public String getLocalizedName()
    • getCandidateId

      public long getCandidateId()
    • getCandidateSolidAngleApparent

      public double getCandidateSolidAngleApparent()
    • getClosestName

      public String getClosestName()
    • canSelect

      public boolean canSelect(FilterView view)
    • getPosSph

      public Vector2d getPosSph()
    • getAlpha

      public double getAlpha()
    • getDelta

      public double getDelta()
    • getDistToCamera

      public double getDistToCamera()
    • getSolidAngle

      public double getSolidAngle()
    • getSolidAngleApparent

      public double getSolidAngleApparent()
    • dispose

      public void dispose(com.badlogic.ashley.core.Entity entity)
      Specified by:
      dispose in interface IDisposable