Fixed sprites display on slider change.

This commit is contained in:
Krafpy
2022-07-15 16:07:42 +02:00
parent a700765ec9
commit a399f72d3b
2 changed files with 11 additions and 2 deletions

View File

@@ -11,6 +11,7 @@ export class Trajectory {
this.orbits = [];
this._maneuvres = [];
this._flybys = [];
this._displayedSteps = [];
this._spritesUpdateFunId = -1;
for (const { orbitElts, attractorId } of this.steps) {
const attractor = this.system.bodyFromId(attractorId);
@@ -33,6 +34,8 @@ export class Trajectory {
textureLoader.load("sprites/maneuver.png", loaded("maneuver"));
}
draw(resolution) {
const numSteps = this.steps.length;
this._displayedSteps = Array(numSteps).fill(true);
this._createTrajectoryArcs(resolution);
this._createManeuvreSprites();
this._calculateManeuvresDetails();
@@ -121,7 +124,7 @@ export class Trajectory {
const dstToCam = bodyPos.distanceTo(camPos);
const visible = dstToCam < scale * body.soi * spriteDispSOIMul;
for (const sprite of this._spriteObjects[i]) {
sprite.visible = visible;
sprite.visible = visible && this._displayedSteps[i];
}
}
};
@@ -273,6 +276,7 @@ export class Trajectory {
for (const sprite of sprites) {
sprite.visible = visible;
}
this._displayedSteps[i] = visible;
}
}
get _totalDeltaV() {

View File

@@ -18,6 +18,7 @@ export class Trajectory {
private readonly _maneuvres: ManeuvreDetails[] = [];
private readonly _flybys: FlybyDetails[] = [];
private _displayedSteps: boolean[] = [];
private _spritesUpdateFunId: number = -1;
constructor(public readonly steps: TrajectoryStep[], public readonly system: SolarSystem, public readonly config: Config) {
@@ -45,6 +46,9 @@ export class Trajectory {
}
public draw(resolution: {width: number, height: number}){
const numSteps = this.steps.length;
this._displayedSteps = Array(numSteps).fill(true);
this._createTrajectoryArcs(resolution);
this._createManeuvreSprites();
this._calculateManeuvresDetails();
@@ -147,7 +151,7 @@ export class Trajectory {
const visible = dstToCam < scale * body.soi * spriteDispSOIMul;
for(const sprite of this._spriteObjects[i]){
sprite.visible = visible;
sprite.visible = visible && this._displayedSteps[i];
}
}
};
@@ -339,6 +343,7 @@ export class Trajectory {
for(const sprite of sprites){
sprite.visible = visible;
}
this._displayedSteps[i] = visible;
}
}