aboutsummaryrefslogtreecommitdiff
path: root/include/ISceneCollisionManager.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/ISceneCollisionManager.h')
-rw-r--r--include/ISceneCollisionManager.h38
1 files changed, 38 insertions, 0 deletions
diff --git a/include/ISceneCollisionManager.h b/include/ISceneCollisionManager.h
new file mode 100644
index 0000000..a74fb70
--- /dev/null
+++ b/include/ISceneCollisionManager.h
@@ -0,0 +1,38 @@
+// Copyright (C) 2002-2012 Nikolaus Gebhardt
+// This file is part of the "Irrlicht Engine".
+// For conditions of distribution and use, see copyright notice in irrlicht.h
+
+#ifndef __I_SCENE_COLLISION_MANAGER_H_INCLUDED__
+#define __I_SCENE_COLLISION_MANAGER_H_INCLUDED__
+
+#include "IReferenceCounted.h"
+#include "position2d.h"
+#include "line3d.h"
+
+namespace irr
+{
+
+namespace scene
+{
+ class ICameraSceneNode;
+
+ class ISceneCollisionManager : public virtual IReferenceCounted
+ {
+ public:
+
+ //! Returns a 3d ray which would go through the 2d screen coordinates.
+ /** \param pos: Screen coordinates in pixels.
+ \param camera: Camera from which the ray starts. If null, the
+ active camera is used.
+ \return Ray starting from the position of the camera and ending
+ at a length of the far value of the camera at a position which
+ would be behind the 2d screen coordinates. */
+ virtual core::line3d<f32> getRayFromScreenCoordinates(
+ const core::position2d<s32>& pos, const ICameraSceneNode* camera = 0) = 0;
+
+ };
+
+} // end namespace scene
+} // end namespace irr
+
+#endif