5#ifndef __I_SCENE_COLLISION_MANAGER_H_INCLUDED__
6#define __I_SCENE_COLLISION_MANAGER_H_INCLUDED__
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;
IReferenceCounted()
Constructor.
3D line between two points with intersection methods.
Scene Node which is a (controlable) camera.
The Scene Collision Manager provides methods for performing collision tests and picking on scene node...
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 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...
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 core::position2d< s32 > getScreenCoordinatesFrom3DPosition(const core::vector3df &pos, ICameraSceneNode *camera=0, bool useViewPort=false)=0
Calculates 2d screen position from a 3d position.
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.
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.
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,...
Interface to return triangles with specific properties.
vector3d< f32 > vector3df
Typedef for a f32 3d vector.
triangle3d< f32 > triangle3df
Typedef for a f32 3d triangle.
line3d< f32 > line3df
Typedef for an f32 line.
All scene management can be found in this namespace: Mesh loading, special scene nodes like octrees a...
Everything in the Irrlicht Engine can be found in this namespace.
float f32
32 bit floating point variable.
signed int s32
32 bit signed variable.