Class AbstractSceneGraph

  • All Implemented Interfaces:
    com.badlogic.gdx.utils.Disposable, ISceneGraph
    Direct Known Subclasses:
    SceneGraph

    public abstract class AbstractSceneGraph
    extends java.lang.Object
    implements ISceneGraph
    • Field Detail

      • stringToNode

        protected com.badlogic.gdx.utils.ObjectMap<java.lang.String,​SceneGraphNode> stringToNode
        Quick lookup map. Name to node.
      • hipMap

        protected com.badlogic.gdx.utils.IntMap<IPosition> hipMap
        Map from integer to position with all Hipparcos stars, for the constellations
      • objectsPerThread

        protected int[] objectsPerThread
        Number of objects per thread
      • hasOctree

        protected boolean hasOctree
        Does it contain an octree
      • hasStarGroup

        protected boolean hasStarGroup
        Does it contain a star vgroup
    • Constructor Detail

      • AbstractSceneGraph

        public AbstractSceneGraph()
    • Method Detail

      • initialize

        public void initialize​(com.badlogic.gdx.utils.Array<SceneGraphNode> nodes,
                               ITimeFrameProvider time,
                               boolean hasOctree,
                               boolean hasStarGroup)
        Builds the scene graph using the given nodes.
        Specified by:
        initialize in interface ISceneGraph
        Parameters:
        nodes - The list of nodes
        time - The time provider
        hasOctree - Whether the list of nodes contains an octree
        hasStarGroup - Whether the list contains a star vgroup
      • insert

        public void insert​(SceneGraphNode node,
                           boolean addToIndex)
        Description copied from interface: ISceneGraph
        Inserts a node
        Specified by:
        insert in interface ISceneGraph
        Parameters:
        node - The node to add
        addToIndex - Whether to add the ids of this node to the index
      • remove

        public void remove​(SceneGraphNode node,
                           boolean removeFromIndex)
        Description copied from interface: ISceneGraph
        Removes a node
        Specified by:
        remove in interface ISceneGraph
        Parameters:
        node - The node to remove
        removeFromIndex - Whether to remove the ids of this node from the index
      • addToIndex

        protected void addToIndex​(SceneGraphNode node,
                                  com.badlogic.gdx.utils.ObjectMap<java.lang.String,​SceneGraphNode> map)
      • update

        public void update​(ITimeFrameProvider time,
                           ICamera camera)
        Description copied from interface: ISceneGraph
        Updates the nodes of this scene graph
        Specified by:
        update in interface ISceneGraph
        Parameters:
        time - The current time provider
        camera - The current camera
      • addNodeAuxiliaryInfo

        public void addNodeAuxiliaryInfo​(SceneGraphNode node)
        Description copied from interface: ISceneGraph
        Updates the string to node map and the star map if necessary.
        Specified by:
        addNodeAuxiliaryInfo in interface ISceneGraph
        Parameters:
        node - The node to add
      • containsNode

        public boolean containsNode​(java.lang.String name)
        Description copied from interface: ISceneGraph
        Whether this scene graphs contains a node with the given name
        Specified by:
        containsNode in interface ISceneGraph
        Parameters:
        name - The name
        Returns:
        True if this scene graph contains the node, false otherwise
      • getNode

        public SceneGraphNode getNode​(java.lang.String name)
        Description copied from interface: ISceneGraph
        Returns the node with the given name, or null if it does not exist.
        Specified by:
        getNode in interface ISceneGraph
        Parameters:
        name - The name of the node.
        Returns:
        The node with the name.
      • dispose

        public void dispose()
        Specified by:
        dispose in interface com.badlogic.gdx.utils.Disposable
      • getStarMap

        public com.badlogic.gdx.utils.IntMap<IPosition> getStarMap()
        Description copied from interface: ISceneGraph
        Gets a star map: HIP -> IPosition It only contains the stars with HIP number
        Specified by:
        getStarMap in interface ISceneGraph
        Returns:
        The HIP star map
      • getNObjects

        public int getNObjects()
      • getObjectPosition

        public double[] getObjectPosition​(java.lang.String name,
                                          double[] out)
        Description copied from interface: ISceneGraph
        Gets the current position of the object identified by the given name. The given position is in the internal reference system and corrects stars for proper motions and other objects for their specific motions as well.
        Specified by:
        getObjectPosition in interface ISceneGraph
        Parameters:
        name - The name of the object
        out - The out double array
        Returns:
        The out double array if the object exists, has a position and out has 3 or more slots. Null otherwise.