Commit Graph

97 Commits (934b4cfd2264d32887143d0a82762b5f1717c41b)

Author SHA1 Message Date
Rogerborg ca0c0850c9 http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=32277
Expose CGeometryCreator (as IGeometryCreator) through ISceneManager.  Test app added.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2205 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-02-09 20:05:53 +00:00
Rogerborg e97eba6d3a Unit tests update. Remove version number from Burning driver name. Rename reference images. Temporarily elide the vector2d<s32> / vector3d<s32> tests to allow for the re-introduced bug in vectorXd<T>::normalize().
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2204 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-02-09 19:25:36 +00:00
Rogerborg 17784dd0f8 https://sourceforge.net/tracker2/?func=detail&aid=2552603&group_id=74339&atid=540678
Add IVideoDriver methods to enumerate the available image loaders and writers.  Unit test added.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2174 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-31 17:01:45 +00:00
hybrid 276d00398b Now also passes under Linux. Also call a pager on the text file under non-windows systems.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2165 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-29 09:26:17 +00:00
hybrid 858c74c1c5 Finally a successful test run
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2163 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-28 23:33:17 +00:00
Rogerborg cf349f9953 More collision additions. ISceneCollisionManager::getCollisionResultPosition() now returns the node that was hit. ISceneNodeAnimatorCollisionResponse stores and exposes the node that was hit.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2127 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-22 18:24:33 +00:00
Rogerborg 81671c23b2 https://sourceforge.net/tracker2/index.php?func=detail&aid=2498791&group_id=74339&atid=540678
Revert my previous ITriangleSelector patch and implement garritg's great idea about retrieving an ISceneNode by index.  Add an out parameter to ISceneCollisionManager::getCollisionPoint() to return the hit scene node.  This is an API breaking change; the test and example apps have been updated.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2125 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-22 15:50:06 +00:00
Rogerborg 74658ced68 https://sourceforge.net/tracker2/index.php?func=detail&aid=2498791&group_id=74339&atid=540678
Extend ITriangleSelector::getTriangles() to allow for returning multiple groups of triangles from individual scene nodes.  By default, the 1.5 behaviour will be preserved, and all triangles from all nodes will be returned, even for IMetaTriangleSelectors.  Regression tests confirm this.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2124 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-22 14:14:39 +00:00
Rogerborg 01fa608741 Do some core::dimension2di() conversions required when passing dimension2d<u32> sources as dimension2d<s32> parameters.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2122 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-22 13:00:52 +00:00
Rogerborg 2c203d8401 https://sourceforge.net/tracker2/index.php?func=detail&aid=2498791&group_id=74339&atid=540678
Expose the collision result position in ISceneNodeAnimatorCollisionResponse, to give more information to the user app.  Thanks again to garritg.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2120 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-22 10:12:46 +00:00
Rogerborg a417170595 Have the collision response animator callback return the collision point, not the new position for the instant node. Thanks again to garritg for spotting this. Test updated (to test the proper expected result!)
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2119 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-22 09:56:23 +00:00
Rogerborg 98766ca5ac https://sourceforge.net/tracker2/index.php?func=detail&aid=2526240&group_id=74339&atid=540676
Improve matrix::getScale() to return the absolute scale values when the matrix contains a rotation.  This still isn't perfect, but it's an improvement.  New unit test added.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2114 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-21 15:06:21 +00:00
Rogerborg 0e147df2e0 Change recently added ICollisionCallback / ISceneNodeAnimatorCollisionResponse methods to use const & parameters and return values. Regression tested.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2113 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-21 08:37:21 +00:00
Rogerborg d021013af2 https://sourceforge.net/tracker2/?func=detail&aid=2498791&group_id=74339&atid=540678
Add an ICollisionCallback to ISceneNodeAnimatorCollisionResponse to inform the application when collisions occur (and allow it to ignore them).  Thanks to garrit for this patch!  The existing collisionResponseAnimator unit test has been updated to exercise the new functionality.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2111 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-20 19:10:46 +00:00
Rogerborg e464ba11f4 http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=31995
Add an optional startPosition parameter to createFlyCircleAnimator() to allow specifying a start position on the circle. New unit test added.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2105 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-20 12:54:49 +00:00
Rogerborg dcebfbbf0d http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=183704
Change from dimension2d<s32> to dimension2d<u32> where practical.  IImage and ITexture now have unsigned dimensions, as does screen size.  This has had a significant knock-on through the code base, but it is more technically correct - the BEST KIND of correct.

GUI elements and draw2DImage methods still have and take signed dimensions, but we can look into this in future. Regression tested with the test suite and the example apps.  Note that createDevice() now takes dimension2d<u32>!

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2092 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-19 13:48:22 +00:00
Rogerborg 9067211624 http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=183435#183435
Change IVideoDriver::writeImageToFile() to always use the IWriteFile filename rather than taking a separate extension.

Test updated.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2082 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-16 15:35:22 +00:00
Rogerborg a603abe03a http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?p=183427
Add IFileSystem::createMemoryWriteFile() to allow writing to memory.
Replace CMemoryReadFile with CMemoryFile that also implement IWriteFile.
Add an IVideoDriver::writeImageToFile() overload that takes an IWriteFile.
This allows writing (e.g.) screenshots to memory, rather than directly to file.

New unit test added to test the new functionality.  Tested on Windows with VS2005 and C::B. I'll do Linux ASAP.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2081 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-16 14:19:38 +00:00
Rogerborg 94a1346a5c Adding an optional light manager that allows hardware lights to be turned on and off before each scene node is rendered. This can be used to produce "zoned" lighting.
If a light manager is not registered, the existing behaviour (activate the closest lights to the camera) will be retained unchanged.  New example project added to demonstrate the usage, and regression tests and existing samples run.  No regression test for the light manager yet, since I am more interested in not regressing the default behaviour.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2064 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-12 10:55:39 +00:00
Rogerborg 2563bf14d8 Small efficiency improvements in scene collision:
Have all public ISceneCollisionManager.h methods take 'const type &' rather than 'type' where appropriate.

Conversely, have CSceneManager::getPickedNodeBB() take a non-const 'core::line3df& ray', so that child nodes can truncate the master ray when they get a collision.

This is an API change, so goes to the trunk only.

git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2050 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-06 16:02:03 +00:00
Rogerborg d232810cf8 Last fix to https://sourceforge.net/tracker2/?func=detail&aid=2473520&group_id=74339&atid=540676
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
2009-01-06 15:48:00 +00:00
Rogerborg 2b18db4c67 https://sourceforge.net/tracker2/?func=detail&aid=2473520&group_id=74339&atid=540676
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
2009-01-06 15:40:00 +00:00
Rogerborg bac02b5bb0 https://sourceforge.net/tracker2/?func=detail&aid=2473520&group_id=74339&atid=540676
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
2009-01-06 15:12:15 +00:00
hybrid 6fe8e2d89d Merged from 1.5 branch to trunk, all changes from 2018 to 2041. OSX keyboard fix, OpenGL version fix, some tests fixed. Example 9 text position fixed.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2042 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-05 15:34:22 +00:00
Rogerborg 64f9c03528 Update trunk tests: add textureRenderStates.cpp to tests_vc8.proj and tests.cbp; fix reversed logic in irrCoreEqual.cpp (the test wasn't being run); re-base the trunk tests/main.cpp on 1.5 tests/main.cpp, with the addition of those tests only available on the trunk.
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
2009-01-05 14:53:30 +00:00
hybrid e7ced16d04 Made the Anisotropic Filter degree configurable via the SMaterialLayer member which had been a bool formerly. Using the setFlag in SMaterial should still give MaxAnisotropy level as before.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2034 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-05 00:30:11 +00:00
hybrid a669b865f1 Added better support for AntiAliasing levels, based on the patch by Sylence.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2032 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-04 17:13:54 +00:00
hybrid e3b373953b Hmm, didn't save the last files before committing. So this is the actual test cases which runs through.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2030 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-04 15:12:11 +00:00
hybrid 6f1532e2cd Added orthogonality check in matrix class, based on a patch by Halifax. Also added some (rather trivial) testcases, corner cases have to be identified...
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2029 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-04 14:58:23 +00:00
hybrid 47148c640f Looks like another merge problem fixed...
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2027 dfc29bdd-3216-0410-991c-e03cc46cb475
2009-01-03 23:30:51 +00:00
rogerborg 0ef1056eb8 https://sourceforge.net/tracker2/index.php?func=detail&aid=2472420&group_id=74339&atid=540676
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
2008-12-29 19:40:48 +00:00
rogerborg c9d7d28b90 Add missing irrCoreEquals.cpp test file. Update changes.txt to note that position2d is now a synonym for vector2d. Add proper doxygen \deprecated tags for position2d.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2001 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-29 16:31:18 +00:00
rogerborg 77d97b18bf Make position2d a typedef of vector2d. Very tentatively deprecate position2d. Add the position2d methods that operate on a dimension2d to vector2d. Add vector2d constructor and equality methods to dimension2d. Add a new test case that verifies that vector2d and position2d are interchangeable, and that vector2d and dimension2d can operate on and implicitly convert each other. Remove the now duplicate position2d methods from CAttributeImpl. Tested with unit/regression tests and building all the examples. This should be a transparent change for users.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@2000 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-29 16:05:49 +00:00
rogerborg ea44396c11 Make the integral versions of irr::core::equals() do a direct == comparison when no explicit tolerance is specified, rather than using an implicit tolerance of 0. The floating point versions are unchanged. New unit test added.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1999 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-29 13:34:22 +00:00
rogerborg 7657b29e8c Removing extraneous device->drop() from tests/sceneCollisionManager.cpp
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1998 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-29 13:16:21 +00:00
Rogerborg 04a344c75d Add an ISceneNodeAnimator::hasFinished() method. It can only return true for non-looping delete, fly straight and texture animators.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1980 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-19 23:21:26 +00:00
Rogerborg baa858b66c From IRC: CSceneCollisionManager::getPickedNodeBB() unconditionally checks collision against children, so visible children of invisible nodes can be hit. This seems nonsensical, so we now only check children of visible nodes.
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
2008-12-19 11:51:51 +00:00
Rogerborg b2ea2b3fee Fix Maya and FPS cameras so that they only animate if they are:
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
2008-12-18 15:25:30 +00:00
Rogerborg dfc9db6ca1 http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=31490
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
2008-12-17 23:52:19 +00:00
Rogerborg 0025933fb0 http://irrlicht.sourceforge.net/phpBB2/viewtopic.php?t=31496
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
2008-12-17 11:28:16 +00:00
Rogerborg e8cbe44b1f Merge SVN 1961 (C::B project fix) to trunk.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1962 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-16 17:40:05 +00:00
Rogerborg 340b984ced Add a hitPosition to ISceneCollisionManager::getCollisionResultPosition() as per
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
2008-12-16 16:16:35 +00:00
Rogerborg 1b628ef663 Expose the target scene nodes of collision response animators. Setting the target forces an update of its last position. This allows a setPosition() to take effect without being blocked by the collision geometry. Added comments to this effect, a unit test, and some unrelated !node checks in all the animators' animateNode() methods.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1957 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-16 15:07:01 +00:00
hybrid 9bc11201d5 Merged from 1.5 branch to trunk, all changes from 1933 to 1953. Camera and animation fixes, project file updates, etc.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1954 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-15 14:18:11 +00:00
hybrid ad43762777 Merged from 1.5 branch to trunk, all changes from 1913 to 1932. Mostly example and test fixes. Some bug fixes, camera interface changes.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1933 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-08 17:06:34 +00:00
hybrid ace653f4fc Merged revisions 1885:1912 from 1.5 branch. More unit tests and bug fixes.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1913 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-12-03 22:26:53 +00:00
hybrid 7a1fac9dfb Merged revisiosn 1851:1883 from 1.5 branch. unit tests and severla bug fixes.
git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@1884 dfc29bdd-3216-0410-991c-e03cc46cb475
2008-11-29 22:35:56 +00:00