Added Track start and end angle functions
+Added Track.getStartAngleXZ and .getEndAngleXZ function and implemented them in its child classes
This commit is contained in:
parent
ccbc50054c
commit
6be4503b93
@ -22,6 +22,14 @@ export default class BezierTrack extends Track
|
||||
});
|
||||
}
|
||||
|
||||
getStartAngleXZ() {
|
||||
return this.points.start.atanY(this.points.control1);
|
||||
}
|
||||
|
||||
getEndAngleXZ() {
|
||||
return this.points.control2.atanY(this.points.end);
|
||||
}
|
||||
|
||||
static fromText(text) {
|
||||
const values = text.split(";");
|
||||
const track = new BezierTrack(
|
||||
|
||||
@ -19,6 +19,20 @@ export default class PointTrack extends Track
|
||||
});
|
||||
}
|
||||
|
||||
getStartAngleXZ() {
|
||||
return AngleHelper.degToRad(this.rot.y);
|
||||
}
|
||||
|
||||
getEndAngleXZ() {
|
||||
const startAngle = AngleHelper.degToRad(this.rot.y);
|
||||
|
||||
if(this.r === 0) {
|
||||
return startAngle;
|
||||
}
|
||||
|
||||
return startAngle - this.len / this.r;
|
||||
}
|
||||
|
||||
static _getRotLen(start, end, r) {
|
||||
// TODO: include track slope in calculations
|
||||
const pointsAngle = start.atanY(end);
|
||||
|
||||
@ -16,6 +16,20 @@ export default class StandardTrack extends Track
|
||||
this._calcPoints();
|
||||
}
|
||||
|
||||
getStartAngleXZ() {
|
||||
return AngleHelper.degToRad(this.rot.y);
|
||||
}
|
||||
|
||||
getEndAngleXZ() {
|
||||
const startAngle = AngleHelper.degToRad(this.rot.y);
|
||||
|
||||
if(this.r === 0) {
|
||||
return startAngle
|
||||
}
|
||||
|
||||
return startAngle - this.len / this.r;
|
||||
}
|
||||
|
||||
static fromText(text) {
|
||||
const values = text.split(";");
|
||||
const track = new StandardTrack(
|
||||
|
||||
@ -34,6 +34,14 @@ export default class Track extends SceneryObject {
|
||||
});
|
||||
}
|
||||
|
||||
getStartAngleXZ() {
|
||||
throw new Error("getStartAngleXZ() must be implemented in subclass");
|
||||
}
|
||||
|
||||
getEndAngleXZ() {
|
||||
throw new Error("getEndAngleXZ() must be implemented in subclass");
|
||||
}
|
||||
|
||||
static slopesFromText(text) {
|
||||
return text.split(",", 2);
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user