0,0,0,0,0,0,0, Methods, 0, 0, &KX_GameObject::Type, 0,0,0,0,0,0, py_base_new }; PyAttributeDef KX_NavMeshObject::Attributes[] = { { NULL } //Sentinel }; //KX_PYMETHODTABLE_NOARGS(KX_GameObject, getD), PyMethodDef KX_NavMeshObject::Methods[] = { KX_PYMETHODTABLE(KX_NavMeshObject, findPath), KX_PYMETHODTABLE(KX_NavMeshObject, raycast), KX_PYMETHODTABLE(KX_NavMeshObject, draw), KX_PYMETHODTABLE(KX_NavMeshObject, rebuild), {NULL,NULL} //Sentinel }; KX_PYMETHODDEF_DOC(KX_NavMeshObject, findPath, "findPath(start, goal): find path from start to goal points\n" "Returns a path as list of points)\n") { PyObject *ob_from, *ob_to; if (!PyArg_ParseTuple(args,"OO:getPath",&ob_from,&ob_to)) return NULL; MT_Point3 from, to; if (!PyVecTo(ob_from, from) || !PyVecTo(ob_to, to))
{ return m_camdata.m_viewportright; } int KX_Camera::GetViewportTop() const { return m_camdata.m_viewporttop; } #ifdef WITH_PYTHON //---------------------------------------------------------------------------- //Python PyMethodDef KX_Camera::Methods[] = { KX_PYMETHODTABLE(KX_Camera, sphereInsideFrustum), KX_PYMETHODTABLE_O(KX_Camera, boxInsideFrustum), KX_PYMETHODTABLE_O(KX_Camera, pointInsideFrustum), KX_PYMETHODTABLE_NOARGS(KX_Camera, getCameraToWorld), KX_PYMETHODTABLE_NOARGS(KX_Camera, getWorldToCamera), KX_PYMETHODTABLE(KX_Camera, setViewport), KX_PYMETHODTABLE_NOARGS(KX_Camera, setOnTop), KX_PYMETHODTABLE_O(KX_Camera, getScreenPosition), KX_PYMETHODTABLE(KX_Camera, getScreenVect), KX_PYMETHODTABLE(KX_Camera, getScreenRay), {NULL,NULL} //Sentinel }; PyAttributeDef KX_Camera::Attributes[] = { KX_PYATTRIBUTE_BOOL_RW("frustum_culling", KX_Camera, m_frustum_culling),
glUniform2ivARB(uniform, 1, (GLint*)val); else if (len == 3) glUniform3ivARB(uniform, 1, (GLint*)val); else if (len == 4) glUniform4ivARB(uniform, 1, (GLint*)val); else MT_assert(0); } } #ifdef WITH_PYTHON PyMethodDef BL_Shader::Methods[] = { // creation KX_PYMETHODTABLE( BL_Shader, setSource ), KX_PYMETHODTABLE( BL_Shader, delSource ), KX_PYMETHODTABLE( BL_Shader, getVertexProg ), KX_PYMETHODTABLE( BL_Shader, getFragmentProg ), KX_PYMETHODTABLE( BL_Shader, setNumberOfPasses ), KX_PYMETHODTABLE( BL_Shader, validate), /// access functions KX_PYMETHODTABLE( BL_Shader, isValid), KX_PYMETHODTABLE( BL_Shader, setUniform1f ), KX_PYMETHODTABLE( BL_Shader, setUniform2f ), KX_PYMETHODTABLE( BL_Shader, setUniform3f ), KX_PYMETHODTABLE( BL_Shader, setUniform4f ), KX_PYMETHODTABLE( BL_Shader, setUniform1i ), KX_PYMETHODTABLE( BL_Shader, setUniform2i ), KX_PYMETHODTABLE( BL_Shader, setUniform3i ), KX_PYMETHODTABLE( BL_Shader, setUniform4i ),
void KX_BlenderMaterial::SetBlenderGLSLShader() { if (!mBlenderShader) mBlenderShader = new BL_BlenderShader(mScene, mMaterial->material, mLightLayer); if (!mBlenderShader->Ok()) { delete mBlenderShader; mBlenderShader = 0; } } #ifdef WITH_PYTHON PyMethodDef KX_BlenderMaterial::Methods[] = { KX_PYMETHODTABLE( KX_BlenderMaterial, getShader ), KX_PYMETHODTABLE( KX_BlenderMaterial, getMaterialIndex ), KX_PYMETHODTABLE( KX_BlenderMaterial, setBlending ), {NULL,NULL} //Sentinel }; PyAttributeDef KX_BlenderMaterial::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("shader", KX_BlenderMaterial, pyattr_get_shader), KX_PYATTRIBUTE_RO_FUNCTION("material_index", KX_BlenderMaterial, pyattr_get_materialIndex), KX_PYATTRIBUTE_RW_FUNCTION("blending", KX_BlenderMaterial, pyattr_get_blending, pyattr_set_blending), { NULL } //Sentinel }; PyTypeObject KX_BlenderMaterial::Type = { PyVarObject_HEAD_INIT(NULL, 0) "KX_BlenderMaterial",
Methods, 0, 0, &CValue::Type, 0,0,0,0,0,0, py_base_new }; PyMethodDef KX_PolyProxy::Methods[] = { KX_PYMETHODTABLE_NOARGS(KX_PolyProxy,getMaterialIndex), KX_PYMETHODTABLE_NOARGS(KX_PolyProxy,getNumVertex), KX_PYMETHODTABLE_NOARGS(KX_PolyProxy,isVisible), KX_PYMETHODTABLE_NOARGS(KX_PolyProxy,isCollider), KX_PYMETHODTABLE_NOARGS(KX_PolyProxy,getMaterialName), KX_PYMETHODTABLE_NOARGS(KX_PolyProxy,getTextureName), KX_PYMETHODTABLE(KX_PolyProxy,getVertexIndex), KX_PYMETHODTABLE_NOARGS(KX_PolyProxy,getMesh), KX_PYMETHODTABLE_NOARGS(KX_PolyProxy,getMaterial), {NULL,NULL} //Sentinel }; PyAttributeDef KX_PolyProxy::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("material_name", KX_PolyProxy, pyattr_get_material_name), KX_PYATTRIBUTE_RO_FUNCTION("texture_name", KX_PolyProxy, pyattr_get_texture_name), KX_PYATTRIBUTE_RO_FUNCTION("material", KX_PolyProxy, pyattr_get_material), KX_PYATTRIBUTE_RO_FUNCTION("material_id", KX_PolyProxy, pyattr_get_material_id), KX_PYATTRIBUTE_RO_FUNCTION("v1", KX_PolyProxy, pyattr_get_v1), KX_PYATTRIBUTE_RO_FUNCTION("v2", KX_PolyProxy, pyattr_get_v2), KX_PYATTRIBUTE_RO_FUNCTION("v3", KX_PolyProxy, pyattr_get_v3), KX_PYATTRIBUTE_RO_FUNCTION("v4", KX_PolyProxy, pyattr_get_v4), KX_PYATTRIBUTE_RO_FUNCTION("visible", KX_PolyProxy, pyattr_get_visible),
*rgba++ = (unsigned char) (m_material->r*255.0); *rgba++ = (unsigned char) (m_material->g*255.0); *rgba++ = (unsigned char) (m_material->b*255.0); *rgba++ = (unsigned char) (m_material->alpha*255.0); } else RAS_IPolyMaterial::GetMaterialRGBAColor(rgba); } #ifdef WITH_PYTHON //---------------------------------------------------------------------------- //Python PyMethodDef KX_PolygonMaterial::Methods[] = { KX_PYMETHODTABLE(KX_PolygonMaterial, setCustomMaterial), KX_PYMETHODTABLE(KX_PolygonMaterial, updateTexture), KX_PYMETHODTABLE(KX_PolygonMaterial, setTexture), KX_PYMETHODTABLE(KX_PolygonMaterial, activate), // KX_PYMETHODTABLE(KX_PolygonMaterial, setPerPixelLights), {NULL,NULL} //Sentinel }; PyAttributeDef KX_PolygonMaterial::Attributes[] = { KX_PYATTRIBUTE_RO_FUNCTION("texture", KX_PolygonMaterial, pyattr_get_texture), KX_PYATTRIBUTE_RO_FUNCTION("material", KX_PolygonMaterial, pyattr_get_material), /* should probably be .name ? */ KX_PYATTRIBUTE_INT_RW("tile", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_tile), KX_PYATTRIBUTE_INT_RW("tilexrep", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_tilexrep), KX_PYATTRIBUTE_INT_RW("tileyrep", INT_MIN, INT_MAX, true, KX_PolygonMaterial, m_tileyrep),
0, 0, py_base_repr, 0,0,0,0,0,0,0,0,0, Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, 0,0,0,0,0,0,0, Methods, 0, 0, &SCA_IActuator::Type, 0,0,0,0,0,0, py_base_new }; PyMethodDef KX_SCA_ReplaceMeshActuator::Methods[] = { KX_PYMETHODTABLE(KX_SCA_ReplaceMeshActuator, instantReplaceMesh), {NULL,NULL} //Sentinel }; PyAttributeDef KX_SCA_ReplaceMeshActuator::Attributes[] = { KX_PYATTRIBUTE_RW_FUNCTION("mesh", KX_SCA_ReplaceMeshActuator, pyattr_get_mesh, pyattr_set_mesh), KX_PYATTRIBUTE_BOOL_RW ("useDisplayMesh", KX_SCA_ReplaceMeshActuator, m_use_gfx), KX_PYATTRIBUTE_BOOL_RW ("usePhysicsMesh", KX_SCA_ReplaceMeshActuator, m_use_phys), { NULL } //Sentinel }; PyObject *KX_SCA_ReplaceMeshActuator::pyattr_get_mesh(void *self, const struct KX_PYATTRIBUTE_DEF *attrdef) { KX_SCA_ReplaceMeshActuator* actuator = static_cast<KX_SCA_ReplaceMeshActuator*>(self); if (!actuator->m_mesh) Py_RETURN_NONE;