Class StarCluster

java.lang.Object
gaiasky.scenegraph.SceneGraphNode
gaiasky.scenegraph.StarCluster
All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable, I3DTextRenderable, IModelRenderable, IQuadRenderable, IRenderable, IFocus, IProperMotion, IStarContainer, IPosition

public class StarCluster
extends SceneGraphNode
implements IFocus, IProperMotion, IModelRenderable, I3DTextRenderable, IQuadRenderable
  • Field Details

    • pm

      protected Vector3d pm
      Proper motion in units/year
    • pmSph

      protected com.badlogic.gdx.math.Vector3 pmSph
      Proper motion in mas/year
    • labelcolor

      protected float[] labelcolor
    • dist

      protected double dist
    • raddeg

      protected double raddeg
    • nstars

      protected int nstars
    • ySinceEpoch

      protected double ySinceEpoch
    • fadeAlpha

      protected float fadeAlpha
      Fade alpha between quad and model. Attribute contains model opacity. Quad opacity is 1-fadeAlpha
  • Constructor Details

    • StarCluster

      public StarCluster()
    • StarCluster

      public StarCluster​(java.lang.String[] names, java.lang.String parentName, Vector3d pos, Vector3d pm, Vector3d posSph, com.badlogic.gdx.math.Vector3 pmSph, double raddeg, int nstars)
    • StarCluster

      public StarCluster​(java.lang.String[] names, java.lang.String parentName, Vector3d pos, Vector3d pm, Vector3d posSph, com.badlogic.gdx.math.Vector3 pmSph, double raddeg, int nstars, float[] color)
  • Method Details

    • initModel

      public void initModel()
    • initialize

      public void initialize()
      Overrides:
      initialize in class SceneGraphNode
    • doneLoading

      public void doneLoading​(com.badlogic.gdx.assets.AssetManager manager)
      Overrides:
      doneLoading in class SceneGraphNode
    • setColor

      public void setColor​(double[] color)
      Overrides:
      setColor in class SceneGraphNode
    • setColor

      public void setColor​(float[] color)
      Overrides:
      setColor in class SceneGraphNode
    • setLabelcolor

      public void setLabelcolor​(double[] labelcolor)
      Overrides:
      setLabelcolor in class SceneGraphNode
    • setLabelcolor

      public void setLabelcolor​(float[] labelcolor)
      Overrides:
      setLabelcolor in class SceneGraphNode
    • updateLocal

      public void updateLocal​(ITimeFrameProvider time, ICamera camera)
      Updates the local transform matrix.
      Overrides:
      updateLocal in class SceneGraphNode
      Parameters:
      time -
    • updateLocalValues

      public void updateLocalValues​(ITimeFrameProvider time, ICamera camera)
      Description copied from class: SceneGraphNode
      This function updates all the local values before the localTransform is updated. Position, rotations and scale must be updated in here.
      Overrides:
      updateLocalValues in class SceneGraphNode
    • addToRenderLists

      protected void addToRenderLists​(ICamera camera)
      Description copied from class: SceneGraphNode
      Adds this entity to the necessary render lists after the distance to the camera and the view angle have been determined.
      Overrides:
      addToRenderLists in class SceneGraphNode
    • getAbsolutePosition

      public Vector3d getAbsolutePosition​(Vector3d aux)
      Description copied from class: SceneGraphNode
      Returns the absolute position of this entity in the native coordinates (equatorial system) and internal units
      Specified by:
      getAbsolutePosition in interface IFocus
      Overrides:
      getAbsolutePosition in class SceneGraphNode
      Parameters:
      aux - Auxiliary vector to put the result in
      Returns:
      The vector with the position
    • render

      public void render​(IntModelBatch modelBatch, float alpha, double t, RenderingContext rc)
      Model rendering
      Specified by:
      render in interface IModelRenderable
    • render

      public void render​(ExtShaderProgram shader, float alpha, IntMesh mesh, ICamera camera)
      Billboard quad rendering
      Specified by:
      render in interface IQuadRenderable
    • render

      public void render​(ExtSpriteBatch batch, ExtShaderProgram shader, FontRenderSystem sys, RenderingContext rc, ICamera camera)
      Label rendering
      Specified by:
      render in interface I3DTextRenderable
      Parameters:
      batch - The sprite batch
      shader - The shader
      sys - The font render system
      rc - The render context
      camera - The camera
    • hasAtmosphere

      public boolean hasAtmosphere()
      Specified by:
      hasAtmosphere in interface IModelRenderable
    • renderText

      public boolean renderText()
      Description copied from interface: I3DTextRenderable
      Tells whether the text must be rendered or not for this entity
      Specified by:
      renderText in interface I3DTextRenderable
      Returns:
      True if text must be rendered
    • textColour

      public float[] textColour()
      Description copied from interface: I3DTextRenderable
      Returns an array with the text colour in the fashion [r, g, b, a]
      Specified by:
      textColour in interface I3DTextRenderable
      Returns:
      Array with the colour
    • textSize

      public float textSize()
      Description copied from interface: I3DTextRenderable
      Returns the text size
      Specified by:
      textSize in interface I3DTextRenderable
      Returns:
      The text size
    • textScale

      public float textScale()
      Description copied from interface: I3DTextRenderable
      Returns the text scale for the scale varying in the shader
      Specified by:
      textScale in interface I3DTextRenderable
      Returns:
      The scale
    • textPosition

      public void textPosition​(ICamera cam, Vector3d out)
      Description copied from interface: I3DTextRenderable
      Sets the position of this text in the out vector
      Specified by:
      textPosition in interface I3DTextRenderable
      out - The out parameter with the result
    • text

      public java.lang.String text()
      Description copied from interface: I3DTextRenderable
      Returns the text
      Specified by:
      text in interface I3DTextRenderable
      Returns:
      The text
    • textDepthBuffer

      public void textDepthBuffer()
      Description copied from interface: I3DTextRenderable
      Executes the blending for the text
      Specified by:
      textDepthBuffer in interface I3DTextRenderable
    • isLabel

      public boolean isLabel()
      Description copied from interface: I3DTextRenderable
      Is it a label or another kind of text?
      Specified by:
      isLabel in interface I3DTextRenderable
      Returns:
      Whether this is a label
    • getCandidateId

      public long getCandidateId()
      Description copied from interface: IFocus
      Returns the id of the focus candidate of this object. Defaults to IFocus.getId()
      Specified by:
      getCandidateId in interface IFocus
      Returns:
      The id of the candidate
    • getCandidateName

      public java.lang.String getCandidateName()
      Description copied from interface: IFocus
      Returns the name of the focus candidate of this object. Defaults to IFocus.getName()
      Specified by:
      getCandidateName in interface IFocus
      Returns:
      The name of the candidate
    • isActive

      public boolean isActive()
      Description copied from interface: IFocus
      Returns whether this focus object is active or not. Useful for particle groups
      Specified by:
      isActive in interface IFocus
      Returns:
      The active status
    • addFocusableObjects

      public void addFocusableObjects​(com.badlogic.gdx.utils.Array<IFocus> list)
      Adds all the children that are focusable objects to the list.
      Overrides:
      addFocusableObjects in class SceneGraphNode
      Parameters:
      list -
    • getCandidateViewAngleApparent

      public double getCandidateViewAngleApparent()
      Description copied from interface: IFocus
      Returns the candidate apparent view angle (view angle corrected with the field of view) of this entity, in radians
      Specified by:
      getCandidateViewAngleApparent in interface IFocus
      Returns:
      The apparent view angle in radians
    • getAppmag

      public float getAppmag()
      Description copied from interface: IFocus
      Gets the apparent magnitude
      Specified by:
      getAppmag in interface IFocus
      Returns:
      The apparent magnitude
    • getAbsmag

      public float getAbsmag()
      Description copied from interface: IFocus
      Gets the absolute magnitude
      Specified by:
      getAbsmag in interface IFocus
      Returns:
      The absolute magnitude
    • getRotationComponent

      public RotationComponent getRotationComponent()
      Description copied from interface: IFocus
      Returns the rotation component of this focus
      Specified by:
      getRotationComponent in interface IFocus
      Returns:
      The rotation component. Can be null
    • getOrientationQuaternion

      public Quaterniond getOrientationQuaternion()
      Description copied from interface: IFocus
      Returns the orientation quaternion of this focus
      Specified by:
      getOrientationQuaternion in interface IFocus
      Returns:
      The orientation quaternion. Can be null
    • addHit

      public void addHit​(int screenX, int screenY, int w, int h, int pxdist, NaturalCamera camera, com.badlogic.gdx.utils.Array<IFocus> hits)
      Description copied from interface: IFocus
      Adds this focus to the hits list if it is hit by the [screenX, screenY] position
      Specified by:
      addHit in interface IFocus
      Parameters:
      screenX - The x position of the hit
      screenY - The y position of the hit
      w - The viewport width
      h - The viewport height
      pxdist - The minimum pixel distance to consider as hit
      camera - The camera
      hits - The list where to add the element
    • addHit

      public void addHit​(Vector3d p0, Vector3d p1, NaturalCamera camera, com.badlogic.gdx.utils.Array<IFocus> hits)
      Description copied from interface: IFocus
      Adds this focus to the hits list if it is hit by the given ray
      Specified by:
      addHit in interface IFocus
      Parameters:
      p0 - Start point of the ray
      p1 - End point of the ray
      camera - The camera
      hits - The list where the focus is to be added
    • checkClickDistance

      protected boolean checkClickDistance​(int screenX, int screenY, com.badlogic.gdx.math.Vector3 pos, NaturalCamera camera, com.badlogic.gdx.graphics.PerspectiveCamera pcamera, double pixelSize)
    • makeFocus

      public void makeFocus()
      Description copied from interface: IFocus
      Hook that runs when the candidate is actually made focus
      Specified by:
      makeFocus in interface IFocus
    • getFocus

      public IFocus getFocus​(java.lang.String name)
      Description copied from interface: IFocus
      Prepares the candidate with the given name
      Specified by:
      getFocus in interface IFocus
      Parameters:
      name - The name in lower case
    • getClosestName

      public java.lang.String getClosestName()
      Description copied from interface: IFocus
      Specified by:
      getClosestName in interface IFocus
      Returns:
      The name
    • getClosestDistToCamera

      public double getClosestDistToCamera()
      Description copied from interface: IFocus
      Specified by:
      getClosestDistToCamera in interface IFocus
      Returns:
      The distance to the camera in internal units
    • getClosestAbsolutePos

      public Vector3d getClosestAbsolutePos​(Vector3d out)
      Description copied from interface: IFocus
      Specified by:
      getClosestAbsolutePos in interface IFocus
      Parameters:
      out - Vector3d where to put the return value
      Returns:
      The absolute position, same as aux
    • isCoordinatesTimeOverflow

      public boolean isCoordinatesTimeOverflow()
      Description copied from interface: IFocus
      Checks whether this foucs is within its valid time range, so that it can be used as a focus
      Specified by:
      isCoordinatesTimeOverflow in interface IFocus
      Returns:
      Whether the focus object is within its valid time range
    • getMuAlpha

      public double getMuAlpha()
      Description copied from interface: IProperMotion
      Returns the mu alpha in mas/yr
      Specified by:
      getMuAlpha in interface IProperMotion
      Returns:
      The mu alpha in mas/yr
    • getMuDelta

      public double getMuDelta()
      Description copied from interface: IProperMotion
      Returns the mu delta in mas/yr
      Specified by:
      getMuDelta in interface IProperMotion
      Returns:
      The mu delta in mas/yr
    • getRadialVelocity

      public double getRadialVelocity()
      Description copied from interface: IProperMotion
      Returns the radial velocity in km/s
      Specified by:
      getRadialVelocity in interface IProperMotion
      Returns:
      The radial velocity in km/s
    • getNStars

      public int getNStars()
    • getTextOpacity

      public float getTextOpacity()
      Description copied from interface: I3DTextRenderable
      Gets the text opacity
      Specified by:
      getTextOpacity in interface I3DTextRenderable
      Returns:
      Text opacity
    • getSimpleCopy

      public <T extends SceneGraphNode> T getSimpleCopy()
      Description copied from class: SceneGraphNode
      Gets a copy of this object but does not copy its parent or children
      Overrides:
      getSimpleCopy in class SceneGraphNode
      Returns:
      The copied object