Development news: drag sensors, KambiScript rotations, mouse wheel, more
All X3D dragging sensors (PlaneSensor, SphereSensor, CylinderSensor) are implemented now. Very nice tools to allow user to edit portions of your 3D scenes — PlaneSensor allows moving, SphereSensor allows free rotation, CylinderSensor allows rotations constrained around an axis.
I encourage you to try them — test e.g. X3D conformance models
or VRML 97 annotated reference examples
or our Kambi VRML test suite (see SVN, files
x3d/xxx_sensor*.x3dv). They allow you to really easily add great interactivity to your VRML/X3D scenes.
Also related to sensors: fixed behavior when multiple pointing-device sensors are siblings (and so should be simultaneously activated).
New functions for KambiScript to handle rotations.
Transform node containing light sources is greatly optimized now.
This also causes a regression: if you instantiate this light source (through DEF/USE), and then try to animate it by changing it's Transform node — too many light instances will be updated. This is a regression (something that used to work correctly, but now doesn't work), but I feel it's justified — while previous behavior was correct, it was also awfully slow (bringing even trivial scenes to a speed of a few FPS), so the new behavior is at least usable in common cases.
Various fixes along the way. Including shadow map regeneration when light changes.
Mouse wheel is supported. It is used for zoom (in camera Examine mode), scrolling text (in various message boxes), it can also be used as a (configurable) shortcut for castle actions (default is to scroll through inventory). Developers: see
TGLWindow.OnMouseWheel for using this in your own programs.
Warnings after loading a model are signaled by a "%d warnings" button by view3dscene. This way warnings are still clearly visible (the button only disappears after you use it on this model), but don't make an "obstacle" (modal box) to viewing the model.
I added to NURBS implementation status page notes about control points in homogeneous coordinates, thanks to Stephen H. France for noticing the problem and Joerg Scheurich (from White Dune) for offering an explanation.
Smooth camera transitions under Windows are fixed.
OrthoViewpoint improvements, to internally adjust fieldOfView to keep aspect ratio. (OrthoViewpoint.fieldOfView demo)