Package gaiasky.scenegraph
Class AbstractSceneGraph
java.lang.Object
gaiasky.scenegraph.AbstractSceneGraph
- All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable
,ISceneGraph
- Direct Known Subclasses:
SceneGraph
-
Field Summary
Modifier and TypeFieldDescriptionprotected boolean
Does it contain an octreeprotected boolean
Does it contain a star groupMap from integer to position with all Hipparcos stars, for the constellationsprotected int[]
Number of objects per threadThe root of the treeprotected com.badlogic.gdx.utils.ObjectMap<String,SceneGraphNode>
Quick lookup map. -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionvoid
Updates the string to node map and the star map if necessary.protected void
addToIndex(SceneGraphNode node, com.badlogic.gdx.utils.ObjectMap<String,SceneGraphNode> map)
boolean
containsNode(String name)
Whether this scene graphs contains a node with the given namevoid
dispose()
com.badlogic.gdx.utils.Array<IFocus>
int
Returns the node with the given name, or null if it does not exist.com.badlogic.gdx.utils.Array<SceneGraphNode>
getNodes()
double[]
getObjectPosition(String name, double[] out)
Gets the current position of the object identified by the given name.getRoot()
int
getSize()
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(String name, com.badlogic.gdx.utils.Array<String> results)
Returns focusable nodes matching the given string, to a maximum of 10void
matchingFocusableNodes(String name, com.badlogic.gdx.utils.Array<String> results, int maxResults, AtomicBoolean abort)
Returns focusable nodes matching the given string, to a maximum ofmaxResults
.void
remove(SceneGraphNode node, boolean removeFromIndex)
Removes a nodevoid
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(int numNodes)
-
-
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<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
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(String name, com.badlogic.gdx.utils.Array<String> results, int maxResults, AtomicBoolean abort)Description copied from interface:ISceneGraph
Returns focusable nodes matching the given string, to a maximum ofmaxResults
.- Specified by:
matchingFocusableNodes
in interfaceISceneGraph
- Parameters:
name
- The name.results
- The results.maxResults
- The maximum number of results.abort
- To enable abortion mid-computation.
-
containsNode
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
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.
-