Papervision: restrict rotation of a plane

Hey guys

A longtime AS2 developer finally making the transition to AS3 and Papervision all in one big leap.

Working from Lee Brimelow’s awesome pv2 tutorial as a base I’ve been able to create a plane with a movieclip mapped to it. What I’d ideally like to do is limit the rotation of the plane to maximum of -45 to 45 degrees on the X and Y. Here’s my code:

 
import org.papervision3d.scenes.*;
import org.papervision3d.cameras.*;
import org.papervision3d.objects.*;
import org.papervision3d.objects.special.*;
import org.papervision3d.objects.primitives.*;
import org.papervision3d.materials.*;
import org.papervision3d.materials.special.*;
import org.papervision3d.materials.shaders.*;
import org.papervision3d.materials.utils.*;
import org.papervision3d.lights.*;
import org.papervision3d.render.*;
import org.papervision3d.view.*;
import org.papervision3d.events.*;
import org.papervision3d.core.utils.*;
import org.papervision3d.core.utils.virtualmouse.*;
var viewport:Viewport3D = new Viewport3D(0, 0, true, true);
addChild(viewport);
viewport.buttonMode = true;
var renderer:BasicRenderEngine = new BasicRenderEngine();
var scene:Scene3D = new Scene3D();
var camera:Camera3D = new Camera3D();
camera.zoom = 11;
camera.focus = 100;
 
var jar:MovieAssetMaterial = new MovieAssetMaterial("jar");
jar.oneSide = false;
jar.smooth = true;
 
var p:Plane = new Plane(jar,510,286,2,2);
 
scene.addChild(p);
 
addEventListener(Event.ENTER_FRAME, loop);
 
function loop(e:Event):void {
 var xDist:Number = mouseX - stage.stageWidth * 0.5;
 var yDist:Number = mouseY - stage.stageHeight * 0.5;
 p.rotationY += xDist * 0.05;
 p.rotationX += yDist * 0.05;
 renderer.renderScene(scene,camera,viewport);
}

I’ve tried using basic conditionals to restrict p.rotationX and p.rotationY but they seem to be ignored.

Ideally I’d like an eased, restrcted rotation. Does anybody have any tips? Thanks!