Hi, thanks for your quick reply. I was afraid that would be the answer. I try to avoid modifying libraries because they are a pain to mantain (you have to re-apply your own changes to the new versions every time you update them).

It would be nice of those properties where protected or public so they can be used from extending classes.

So far I´ve solved it by adding this to OrbitControls:

```
this.getSpherical = function() {
return spherical;
}
this.getSphericalDelta = function() {
return sphericalDelta;
}
this.setDollyIn = function(dollyScale) {
dollyIn(dollyScale);
}
this.setDollyOut = function(dollyScale) {
dollyIn(dollyScale);
}
```

Then, on my extending class in TypeScript I have:

```
setPolarAngle(angle:number, updateCamera:boolean = true):void {
if (angle == undefined || isNaN(angle)) return;
this.getSphericalDelta().phi = this.getSpherical().phi - angle;
if (updateCamera) this.update();
}
setAzimuthalAngle(angle:number, updateCamera:boolean = true):void {
if (angle == undefined || isNaN(angle)) return;
this.getSphericalDelta().theta = this.getSpherical().theta - angle;
if (updateCamera) this.update();
}
setDollyScale(dollyScale:number, updateCamera:boolean = true) {
if (dollyScale == undefined || isNaN(dollyScale)) return;
// If positive number, dolly in, else dolly out.
if (dollyScale > 0) {
this.setDollyIn(dollyScale);
} else {
this.setDollyOut(Math.abs(dollyScale));
}
if (updateCamera) this.update();
}
```

Maybe not the best code in the world, but works for me. I hope it helps somebody else.