Home | Namespaces | Hierarchy | Alphabetical List | Class list | Files | Namespace Members | Class members | File members | Tutorials
ISceneCollisionManager.h
Go to the documentation of this file.
1 // Copyright (C) 2002-2010 Nikolaus Gebhardt
2 // This file is part of the "Irrlicht Engine".
3 // For conditions of distribution and use, see copyright notice in irrlicht.h
4 
5 #ifndef __I_SCENE_COLLISION_MANAGER_H_INCLUDED__
6 #define __I_SCENE_COLLISION_MANAGER_H_INCLUDED__
7 
8 #include "IReferenceCounted.h"
9 #include "vector3d.h"
10 #include "triangle3d.h"
11 #include "position2d.h"
12 #include "line3d.h"
13 
14 namespace irr
15 {
16 
17 namespace scene
18 {
19  class ISceneNode;
20  class ICameraSceneNode;
21  class ITriangleSelector;
22 
25  {
26  public:
27 
29 
41  virtual bool getCollisionPoint(const core::line3d<f32>& ray,
42  ITriangleSelector* selector, core::vector3df& outCollisionPoint,
43  core::triangle3df& outTriangle, const ISceneNode*& outNode) =0;
44 
46 
69  ITriangleSelector* selector,
70  const core::vector3df &ellipsoidPosition,
71  const core::vector3df& ellipsoidRadius,
72  const core::vector3df& ellipsoidDirectionAndSpeed,
73  core::triangle3df& triout,
74  core::vector3df& hitPosition,
75  bool& outFalling,
76  const ISceneNode*& outNode,
77  f32 slidingSpeed = 0.0005f,
78  const core::vector3df& gravityDirectionAndSpeed
79  = core::vector3df(0.0f, 0.0f, 0.0f)) = 0;
80 
82 
89  const core::position2d<s32> & pos, ICameraSceneNode* camera = 0) = 0;
90 
92 
102  virtual core::position2d<s32> getScreenCoordinatesFrom3DPosition(
103  const core::vector3df & pos, ICameraSceneNode* camera=0) = 0;
104 
106 
121  virtual ISceneNode* getSceneNodeFromScreenCoordinatesBB(const core::position2d<s32>& pos,
122  s32 idBitMask=0, bool bNoDebugObjects=false, ISceneNode* root=0) =0;
123 
125 
138  s32 idBitMask=0, bool bNoDebugObjects=false, ISceneNode* root=0) =0;
139 
141 
158  s32 idBitMask=0, bool bNoDebugObjects = false) = 0;
159 
161 
188  core::line3df ray,
189  core::vector3df & outCollisionPoint,
190  core::triangle3df & outTriangle,
191  s32 idBitMask = 0,
192  ISceneNode * collisionRootNode = 0,
193  bool noDebugObjects = false) = 0;
194  };
195 
196 
197 } // end namespace scene
198 } // end namespace irr
199 
200 #endif
201 

The Irrlicht Engine
The Irrlicht Engine Documentation © 2003-2010 by Nikolaus Gebhardt. Generated on Fri Mar 21 2014 04:40:17 by Doxygen (1.8.1.2)