Package gaiasky.scene.component
Class ParticleSet
java.lang.Object
gaiasky.scene.component.ParticleSet
- All Implemented Interfaces:
com.badlogic.ashley.core.Component
,IDisposable
- Direct Known Subclasses:
StarSet
-
Field Summary
Modifier and TypeFieldDescriptionInteger[]
protected final Vector3b
protected final Vector3b
Integer[]
int
Candidate to focus.float[]
Mapping colors.float[]
Mapping colors.boolean
Assign a different color to each texture.float
Noise factor for the color in [0,1].List
<uk.ac.starlink.table.ColumnInfo> List ofColumnInfo
objects for the data in this set.double
Current computed epoch time.protected final Vector3d
protected final Vector3d
Path of data file.boolean
com.badlogic.ashley.core.Entity
double
Epoch for positions/proper motions in julian days.Factor to apply to the data points, usually to normalise distances.double
Fixed angular size for all particles in this set, in radians.Reference to the current focus.double
FOCUS_MODE attributes.int
Index of the particle acting as focus.Position of the current focus.Position in equatorial coordinates of the current focus in radians.double
FOCUS_MODE attributes.double
FOCUS_MODE attributes.double
FOCUS_MODE attributes.Particles for which forceLabel is enabled.Integer[]
Integer[]
boolean
Flag indicating whether the particle set holds extended particles.boolean
Flag indicating whether the particle set holds stars or particles (extended or not).Particles with special label colors.long
Stores the time when the last sort operation finished, in ms.protected final Matrix4d
double
double
The mean distance from the origin of all points in this group.Temporary storage for the mean position of this particle set, if it is given externally.double[]
double
The loaded model pointed by modelFile.Model file to use (obj, g3db, g3dj, gltf, glb).Parameters for the model, in case 'modelType' is used.int
Render primitive.Default model type to use for the particles of this set.int
Number of labels to render for this group.double[]
Particle size limits for the quad renderer (using quads as GL_TRIANGLES).double[]
Particle size limits.List that contains the point data.float
Profile decay of the particles in the shader, when using quads.Fully qualified name of data provider class.Parameters for the data provider.Proximity particles.Proximity loading location, the location of the directory that contains descriptor JSON files with the name of objects in the dataset.The path for proximity loading.com.badlogic.gdx.utils.IntSet
Set that contains the indexes of the particles whose descriptors have already been loaded.boolean
Flag that indicates whether this particle set has proximity loading.com.badlogic.gdx.utils.IntSet
Contains the indices of the particles whose descriptors are not present.double
Threshold solid angle when loading happens.boolean
Whether to render particle labels at all for this set.boolean
This flag enables muting particle rendering.boolean
Whether to render the global set label or not.com.badlogic.gdx.graphics.TextureArray
Reference to the texture array containing the textures for this set, if any.The texture attribute is an attribute in the original table that points to the texture to use.String[]
Texture files to use for rendering the particles, at random.final AtomicBoolean
byte[]
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
canSelect
(FilterView view) data()
Returns the list of particles.void
dispose
(com.badlogic.ashley.core.Entity entity) fetchPosition
(IParticleRecord pb, Vector3b camPos, Vector3b out, double deltaYears) Fetches the real position of the particle.fetchPositionDouble
(IParticleRecord pb, Vector3b camPos, Vector3d out, double deltaYears) Fetches the real position of the particle.generateIndex
(List<IParticleRecord> pointData) Generates the index (maps name to array index) and computes the geometric center of this groupget
(int index) getAbsolutePosition
(IParticleRecord object, Instant date, Vector3b out) Returns the position of the given object at the given date, if any, in the out vector.Returns the current focus position, if any, in the out vector.getAbsolutePosition
(String name, Vector3b out) Returns the absolute position of the particle with the given name.getAbsolutePosition
(String name, Vector3d out) Returns the absolute position of the particle with the given name.getAbsolutePosition
(String name, Instant date, Vector3b out) Returns the position of the object with the given name at the given date, if any, in the out vector.getAbsolutePosition
(Instant date, Vector3b out) Returns the current focus position at the given date, if any, in the out vector.double
getAlpha()
long
double
float[]
float[]
double
getDelta()
double
Returns the delta years to integrate the proper motion.double
double
Default size if not in data, 1e5 kmlong
getId()
double
double
double
getName()
String[]
getNames()
static long
double
double
getRadius
(int i) Gets the name of a random particle in this groupdouble
getSize()
double
getSize
(int i) Returns the size of the particle at index idouble
double
double
getSolidAngleApparent
(int idx) double
getTEff()
boolean
boolean
boolean
boolean
isForceLabel
(String name) boolean
isVisible
(int index) Checks whether the particle with the given index is visibleboolean
void
void
markForUpdate
(Render render) void
Regenerates the name indexvoid
setColorFromTexture
(boolean colorFromTexture) void
setColorMax
(double[] colorMax) void
setColorMax
(float[] colorMax) void
setColorMin
(double[] colorMin) void
setColorMin
(float[] colorMin) void
setColornoise
(Double colorNoise) Deprecated.void
setColorNoise
(Double colorNoise) void
setColumnInfoList
(List<uk.ac.starlink.table.ColumnInfo> columnInfoList) void
setData
(List<IParticleRecord> pointData) void
setData
(List<IParticleRecord> pointData, boolean regenerateIndex) void
setDatafile
(String dataFile) void
setDataFile
(String dataFile) void
void
Sets the epoch to use for the stars in this set.void
setEpochJd
(Double epochJd) Sets the epoch to use for the stars in this set.void
setExtended
(Boolean extended) void
void
setFixedAngularSize
(Double fixedAngularSize) Set fixed angular size, in radians.void
setFixedAngularSizeDeg
(Double fixedAngularSizeDeg) Set fixed angular size, in degrees.void
setFixedAngularSizeRad
(Double fixedAngularSizeRad) Set fixed angular size, in radians.void
setFocusIndex
(int index) void
setFocusIndex
(String name) void
setForceLabel
(Boolean forceLabel, String name) void
setLabelColor
(float[] color, String name) void
setMeanPosition
(double[] pos) void
setMeanPositionKm
(double[] pos) void
setMeanPositionPc
(double[] pos) void
setModelParams
(Map<String, Object> params) void
setModelPrimitive
(String modelPrimitive) void
setModelType
(String modelType) void
setNumLabels
(Long numLabels) void
setParticlesizelimits
(double[] sizeLimits) void
setParticleSizeLimits
(double[] sizeLimits) void
setParticleSizeLimitsDeg
(double[] sizeLimits) void
setPosition
(double[] pos) void
setPosition
(int[] pos) void
setPositionKm
(double[] pos) void
setPositionPc
(double[] pos) void
setPosKm
(double[] pos) void
setPosPc
(double[] pos) void
setProfiledecay
(Double profiledecay) Deprecated.void
setProfileDecay
(Double profileDecay) void
setProviderparams
(Map<String, Object> params) void
setProviderParams
(Map<String, Object> params) void
void
void
setProximityThreshold
(Double thRadians) void
setProximityThresholdDeg
(Double thDegrees) void
setProximityThresholdRad
(Double thRadians) void
setRenderParticles
(Boolean renderParticles) void
setRenderSetLabel
(Boolean renderSetLabel) void
setTexture
(String texture) void
setTextureAttribute
(String textureAttribute) void
setTextures
(String[] textures) void
setVisible
(boolean visible, String name, Render render) void
setVisible
(int index, boolean visible, Render render) Sets the visibility of the particle with the given index.void
updateFocus
(ICamera camera) Updates the parameters of the focus, if the focus is active in this groupvoid
-
Field Details
-
B31
-
B32
-
D31
-
D32
-
pointData
List that contains the point data. It contains only [x y z]. -
columnInfoList
List ofColumnInfo
objects for the data in this set. -
renderParticles
public boolean renderParticlesThis flag enables muting particle rendering. -
isStars
public boolean isStarsFlag indicating whether the particle set holds stars or particles (extended or not). -
isExtended
public boolean isExtendedFlag indicating whether the particle set holds extended particles. -
renderSetLabel
public boolean renderSetLabelWhether to render the global set label or not. -
renderParticleLabels
public boolean renderParticleLabelsWhether to render particle labels at all for this set. -
numLabels
public int numLabelsNumber of labels to render for this group. -
provider
Fully qualified name of data provider class. -
providerParams
Parameters for the data provider. -
datafile
Path of data file. -
modelFile
Model file to use (obj, g3db, g3dj, gltf, glb). If present, modelType and modelParams are ignored. The model should have only positions (vector-3), normals (vector-3) and texture coordinates (vector-2) as vertex attributes. Only the first mesh of the model is used. Textures, lighting and material are ignored. -
model
The loaded model pointed by modelFile. -
modelType
Default model type to use for the particles of this set. Typically, this should be set to quad, but allows for other model types. -
modelParams
Parameters for the model, in case 'modelType' is used. -
modelPrimitive
public int modelPrimitiveRender primitive. Triangles by default. -
proximityDescriptorsLocation
Proximity loading location, the location of the directory that contains descriptor JSON files with the name of objects in the dataset. These get loaded whenever the camera gets close to a particle with the given name. -
proximityDescriptorsPath
The path for proximity loading. -
proximityThreshold
public double proximityThresholdThreshold solid angle when loading happens. About 4 degrees (0.069 rad). -
proximityLoadingFlag
public boolean proximityLoadingFlagFlag that indicates whether this particle set has proximity loading. -
proximityLoaded
public com.badlogic.gdx.utils.IntSet proximityLoadedSet that contains the indexes of the particles whose descriptors have already been loaded. -
proximityMissing
public com.badlogic.gdx.utils.IntSet proximityMissingContains the indices of the particles whose descriptors are not present. -
profileDecay
public float profileDecayProfile decay of the particles in the shader, when using quads. -
colorNoise
public float colorNoiseNoise factor for the color in [0,1]. -
colorFromTexture
public boolean colorFromTextureAssign a different color to each texture. Only used when textures are active. -
fixedAngularSize
public double fixedAngularSizeFixed angular size for all particles in this set, in radians. Applies only to quads. Negative to disable. -
particleSizeLimitsPoint
public double[] particleSizeLimitsPointParticle size limits. Applies to legacy point render (using GL_POINTS). -
particleSizeLimits
public double[] particleSizeLimitsParticle size limits for the quad renderer (using quads as GL_TRIANGLES). This will be multiplied by the distance to the particle in the shader, so thatsize = tan(angle) * dist
. -
textureAttribute
The texture attribute is an attribute in the original table that points to the texture to use. Ideally, it should be an integer value from 1 to n, where n is the number of textures. -
textureFiles
Texture files to use for rendering the particles, at random. Applies only to quads. -
textureArray
public com.badlogic.gdx.graphics.TextureArray textureArrayReference to the texture array containing the textures for this set, if any. Applies only to quads. -
meanPosition
Temporary storage for the mean position of this particle set, if it is given externally. If this is set, the mean position is not computed from the positions of all the particles automatically. -
factor
Factor to apply to the data points, usually to normalise distances. -
ccMin
public float[] ccMinMapping colors. -
ccMax
public float[] ccMaxMapping colors. -
forceLabel
Particles for which forceLabel is enabled. -
labelColors
Particles with special label colors. -
lastSortTime
public long lastSortTimeStores the time when the last sort operation finished, in ms. -
meanDistance
public double meanDistanceThe mean distance from the origin of all points in this group. Gives a sense of the scale. -
maxDistance
public double maxDistance -
minDistance
public double minDistance -
epochJd
public double epochJdEpoch for positions/proper motions in julian days. -
currDeltaYears
public double currDeltaYearsCurrent computed epoch time. -
focus
Reference to the current focus. -
focusIndex
public int focusIndexIndex of the particle acting as focus. Negative if we have no focus here. -
candidateFocusIndex
public int candidateFocusIndexCandidate to focus. -
focusPosition
Position of the current focus. -
focusPositionSph
Position in equatorial coordinates of the current focus in radians. -
focusDistToCamera
public double focusDistToCameraFOCUS_MODE attributes. -
focusSolidAngle
public double focusSolidAngleFOCUS_MODE attributes. -
focusSolidAngleApparent
public double focusSolidAngleApparentFOCUS_MODE attributes. -
focusSize
public double focusSizeFOCUS_MODE attributes. -
proximity
Proximity particles. -
disposed
public boolean disposed -
index
-
metadata
public double[] metadata -
indices1
-
indices2
-
active
-
background
-
visibilityArray
public byte[] visibilityArray -
entity
public com.badlogic.ashley.core.Entity entity -
updating
-
updaterTask
-
lastSortCameraPos
-
cPosD
-
mat
-
-
Constructor Details
-
ParticleSet
public ParticleSet()
-
-
Method Details
-
getNextSequence
public static long getNextSequence() -
getColorMin
public float[] getColorMin() -
setColorMin
public void setColorMin(double[] colorMin) -
setColorMin
public void setColorMin(float[] colorMin) -
getColorMax
public float[] getColorMax() -
setColorMax
public void setColorMax(double[] colorMax) -
setColorMax
public void setColorMax(float[] colorMax) -
getMeanDistance
public double getMeanDistance() -
getMinDistance
public double getMinDistance() -
getMaxDistance
public double getMaxDistance() -
data
Returns the list of particles. -
setData
-
setData
-
setColumnInfoList
-
regenerateIndex
public void regenerateIndex()Regenerates the name index -
generateIndex
Generates the index (maps name to array index) and computes the geometric center of this group- Parameters:
pointData
- The data- Returns:
- An map{string,int} mapping names to indices
-
setMeanPosition
public void setMeanPosition(double[] pos) -
setPosition
public void setPosition(double[] pos) -
setPosKm
public void setPosKm(double[] pos) -
setMeanPositionKm
public void setMeanPositionKm(double[] pos) -
setPositionKm
public void setPositionKm(double[] pos) -
setPosPc
public void setPosPc(double[] pos) -
setMeanPositionPc
public void setMeanPositionPc(double[] pos) -
setPositionPc
public void setPositionPc(double[] pos) -
setPosition
public void setPosition(int[] pos) -
setDataFile
-
setDatafile
-
setProviderParams
-
setProviderparams
-
setFactor
-
setProfiledecay
Deprecated. -
setProfileDecay
-
setColornoise
Deprecated. -
setColorNoise
-
setColorFromTexture
public void setColorFromTexture(boolean colorFromTexture) -
setFixedAngularSize
Set fixed angular size, in radians. -
setFixedAngularSizeRad
Set fixed angular size, in radians. -
setFixedAngularSizeDeg
Set fixed angular size, in degrees. -
setParticleSizeLimitsDeg
public void setParticleSizeLimitsDeg(double[] sizeLimits) -
setParticleSizeLimits
public void setParticleSizeLimits(double[] sizeLimits) -
setParticlesizelimits
public void setParticlesizelimits(double[] sizeLimits) -
setTextureAttribute
-
setTexture
-
setTextures
-
setRenderParticles
-
setRenderSetLabel
-
setExtended
-
setNumLabels
-
get
-
getRandomParticleName
Gets the name of a random particle in this group- Returns:
- The name of a random particle
-
setModelType
-
setModelParams
-
setModelPrimitive
-
setProximityDescriptorsLocation
-
setProximityDescriptors
-
setDescriptorsLocation
-
setProximityThreshold
-
setProximityThresholdRad
-
setProximityThresholdDeg
-
getSize
public double getSize() -
getSize
public double getSize(int i) Returns the size of the particle at index i- Parameters:
i
- The index- Returns:
- The size
-
getFocusSize
public double getFocusSize()Default size if not in data, 1e5 km- Returns:
- The size
-
setFocusIndex
-
getCandidateBean
-
getRadius
public double getRadius() -
getRadius
public double getRadius(int i) -
getTEff
public double getTEff() -
updateFocus
Updates the parameters of the focus, if the focus is active in this group- Parameters:
camera
- The current camera
-
updateFocusDataPos
public void updateFocusDataPos() -
setFocusIndex
public void setFocusIndex(int index) -
makeFocus
public void makeFocus() -
isVisible
public boolean isVisible(int index) Checks whether the particle with the given index is visible- Parameters:
index
- The index of the particle- Returns:
- The visibility of the particle
-
setVisible
-
setVisible
Sets the visibility of the particle with the given index. If the visibility has changed, it marks the particle group for update.- Parameters:
index
- The index of the particlevisible
- Visibility flag
-
markForUpdate
-
getAbsolutePosition
Returns the position of the object with the given name at the given date, if any, in the out vector.- Parameters:
date
- The date at which to get the position. If null, the position is given at the current simulation date.out
- The out vector.
-
getAbsolutePosition
Returns the position of the given object at the given date, if any, in the out vector.- Parameters:
object
- The particle record object.date
- The date at which to get the position. If null, the position is given at the current simulation date.out
- The out vector.
-
getAbsolutePosition
Returns the current focus position at the given date, if any, in the out vector.- Parameters:
date
- The date at which to get the position. If null, the position is given at the current simulation date.out
- The out vector.
-
getAbsolutePosition
Returns the current focus position, if any, in the out vector. -
getAbsolutePosition
Returns the absolute position of the particle with the given name.- Parameters:
name
- The name.out
- The out vector.- Returns:
- The absolute position in the out vector.
-
getAbsolutePosition
Returns the absolute position of the particle with the given name.- Parameters:
name
- The name.out
- The out vector.- Returns:
- The absolute position in the out vector.
-
fetchPositionDouble
public Vector3d fetchPositionDouble(IParticleRecord pb, Vector3b camPos, Vector3d out, double deltaYears) Fetches the real position of the particle. It will apply the necessary integrations (i.e. proper motion). Double-precision version.- Parameters:
pb
- The particle beancamPos
- The position of the camera. If null, the camera position is not subtracted so that the coordinates are given in the global reference system instead of the camera reference system.out
- The output vectordeltaYears
- The delta years- Returns:
- The vector for chaining
-
fetchPosition
Fetches the real position of the particle. It will apply the necessary integrations (i.e. proper motion). Arbitrary-precision version.- Parameters:
pb
- The particle bean.camPos
- The position of the camera. If null, the camera position is not subtracted so that the coordinates are given in the global reference system instead of the camera reference system.out
- The output vector.deltaYears
- The delta years.- Returns:
- The vector for chaining.
-
setEpoch
Sets the epoch to use for the stars in this set.- Parameters:
epochJd
- The epoch in julian days (days since January 1, 4713 BCE).
-
setEpochJd
Sets the epoch to use for the stars in this set.- Parameters:
epochJd
- The epoch in julian days (days since January 1, 4713 BCE).
-
getDeltaYears
public double getDeltaYears()Returns the delta years to integrate the proper motion.- Returns:
- The current delta years.
-
getId
public long getId() -
getName
-
getNames
-
hasName
-
hasName
-
getLocalizedName
-
getCandidateId
public long getCandidateId() -
getCandidateName
-
getCandidateSolidAngleApparent
public double getCandidateSolidAngleApparent() -
getSolidAngleApparent
public double getSolidAngleApparent(int idx) -
getClosestName
-
canSelect
-
getPosSph
-
getAlpha
public double getAlpha() -
getDelta
public double getDelta() -
getDistToCamera
public double getDistToCamera() -
getSolidAngle
public double getSolidAngle() -
getSolidAngleApparent
public double getSolidAngleApparent() -
isWireframe
public boolean isWireframe() -
isBillboard
public boolean isBillboard() -
setForceLabel
-
isForceLabel
-
setLabelColor
-
dispose
public void dispose(com.badlogic.ashley.core.Entity entity) - Specified by:
dispose
in interfaceIDisposable
-
setColorNoise(Double)
.