Нужно кое-что крутануть, но не относительно 0, а относительно pivotPoint в Хелпе сказано

Код:
appendRotation(degrees:Number, axis:Vector3D, pivotPoint:Vector3D = null):void
Appends an incremental rotation to a Matrix3D object.
Думал как его вообще использовать, но как-то так

Код:
package {
import flash.geom.*;
import __AS3__.vec.*;
import flash.display.*;
import flash.events.*;
public class Main extends MovieClip {
private var pointS:Vector.<Vector3D>,
mat3D:Matrix3D,
myPivotPoint:Vector3D,
i:int;
public function Main() {
x = 200;
y = 200;
pointS = new Vector.<Vector3D>();
pointS[0] = new Vector3D( 0, 0, 0);
pointS[1] = new Vector3D( 100, 0, 0);
pointS[2] = new Vector3D( 100, 100, 0);
pointS[3] = new Vector3D( 0, 100, 0);
mat3D = new Matrix3D();
myPivotPoint = new Vector3D( 50, 50, 50);
mat3D.appendRotation(1, Vector3D.Z_AXIS,myPivotPoint);
addEventListener(Event.ENTER_FRAME, enterFrameFunc);
}
private function enterFrameFunc(evt:Event):void {
setGr();
for (i = 0; i < 4; i++) {
pointS[i]=mat3D.deltaTransformVector(pointS[i]);
showPoint(pointS[i]);
}
}
private function showPoint(_v:Vector3D):void {
graphics.drawCircle(_v.x, _v.y, 5);
}
private function setGr():void {
graphics.clear();
graphics.beginFill(0);
}
}
}
Однако точки вертятся относительно 0, а надо относительно myPivotPoint, как же заюзать myPivotPoint?