Package gaiasky.scenegraph
Class Spacecraft
java.lang.Object
- All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable
,IObserver
,I3DTextRenderable
,ILineRenderable
,IModelRenderable
,IQuadRenderable
,IRenderable
,IFocus
,IStarContainer
,IPosition
public class Spacecraft extends GenericSpacecraft implements ILineRenderable, IObserver
The spacecraft.
-
Field Summary
Fields Modifier and Type Field Description Vector3d
accel
Force, acceleration and velocityVector3d
direction
Direction and up vectorscom.badlogic.gdx.math.Vector3
directionf
Float counterpartsPair<Vector3d,Vector3d>
dirup
double
enginePower
Instantaneous engine power, this is in [0..1]Vector3d
force
Force, acceleration and velocitydouble
fullPowerTime
Seconds to reach full powerboolean
leveling
double
mass
Mass in kgdouble
pitch
double
pitcha
double
pitchf
double
pitchp
Yaw, pitch and rolldouble
pitchv
com.badlogic.gdx.math.Vector3
posf
Float counterpartsdouble
roll
double
rolla
double
rollf
double
rollp
Yaw, pitch and rolldouble
rollv
com.badlogic.gdx.math.Matrix4
rotationMatrix
Only the rotation matrixdouble
sizeFactor
Factor hackboolean
stopping
Vector3d
thrust
Engine thrust vectorstatic double[]
thrustFactor
Factor (adapt to be able to navigate small and large scale structuresint
thrustFactorIndex
Index of the current engine power settingstatic double
thrustLength
This is the powerVector3d
up
Direction and up vectorscom.badlogic.gdx.math.Vector3
upf
Float counterpartsVector3d
vel
Force, acceleration and velocitydouble
yaw
double
yawa
double
yawf
double
yawp
Yaw, pitch and rolldouble
yawv
Fields inherited from class gaiasky.scenegraph.GenericSpacecraft
renderQuad
Fields inherited from class gaiasky.scenegraph.Satellite
hidden, orientationf, parentOrientation, parentrc, TH_ANGLE_NONE, TH_ANGLE_POINT, TH_ANGLE_QUAD
Fields inherited from class gaiasky.scenegraph.ModelBody
fadeOpacity, inverseRefPlaneTransform, locThOverFactor, locVaMultiplier, mc, refPlane, refPlaneTransform, shadow, shadowMapValues, sizeScaleFactor, transformations
Fields inherited from class gaiasky.scenegraph.CelestialBody
absmag, appmag, ccPale, ccTransit, colorbv, compalpha, coordinatesTimeOverflow, rc, TH_OVER_FACTOR, wikiname
Fields inherited from class gaiasky.scenegraph.SceneGraphNode
aux3d1, aux3d2, aux3d3, aux3d4, aux3f1, aux3f2, aux3f3, aux3f4, cc, children, computed, coordinates, copy, ct, distToCamera, id, localTransform, namekey, names, numChildren, octant, octantId, opacity, orientation, parent, parentkey, parentName, pos, posSph, ROOT_NAME, sg, size, translation, viewAngle, viewAngleApparent
-
Constructor Summary
Constructors Constructor Description Spacecraft()
-
Method Summary
Modifier and Type Method Description protected void
addToRenderLists(ICamera camera)
Adds this entity to the necessary render lists after the distance to the camera and the view angle have been determined.double
computeDirectionUp(double dt, Pair<Vector3d,Vector3d> pair)
Vector3d
computePosition(double dt, IFocus closest, double enginePower, Vector3d thrust, Vector3d direction, Vector3d force, Vector3d accel, Vector3d vel, Vector3d pos)
void
decreaseThrustFactorIndex(boolean broadcast)
void
dispose()
void
doneLoading(com.badlogic.gdx.assets.AssetManager manager)
double
getDistToCamera()
Returns the current distance to the camera in internal units.int
getGlPrimitive()
float
getLineWidth()
double
getRadius()
Returns the radius in internal unitscom.badlogic.gdx.math.Quaternion
getRotationQuaternion()
<T extends SceneGraphNode>
TgetSimpleCopy()
Gets a copy of this object but does not copy its parent or childrendouble
getSize()
Returns the size (diameter) of this entity in internal units.boolean
hasAtmosphere()
void
increaseThrustFactorIndex(boolean broadcast)
boolean
isStabilising()
boolean
isStopping()
protected float
labelFactor()
protected boolean
mustUpdatePosition(ITimeFrameProvider time)
Whether position must be recomputed for this entity.void
notify(Events event, java.lang.Object... data)
void
render(LineRenderSystem renderer, ICamera camera, float alpha)
void
render(IntModelBatch modelBatch, float alpha, double t, boolean shadowEnv)
Model opaque rendering for light glow pass.void
render(IntModelBatch modelBatch, float alpha, double t, RenderingContext rc)
Model rendering.void
setEnginePower(double enginePower)
Sets the current engine powervoid
setMass(java.lang.Double mass)
void
setModel(ModelComponent mc)
void
setPitchPower(double pitchp)
Sets the current pitch powervoid
setRollPower(double rollp)
Sets the current roll powervoid
setSize(java.lang.Double size)
Sets the absolute size of this entityvoid
setSize(java.lang.Long size)
Sets the absolute size (diameter) of this entityvoid
setThrustFactorIndex(int i, boolean broadcast)
void
setYawPower(double yawp)
Sets the current yaw powervoid
stopAllMovement()
void
updateLocal(ITimeFrameProvider time, ICamera camera)
Updates the transform matrix with the transformations that will apply to the children and the local transform matrix with the transformations that will apply only to this object.protected void
updateLocalTransform()
Update the local transform with the transform and the rotations/scales necessary.void
updateLocalValues(ITimeFrameProvider time, ICamera camera)
This function updates all the local values before the localTransform is updated.Methods inherited from class gaiasky.scenegraph.GenericSpacecraft
setRenderquad, setRenderquad
Methods inherited from class gaiasky.scenegraph.Satellite
forceUpdatePosition, getFuzzyRenderSize, getRotationComponent, getThOverFactorScl, getViewAnglePow, initialize, labelMax, renderText, setHidden, setParentorientation, setToLocalTransform, THRESHOLD_NONE, THRESHOLD_POINT, THRESHOLD_QUAD
Methods inherited from class gaiasky.scenegraph.ModelBody
addHit, addHit, getHeight, getHeight, getHeight, getHeightScale, getInnerRad, getPositionAboveSurface, getThOverFactor, isShadow, labelSizeConcrete, prepareShadowEnvironment, render, renderTessellated, setLocthoverfactor, setLocvamultiplier, setRefplane, setShadowvalues, setSizescalefactor, setToLocalTransform, setTransformations, textScale
Methods inherited from class gaiasky.scenegraph.CelestialBody
addFocusableObjects, checkClickDistance, checkHitCondition, computeViewAngle, getAbsmag, getAppmag, getCandidateId, getCandidateName, getCandidateViewAngleApparent, getClosestAbsolutePos, getClosestDistToCamera, getClosestName, getFocus, getOrientationQuaternion, getPmX, getPmY, getPmZ, getTextOpacity, getViewAngle, getWikiname, isActive, isCoordinatesTimeOverflow, isLabel, isStar, isValidPosition, makeFocus, render, setAbsmag, setAltname, setAppmag, setColor2Data, setColorbv, setMag, setRotation, setWikiname, text, textColour, textDepthBuffer, textPosition, textSize
Methods inherited from class gaiasky.scenegraph.SceneGraphNode
add, add, addChild, addChild, addName, addNodes, addToIndex, addToRender, computeFuturePosition, getAbsoluteOrientation, getAbsolutePosition, getAbsolutePosition, getAggregatedChildren, getAlpha, getChildByName, getChildByNameAndType, getChildrenByType, getComponentType, getCt, getDelta, getFirstStarAncestor, getId, getLineCopy, getName, getNames, getNext, getNode, getNode, getOctant, getOpacity, getOrientation, getPos, getPosition, getPosition, getPosSph, getPredictedPosition, getRoot, getSceneGraphDepth, getStarCount, getUnrotatedPos, getVelocity, getViewAngleApparent, hasName, hasName, insert, insert, isCopy, isInRender, isInRender, isVisibilityOn, mustAddToIndex, namesConcat, removeChild, removeFromIndex, removeFromRender, render2DLabel, render2DLabel, render2DLabel, render2DLabel, render3DLabel, render3DLabel, returnToPool, setColor, setColor, setComputedFlag, setCoordinates, setCt, setCt, setId, setLabelcolor, setLabelcolor, setName, setNamekey, setNames, setParent, setParentkey, setUp, toString, update, update, updateNames, updateNamesRec
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface gaiasky.scenegraph.IFocus
getAbsolutePosition, getAbsolutePosition, getAlpha, getCt, getDelta, getFirstStarAncestor, getId, getName, getNames, getNext, getOctant, getOrientation, getPos, getPosSph, getPredictedPosition, getSceneGraphDepth, getViewAngleApparent, hasName, hasName, isCopy
Methods inherited from interface gaiasky.render.IRenderable
getComponentType, getOpacity
-
Field Details
-
thrustLength
public static final double thrustLengthThis is the power- See Also:
- Constant Field Values
-
thrustFactor
public static final double[] thrustFactorFactor (adapt to be able to navigate small and large scale structures -
fullPowerTime
public double fullPowerTimeSeconds to reach full power -
force
Force, acceleration and velocity -
accel
Force, acceleration and velocity -
vel
Force, acceleration and velocity -
direction
Direction and up vectors -
up
Direction and up vectors -
dirup
-
posf
public com.badlogic.gdx.math.Vector3 posfFloat counterparts -
directionf
public com.badlogic.gdx.math.Vector3 directionfFloat counterparts -
upf
public com.badlogic.gdx.math.Vector3 upfFloat counterparts -
thrust
Engine thrust vector -
mass
public double massMass in kg -
sizeFactor
public double sizeFactorFactor hack -
rotationMatrix
public com.badlogic.gdx.math.Matrix4 rotationMatrixOnly the rotation matrix -
thrustFactorIndex
public int thrustFactorIndexIndex of the current engine power setting -
enginePower
public double enginePowerInstantaneous engine power, this is in [0..1] -
yawp
public double yawpYaw, pitch and roll -
pitchp
public double pitchpYaw, pitch and roll -
rollp
public double rollpYaw, pitch and roll -
yawf
public double yawf -
pitchf
public double pitchf -
rollf
public double rollf -
yawa
public double yawa -
pitcha
public double pitcha -
rolla
public double rolla -
yawv
public double yawv -
pitchv
public double pitchv -
rollv
public double rollv -
yaw
public double yaw -
pitch
public double pitch -
roll
public double roll -
leveling
public boolean leveling -
stopping
public boolean stopping
-
-
Constructor Details
-
Spacecraft
public Spacecraft()
-
-
Method Details
-
doneLoading
public void doneLoading(com.badlogic.gdx.assets.AssetManager manager)- Overrides:
doneLoading
in classSatellite
-
notify
-
updateLocal
Description copied from class:SceneGraphNode
Updates the transform matrix with the transformations that will apply to the children and the local transform matrix with the transformations that will apply only to this object.- Overrides:
updateLocal
in classModelBody
-
updateLocalTransform
protected void updateLocalTransform()Description copied from class:ModelBody
Update the local transform with the transform and the rotations/scales necessary. Override if your model contains more than just the position and size.- Overrides:
updateLocalTransform
in classSatellite
-
computePosition
-
computeDirectionUp
-
updateLocalValues
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 classSatellite
-
stopAllMovement
public void stopAllMovement() -
setEnginePower
public void setEnginePower(double enginePower)Sets the current engine power- Parameters:
enginePower
- The power in [-1..1]
-
setYawPower
public void setYawPower(double yawp)Sets the current yaw power- Parameters:
yawp
- The yaw power in [-1..1]
-
setPitchPower
public void setPitchPower(double pitchp)Sets the current pitch power- Parameters:
pitchp
- The pitch power in [-1..1]
-
setRollPower
public void setRollPower(double rollp)Sets the current roll power- Parameters:
rollp
- The roll power in [-1..1]
-
increaseThrustFactorIndex
public void increaseThrustFactorIndex(boolean broadcast) -
decreaseThrustFactorIndex
public void decreaseThrustFactorIndex(boolean broadcast) -
setThrustFactorIndex
public void setThrustFactorIndex(int i, boolean broadcast) -
addToRenderLists
Adds this entity to the necessary render lists after the distance to the camera and the view angle have been determined.- Overrides:
addToRenderLists
in classGenericSpacecraft
-
setModel
-
setSize
public void setSize(java.lang.Double size)Sets the absolute size of this entity -
setSize
public void setSize(java.lang.Long size)Description copied from class:SceneGraphNode
Sets the absolute size (diameter) of this entity -
getRadius
public double getRadius()Description copied from class:SceneGraphNode
Returns the radius in internal units -
getSize
public double getSize()Description copied from class:SceneGraphNode
Returns the size (diameter) of this entity in internal units. -
setMass
public void setMass(java.lang.Double mass) -
isStopping
public boolean isStopping() -
isStabilising
public boolean isStabilising() -
getDistToCamera
public double getDistToCamera()Description copied from class:SceneGraphNode
Returns the current distance to the camera in internal units.- Specified by:
getDistToCamera
in interfaceIFocus
- Specified by:
getDistToCamera
in interfaceIRenderable
- Overrides:
getDistToCamera
in classSceneGraphNode
- Returns:
- The current distance to the camera, in internal units.
-
getRotationQuaternion
public com.badlogic.gdx.math.Quaternion getRotationQuaternion() -
hasAtmosphere
public boolean hasAtmosphere()- Specified by:
hasAtmosphere
in interfaceIModelRenderable
- Overrides:
hasAtmosphere
in classCelestialBody
-
dispose
public void dispose() -
render
Model rendering. SPACECRAFT_MODE in spacecraft mode is not affected by the relativistic aberration- Specified by:
render
in interfaceIModelRenderable
- Overrides:
render
in classModelBody
-
render
Model opaque rendering for light glow pass. Do not render shadows -
render
- Specified by:
render
in interfaceILineRenderable
-
getSimpleCopy
Description copied from class:SceneGraphNode
Gets a copy of this object but does not copy its parent or children- Overrides:
getSimpleCopy
in classCelestialBody
- Returns:
- The copied object
-
labelFactor
protected float labelFactor()- Overrides:
labelFactor
in classSatellite
-
mustUpdatePosition
Description copied from class:SceneGraphNode
Whether position must be recomputed for this entity. By default, only when time is on- Overrides:
mustUpdatePosition
in classSceneGraphNode
- Parameters:
time
- The current time- Returns:
- True if position should be recomputed for this entity
-
getLineWidth
public float getLineWidth()- Specified by:
getLineWidth
in interfaceILineRenderable
-
getGlPrimitive
public int getGlPrimitive()- Specified by:
getGlPrimitive
in interfaceILineRenderable
-