Last fix to CSceneCollisionManager::getPickedNodeBB(). ;) Efficiency improvements to reduce the number of checks, since we can only hit one face of each box, and we needn't consider boxes that are further away than the closest hit.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2049 dfc29bdd-3216-0410-991c-e03cc46cb475
Another fix to CSceneCollisionManager::getPickedNodeBB(). Ensure that the collision point with the plane of a box is actually on the box surface rather than outside it. Retested with regression test and example 07.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2048 dfc29bdd-3216-0410-991c-e03cc46cb475
Change ray/bounding box selection so that the nearest node is determined by the actual collision point with the bounding box (or the distance to the box centre if the ray starts inside the box). Since this is a functional change from the old behaviour, I'm only committing to the trunk. This will be slightly slower than the old method, but should return the correct node; I consider accuracy to take priority over efficiency for collision.
tests/sceneCollisionManager.cpp has been updated, as has examples/07.Collision/main.cpp.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2047 dfc29bdd-3216-0410-991c-e03cc46cb475
Tested on Windows with MSVC 2005 and Code::Blocks, with a local trunk re-application of the terrainSceneNode.cpp change in SVN 2039 (which will get merged down separately). I'll re-test on Linux as soon as I've committed this.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2040 dfc29bdd-3216-0410-991c-e03cc46cb475
Merge fix for CTerrainSceneNode::preRenderLODCalculations() to trunk; take the camera's up vector into account when determining whether terrain scene node visibility needs to be rechecked. New test added; thanks to Travis for another great test case.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2003 dfc29bdd-3216-0410-991c-e03cc46cb475
Also clarified the comments on ISceneNode::setVisible() and isVisible(), and added a new method, isTrulyVisible() that recursively checks any Parent nodes as well.
Unit/regression tests updated, verifying that they tested (and failed) with the old behaviour and pass with the new.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1978 dfc29bdd-3216-0410-991c-e03cc46cb475
1) The active camera.
2) Receiving input.
This allows example 09.Meshviewer (with two cameras) to work as expected. Replace the magic numbers in that example with enumerated values.
This patch also exposes ISceneNode::SceneManager through a public getSceneManager() API.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1974 dfc29bdd-3216-0410-991c-e03cc46cb475
Another poke at matrix4::transformPlane(). Tested with the example from the report, a (1,5,1) scaled node in 02.Quake3Map, and the existing regression tests, with some expected results updated.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1970 dfc29bdd-3216-0410-991c-e03cc46cb475
Forget about the cached mesh frame for animated mesh scene nodes when the mesh is changed.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1963 dfc29bdd-3216-0410-991c-e03cc46cb475
https://sourceforge.net/tracker2/?func=detail&aid=1339139&group_id=74339&atid=540679
This is a very small API breaking change to a method that's unlikely to be heavily used in user code. It is commented in the declaration, in changes.txt and a unit test has been added.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1958 dfc29bdd-3216-0410-991c-e03cc46cb475