Needed some rotation so did this

private function rotateUV(m:Mesh, rotationDeg:Number,
rotateAbout:Point):void
{
    var v:Vector.<Number> = SubGeometry(m.geometry.subGeometries[0]).UVData;
    var r:Number= rotationDeg*(Math.PI/180);

    for (var i:int = 0; i < v.length; i=i+2)
    {
        v[i] -= rotateAbout.x;
        v[i + 1] -= rotateAbout.y;
        v[i] = v[i] * Math.cos(r) + v[i + 1] * -Math.sin(r);
        v[i + 1] = v[i] * Math.sin(r) +v[i + 1] * Math.cos(r);
        v[i] += rotateAbout.x;
        v[i + 1] += rotateAbout.y;
    }
    SubGeometry(m.geometry.subGeometries[0]).updateUVData(v);
}

//eg rotate 1 deg about center
rotateUV(plane, 1, new Point(0.5, 0.5));

//eg rotate 90deg about topLeft
rotateUV(plane, 90, new Point(0,0));

Reply via email to