diff options
Diffstat (limited to 'source/gameengine/Ketsji/KX_MouseFocusSensor.h')
-rw-r--r-- | source/gameengine/Ketsji/KX_MouseFocusSensor.h | 208 |
1 files changed, 0 insertions, 208 deletions
diff --git a/source/gameengine/Ketsji/KX_MouseFocusSensor.h b/source/gameengine/Ketsji/KX_MouseFocusSensor.h deleted file mode 100644 index dd9295b2ff4..00000000000 --- a/source/gameengine/Ketsji/KX_MouseFocusSensor.h +++ /dev/null @@ -1,208 +0,0 @@ -/* - * ***** BEGIN GPL LICENSE BLOCK ***** - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - * - * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV. - * All rights reserved. - * - * The Original Code is: all of this file. - * - * Contributor(s): none yet. - * - * ***** END GPL LICENSE BLOCK ***** - */ - -/** \file KX_MouseFocusSensor.h - * \ingroup ketsji - * \brief KX_MouseFocusSensor determines mouse in/out/over events. - */ - -#ifndef __KX_MOUSEFOCUSSENSOR_H__ -#define __KX_MOUSEFOCUSSENSOR_H__ - -#include "SCA_MouseSensor.h" - -#include "BLI_utildefines.h" - -class KX_RayCast; - -/** - * The mouse focus sensor extends the basic SCA_MouseSensor. It has - * been placed in KX because it needs access to the rasterizer and - * SuMO. - * - * - extend the valid modes? - * - */ -class KX_MouseFocusSensor : public SCA_MouseSensor -{ - - Py_Header - - public: - - KX_MouseFocusSensor(class SCA_MouseManager* eventmgr, - int startx, - int starty, - short int mousemode, - int focusmode, - bool bTouchPulse, - const STR_String& propname, - bool bFindMaterial, - bool bXRay, - KX_Scene* kxscene, - KX_KetsjiEngine* kxengine, - SCA_IObject* gameobj); - - virtual ~KX_MouseFocusSensor() { } - virtual CValue* GetReplica() { - CValue* replica = new KX_MouseFocusSensor(*this); - // this will copy properties and so on... - replica->ProcessReplica(); - return replica; - }; - - virtual void Replace_IScene(SCA_IScene *val) - { - m_kxscene= static_cast<KX_Scene *>(val); - }; - - - /** - * \attention Overrides default evaluate. - */ - virtual bool Evaluate(); - virtual void Init(); - - virtual bool IsPositiveTrigger() { - bool result = m_positive_event; - if (m_invert) result = !result; - return result; - }; - - /// \see KX_RayCast - bool RayHit(KX_ClientObjectInfo *client, KX_RayCast *result, void *UNUSED(data)); - /// \see KX_RayCast - bool NeedRayCast(KX_ClientObjectInfo *client, void *UNUSED(data)); - - const MT_Point3& RaySource() const; - const MT_Point3& RayTarget() const; - const MT_Point3& HitPosition() const; - const MT_Vector3& HitNormal() const; - const MT_Vector2& HitUV() const; - -#ifdef WITH_PYTHON - - /* --------------------------------------------------------------------- */ - /* Python interface ---------------------------------------------------- */ - /* --------------------------------------------------------------------- */ - - /* attributes */ - static PyObject* pyattr_get_ray_source(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static PyObject* pyattr_get_ray_target(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static PyObject* pyattr_get_ray_direction(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static PyObject* pyattr_get_hit_object(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static PyObject* pyattr_get_hit_position(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static PyObject* pyattr_get_hit_normal(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); - static PyObject* pyattr_get_hit_uv(void* self_v, const KX_PYATTRIBUTE_DEF *attrdef); - -#endif /* WITH_PYTHON */ - - /* --------------------------------------------------------------------- */ - SCA_IObject* m_hitObject; - void* m_hitObject_Last; /* only use for comparison, never access */ - - private: - /** - * The focus mode. 1 for handling focus, 0 for not handling, 2 for focus on any object - */ - int m_focusmode; - - /** - * Flags whether the previous test showed a mouse-over. - */ - bool m_mouse_over_in_previous_frame; - - /** - * Flags whether changes in hit object should trigger a pulse - */ - bool m_bTouchPulse; - - /** - * Flags get through other objects - */ - bool m_bXRay; - - /** - * Flags material - */ - bool m_bFindMaterial; - - /** - * Property or material name - */ - STR_String m_propertyname; - - /** - * Flags whether the previous test evaluated positive. - */ - bool m_positive_event; - - /** - * Tests whether the object is in mouse focus for this camera - */ - bool ParentObjectHasFocusCamera(KX_Camera *cam); - - /** - * Tests whether the object is in mouse focus in this scene. - */ - bool ParentObjectHasFocus(void); - - /** - * (in game world coordinates) the place where the object was hit. - */ - MT_Point3 m_hitPosition; - - /** - * (in game world coordinates) the position to which to shoot the ray. - */ - MT_Point3 m_prevTargetPoint; - - /** - * (in game world coordinates) the position from which to shoot the ray. - */ - MT_Point3 m_prevSourcePoint; - - /** - * (in game world coordinates) the face normal of the vertex where - * the object was hit. */ - MT_Vector3 m_hitNormal; - - /** - * UV texture coordinate of the hit point if any, (0,0) otherwise - */ - MT_Vector2 m_hitUV; - - /** - * The KX scene that holds the camera. The camera position - * determines a part of the start location of the picking ray. */ - KX_Scene* m_kxscene; - - /** - * The KX engine is needed for computing the viewport */ - KX_KetsjiEngine* m_kxengine; -}; - -#endif /* __KX_MOUSESENSOR */ |