Slightly improving phases sum cleanness.
Didn't have quite as many bugs, but isn't quite as clean as the magnitude one as of now
This commit is contained in:
parent
a16f02fd5f
commit
d7fe760900
2 changed files with 29 additions and 16 deletions
|
@ -114,11 +114,21 @@ export default class PhaseBode extends ExecutableObject {
|
||||||
}
|
}
|
||||||
|
|
||||||
update() {
|
update() {
|
||||||
if(Objects.currentObjects['Somme phases Bode'] !== undefined && Objects.currentObjects['Somme phases Bode'].length > 0) {
|
super.update()
|
||||||
Objects.currentObjects['Somme phases Bode'][0].recalculateCache()
|
let sumObjs = Objects.currentObjects['Somme phases Bode']
|
||||||
|
if(sumObjs !== undefined && sumObjs.length > 0) {
|
||||||
|
sumObjs[0].recalculateCache()
|
||||||
} else {
|
} else {
|
||||||
Objects.createNewRegisteredObject('Somme phases Bode')
|
Objects.createNewRegisteredObject('Somme phases Bode')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
delete() {
|
||||||
|
super.update()
|
||||||
|
let sumObjs = Objects.currentObjects['Somme phases Bode']
|
||||||
|
if(sumObjs !== undefined && sumObjs.length > 0) {
|
||||||
|
sumObjs[0].recalculateCache()
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -74,25 +74,28 @@ export default class SommePhasesBode extends ExecutableObject {
|
||||||
|
|
||||||
recalculateCache() {
|
recalculateCache() {
|
||||||
// Minimum to draw (can be expended if needed, just not infinite or it'll cause issues.
|
// Minimum to draw (can be expended if needed, just not infinite or it'll cause issues.
|
||||||
let drawMin = 0.001
|
let drawMin = 1e-20
|
||||||
let drawMax = 100000
|
let drawMax = 1e20
|
||||||
this.om0xList = [drawMin, drawMax]
|
this.om0xList = [drawMin, drawMax]
|
||||||
this.phasesList = [0]
|
this.phasesList = [0]
|
||||||
this.phasesExprList = ['0']
|
this.phasesExprList = ['0']
|
||||||
let phasesDict = {}
|
let phasesDict = new Map()
|
||||||
let phasesExprDict = {}
|
let phasesExprDict = new Map()
|
||||||
phasesDict[drawMax] = 0
|
phasesDict.set(drawMax, 0)
|
||||||
|
|
||||||
if(Objects.currentObjects['Phase Bode'] !== undefined) {
|
let phaseObjects = Objects.currentObjects['Phase Bode']
|
||||||
|
if(phaseObjects === undefined || phaseObjects.length < 1) {
|
||||||
|
Objects.deleteObject(this.name)
|
||||||
|
} else {
|
||||||
console.log('Recalculating cache phase')
|
console.log('Recalculating cache phase')
|
||||||
for(/** @type {PhaseBode} */ let obj of Objects.currentObjects['Phase Bode']) {
|
for(/** @type {PhaseBode} */ let obj of phaseObjects) {
|
||||||
this.om0xList.push(obj.om_0.x.execute())
|
this.om0xList.push(obj.om_0.x.execute())
|
||||||
if(phasesDict[obj.om_0.x.execute()] === undefined) {
|
if(!phasesDict.has(obj.om_0.x.execute())) {
|
||||||
phasesDict[obj.om_0.x.execute()] = obj.phase.execute()
|
phasesDict.set(obj.om_0.x.execute(), obj.phase.execute())
|
||||||
phasesExprDict[obj.om_0.x.execute()] = obj.phase.toEditableString()
|
phasesExprDict.set(obj.om_0.x.execute(), obj.phase.toEditableString())
|
||||||
} else {
|
} else {
|
||||||
phasesDict[obj.om_0.x.execute()] += obj.phase.execute()
|
phasesDict.set(obj.om_0.x.execute(), obj.phase.execute() + phasesDict.get(obj.om_0.x.execute()))
|
||||||
phasesExprDict[obj.om_0.x.execute()] += '+' + obj.phase.toEditableString()
|
phasesExprDict.set(obj.om_0.x.execute(), obj.phase.toEditableString() + '+' + phasesExprDict.get(obj.om_0.x.execute()))
|
||||||
}
|
}
|
||||||
this.phasesList[0] += obj.om_0.y.execute()
|
this.phasesList[0] += obj.om_0.y.execute()
|
||||||
this.phasesExprList[0] += '+' + obj.om_0.y.toEditableString()
|
this.phasesExprList[0] += '+' + obj.om_0.y.toEditableString()
|
||||||
|
@ -100,8 +103,8 @@ export default class SommePhasesBode extends ExecutableObject {
|
||||||
this.om0xList.sort((a,b) => a - b)
|
this.om0xList.sort((a,b) => a - b)
|
||||||
let totalAdded = this.phasesList[0]
|
let totalAdded = this.phasesList[0]
|
||||||
for(let i = 1; i < this.om0xList.length; i++) {
|
for(let i = 1; i < this.om0xList.length; i++) {
|
||||||
this.phasesList[i] = this.phasesList[i-1] + phasesDict[this.om0xList[i]]
|
this.phasesList[i] = this.phasesList[i-1] + phasesDict.get(this.om0xList[i])
|
||||||
this.phasesExprList[i] = this.phasesExprList[i-1] + '+' + phasesDict[this.om0xList[i]]
|
this.phasesExprList[i] = this.phasesExprList[i-1] + '+' + phasesDict.get(this.om0xList[i])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue