Package gaiasky.scenegraph
Class AbstractSceneGraph
java.lang.Object
gaiasky.scenegraph.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 Summary
Fields Modifier and Type Field Description protected boolean
hasOctree
Does it contain an octreeprotected boolean
hasStarGroup
Does it contain a star groupprotected com.badlogic.gdx.utils.ObjectMap<java.lang.Integer,IPosition>
hipMap
Map from integer to position with all Hipparcos stars, for the constellationsprotected int[]
objectsPerThread
Number of objects per threadSceneGraphNode
root
The root of the treeprotected com.badlogic.gdx.utils.ObjectMap<java.lang.String,SceneGraphNode>
stringToNode
Quick lookup map. -
Constructor Summary
Constructors Constructor Description AbstractSceneGraph()
-
Method Summary
Modifier and Type Method Description void
addNodeAuxiliaryInfo(SceneGraphNode node)
Updates the string to node map and the star map if necessary.protected void
addToIndex(SceneGraphNode node, com.badlogic.gdx.utils.ObjectMap<java.lang.String,SceneGraphNode> map)
boolean
containsNode(java.lang.String name)
Whether this scene graphs contains a node with the given namevoid
dispose()
IFocus
findFocus(java.lang.String name)
com.badlogic.gdx.utils.Array<IFocus>
getFocusableObjects()
int
getNObjects()
SceneGraphNode
getNode(java.lang.String name)
Returns the node with the given name, or null if it does not exist.com.badlogic.gdx.utils.Array<SceneGraphNode>
getNodes()
double[]
getObjectPosition(java.lang.String name, double[] out)
Gets the current position of the object identified by the given name.SceneGraphNode
getRoot()
int
getSize()
com.badlogic.gdx.utils.ObjectMap<java.lang.Integer,IPosition>
getStarMap()
Gets a star map: HIP -> IPosition It only contains the stars with HIP numbervoid
initialize(com.badlogic.gdx.utils.Array<SceneGraphNode> nodes, ITimeFrameProvider time, boolean hasOctree, boolean hasStarGroup)
Builds the scene graph using the given nodes.void
insert(SceneGraphNode node, boolean addToIndex)
Inserts a nodevoid
matchingFocusableNodes(java.lang.String name, com.badlogic.gdx.utils.Array<java.lang.String> results)
Returns focusable nodes matching the given string, to a maximum of 10void
matchingFocusableNodes(java.lang.String name, com.badlogic.gdx.utils.Array<java.lang.String> results, int maxResults)
Returns focusable nodes matching the given string, to a maximum ofmaxResults
void
remove(SceneGraphNode node, boolean removeFromIndex)
Removes a nodevoid
removeNodeAuxiliaryInfo(SceneGraphNode node)
Removes the info of the node from the aux lists.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface gaiasky.scenegraph.ISceneGraph
update
-
Field Details
-
root
The root of the tree -
stringToNode
Quick lookup map. Name to node. -
hipMap
Map from integer to position with all Hipparcos stars, for the constellations -
objectsPerThread
protected int[] objectsPerThreadNumber of objects per thread -
hasOctree
protected boolean hasOctreeDoes it contain an octree -
hasStarGroup
protected boolean hasStarGroupDoes it contain a star group
-
-
Constructor Details
-
AbstractSceneGraph
public AbstractSceneGraph()
-
-
Method Details
-
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 interfaceISceneGraph
- Parameters:
nodes
- The list of nodestime
- The time providerhasOctree
- Whether the list of nodes contains an octreehasStarGroup
- Whether the list contains a star group
-
insert
Description copied from interface:ISceneGraph
Inserts a node- Specified by:
insert
in interfaceISceneGraph
- Parameters:
node
- The node to addaddToIndex
- Whether to add the ids of this node to the index
-
remove
Description copied from interface:ISceneGraph
Removes a node- Specified by:
remove
in interfaceISceneGraph
- Parameters:
node
- The node to removeremoveFromIndex
- 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) -
addNodeAuxiliaryInfo
Description copied from interface:ISceneGraph
Updates the string to node map and the star map if necessary.- Specified by:
addNodeAuxiliaryInfo
in interfaceISceneGraph
- Parameters:
node
- The node to add
-
removeNodeAuxiliaryInfo
Description copied from interface:ISceneGraph
Removes the info of the node from the aux lists.- Specified by:
removeNodeAuxiliaryInfo
in interfaceISceneGraph
- Parameters:
node
- The node to remove
-
matchingFocusableNodes
public void matchingFocusableNodes(java.lang.String name, com.badlogic.gdx.utils.Array<java.lang.String> results)Description copied from interface:ISceneGraph
Returns focusable nodes matching the given string, to a maximum of 10- Specified by:
matchingFocusableNodes
in interfaceISceneGraph
- Parameters:
name
- The nameresults
- The results
-
matchingFocusableNodes
public void matchingFocusableNodes(java.lang.String name, com.badlogic.gdx.utils.Array<java.lang.String> results, int maxResults)Description copied from interface:ISceneGraph
Returns focusable nodes matching the given string, to a maximum ofmaxResults
- Specified by:
matchingFocusableNodes
in interfaceISceneGraph
- Parameters:
name
- The nameresults
- The resultsmaxResults
- The maximum number of results
-
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 interfaceISceneGraph
- Parameters:
name
- The name- Returns:
- True if this scene graph contains the node, false otherwise
-
getNode
Description copied from interface:ISceneGraph
Returns the node with the given name, or null if it does not exist.- Specified by:
getNode
in interfaceISceneGraph
- Parameters:
name
- The name of the node.- Returns:
- The node with the name.
-
getNodes
- Specified by:
getNodes
in interfaceISceneGraph
-
getFocusableObjects
- Specified by:
getFocusableObjects
in interfaceISceneGraph
-
findFocus
- Specified by:
findFocus
in interfaceISceneGraph
-
getSize
public int getSize()- Specified by:
getSize
in interfaceISceneGraph
-
dispose
public void dispose()- Specified by:
dispose
in interfacecom.badlogic.gdx.utils.Disposable
-
getRoot
- Specified by:
getRoot
in interfaceISceneGraph
-
getStarMap
Description copied from interface:ISceneGraph
Gets a star map: HIP -> IPosition It only contains the stars with HIP number- Specified by:
getStarMap
in interfaceISceneGraph
- 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 interfaceISceneGraph
- Parameters:
name
- The name of the objectout
- 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.
-