5 #ifndef __I_SCENE_COLLISION_MANAGER_H_INCLUDED__ 6 #define __I_SCENE_COLLISION_MANAGER_H_INCLUDED__ 20 class ICameraSceneNode;
21 class ITriangleSelector;
77 f32 slidingSpeed = 0.0005f,
126 s32 idBitMask=0,
bool bNoDebugObjects=
false,
ISceneNode* root=0) =0;
142 s32 idBitMask=0,
bool bNoDebugObjects=
false,
ISceneNode* root=0) =0;
162 s32 idBitMask=0,
bool bNoDebugObjects =
false) = 0;
197 bool noDebugObjects =
false) = 0;
Interface to return triangles with specific properties.
Scene Node which is a (controlable) camera.
float f32
32 bit floating point variable.
virtual ISceneNode * getSceneNodeAndCollisionPointFromRay(core::line3df ray, core::vector3df &outCollisionPoint, core::triangle3df &outTriangle, s32 idBitMask=0, ISceneNode *collisionRootNode=0, bool noDebugObjects=false)=0
Perform a ray/box and ray/triangle collision check on a heirarchy of scene nodes. ...
3d triangle template class for doing collision detection and other things.
virtual core::vector3df getCollisionResultPosition(ITriangleSelector *selector, const core::vector3df &ellipsoidPosition, const core::vector3df &ellipsoidRadius, const core::vector3df &ellipsoidDirectionAndSpeed, core::triangle3df &triout, core::vector3df &hitPosition, bool &outFalling, ISceneNode *&outNode, f32 slidingSpeed=0.0005f, const core::vector3df &gravityDirectionAndSpeed=core::vector3df(0.0f, 0.0f, 0.0f))=0
Collides a moving ellipsoid with a 3d world with gravity and returns the resulting new position of th...
Everything in the Irrlicht Engine can be found in this namespace.
3D line between two points with intersection methods.
virtual core::line3d< f32 > getRayFromScreenCoordinates(const core::position2d< s32 > &pos, ICameraSceneNode *camera=0)=0
Returns a 3d ray which would go through the 2d screen coodinates.
virtual ISceneNode * getSceneNodeFromCameraBB(ICameraSceneNode *camera, s32 idBitMask=0, bool bNoDebugObjects=false)=0
Get the scene node, which the given camera is looking at and whose id matches the bitmask...
signed int s32
32 bit signed variable.
virtual bool getCollisionPoint(const core::line3d< f32 > &ray, ITriangleSelector *selector, core::vector3df &outCollisionPoint, core::triangle3df &outTriangle, ISceneNode *&outNode)=0
Finds the nearest collision point of a line and lots of triangles, if there is one.
virtual ISceneNode * getSceneNodeFromRayBB(const core::line3d< f32 > &ray, s32 idBitMask=0, bool bNoDebugObjects=false, ISceneNode *root=0)=0
Returns the nearest scene node which collides with a 3d ray and whose id matches a bitmask...
virtual ISceneNode * getSceneNodeFromScreenCoordinatesBB(const core::position2d< s32 > &pos, s32 idBitMask=0, bool bNoDebugObjects=false, ISceneNode *root=0)=0
Gets the scene node, which is currently visible under the given screencoordinates, viewed from the currently active camera.
Base class of most objects of the Irrlicht Engine.
The Scene Collision Manager provides methods for performing collision tests and picking on scene node...
virtual core::position2d< s32 > getScreenCoordinatesFrom3DPosition(const core::vector3df &pos, ICameraSceneNode *camera=0, bool useViewPort=false)=0
Calculates 2d screen position from a 3d position.