2.50: svn merge https://svn.blender.org/svnroot/bf-blender/trunk/blender -r19323...
[blender.git] / source / gameengine / Ketsji / KX_Camera.h
index efd18f9..4accd4b 100644 (file)
@@ -45,6 +45,7 @@ class KX_Camera : public KX_GameObject
 {
        Py_Header;
 protected:
+       friend class KX_Scene;
        /** Camera parameters (clips distances, focal lenght). These
         * params are closely tied to Blender. In the gameengine, only the
         * projection and modelview matrices are relevant. There's a
@@ -67,6 +68,7 @@ protected:
         * Storage for the projection matrix that is passed to the
         * rasterizer. */
        MT_Matrix4x4 m_projection_matrix;
+       //MT_Matrix4x4 m_projection_matrix1;
 
        /**
         * Storage for the modelview matrix that is passed to the
@@ -107,11 +109,6 @@ protected:
        MT_Scalar    m_frustum_radius;
        bool         m_set_frustum_center;
 
-       /**
-        * Python module doc string.
-        */
-       static char doc[];
-
        /**
         * Extracts the camera clip frames from the projection and world-to-camera matrices.
         */
@@ -124,6 +121,16 @@ protected:
         * Extracts the bound sphere of the view frustum.
         */
        void ExtractFrustumSphere();
+       /**
+        * return the clip plane
+        */
+       MT_Vector4 *GetNormalizedClipPlanes()
+       {
+               ExtractClipPlanes();
+               NormalizeClipPlanes();
+               return m_planes;
+       }
+
 public:
 
        enum { INSIDE, INTERSECT, OUTSIDE } ;
@@ -270,9 +277,29 @@ public:
        KX_PYMETHOD_DOC_VARARGS(KX_Camera, setViewport);        
        KX_PYMETHOD_DOC_NOARGS(KX_Camera, setOnTop);    
 
-       virtual PyObject* _getattr(const char *attr); /* lens, near, far, projection_matrix */
-       virtual int       _setattr(const char *attr, PyObject *pyvalue);
+       virtual PyObject* py_getattro(PyObject *attr); /* lens, near, far, projection_matrix */
+       virtual int       py_setattro(PyObject *attr, PyObject *pyvalue);
+       
+       static PyObject*        pyattr_get_perspective(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       static int                      pyattr_set_perspective(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
 
+       static PyObject*        pyattr_get_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       static int                      pyattr_set_lens(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+       static PyObject*        pyattr_get_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       static int                      pyattr_set_near(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+       static PyObject*        pyattr_get_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       static int                      pyattr_set_far(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+       
+       static PyObject*        pyattr_get_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       static int                      pyattr_set_projection_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef, PyObject *value);
+       
+       static PyObject*        pyattr_get_modelview_matrix(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       static PyObject*        pyattr_get_camera_to_world(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       static PyObject*        pyattr_get_world_to_camera(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       
+       static PyObject*        pyattr_get_INSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       static PyObject*        pyattr_get_OUTSIDE(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
+       static PyObject*        pyattr_get_INTERSECT(void *self_v, const KX_PYATTRIBUTE_DEF *attrdef);
 };
 
 #endif //__KX_CAMERA